Counting component tensors with bounded total rank
Lax342547.TotalRankCount · concepts/Lax342547/TotalRankCount.lean · lax-342547
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
Actual rank budgets and matrix factors give the uniform candidate count with ambient exponent (dim I+dim J)*r, rather than paying r for each component separately.
Concept map
Evidence
Lean source view on GitHub
| 1 | import Lax342547.LowRankCounting |
| 2 | import Mathlib.Data.Fintype.Card |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: Counting component tensors with bounded total rank |
| 7 | type: lemma |
| 8 | --- |
| 9 | Actual rank budgets and matrix factors give the uniform candidate count with ambient exponent (dim I+dim J)*r, rather than paying r for each component separately. |
| 10 | -/ |
| 11 | |
| 12 | namespace Lax342547.TotalRankCount |
| 13 | |
| 14 | open Lax342547.MomentSpace |
| 15 | open scoped BigOperators |
| 16 | |
| 17 | abbrev RankBudgets (e : Type) [Fintype e] (r : ℕ) := |
| 18 | {a : e → Fin (r+1) // ∑ i, (a i).val ≤ r} |
| 19 | |
| 20 | abbrev Factors {e : Type} [Fintype e] (I J : Type) (r : ℕ) (a : RankBudgets e r) := |
| 21 | (∀ i : e, Matrix I (Fin (a.val i).val) Binary) × |
| 22 | (∀ i : e, Matrix (Fin (a.val i).val) J Binary) |
| 23 | |
| 24 | noncomputable def reconstruct {e I J : Type} [Fintype e] (r : ℕ) : |
| 25 | (Σ a : RankBudgets e r, Factors I J r a) → e → Matrix I J Binary := |
| 26 | fun z i => z.2.1 i*z.2.2 i |
| 27 | |
| 28 | axiom exists_rank_factors {e I J : Type} [Fintype e] [Fintype I] [Fintype J] |
| 29 | (r : ℕ) (A : e → Matrix I J Binary) (hA : ∑ i, (A i).rank ≤ r) : |
| 30 | ∃ z : Σ a : RankBudgets e r, Factors I J r a, reconstruct r z = A |
| 31 | |
| 32 | axiom factor_card_bound {e I J : Type} [Fintype e] [Fintype I] [Fintype J] |
| 33 | [DecidableEq e] [DecidableEq I] [DecidableEq J] (r : ℕ) (a : RankBudgets e r) : |
| 34 | Fintype.card (Factors I J r a) ≤ 2^((Fintype.card I+Fintype.card J)*r) |
| 35 | |
| 36 | axiom total_rank_card {e I J : Type} [Fintype e] [Fintype I] [Fintype J] |
| 37 | [DecidableEq e] [DecidableEq I] [DecidableEq J] (r : ℕ) : |
| 38 | Fintype.card {A : e → Matrix I J Binary // ∑ i, (A i).rank ≤ r} ≤ |
| 39 | (r+1)^Fintype.card e*2^((Fintype.card I+Fintype.card J)*r) |
| 40 | |
| 41 | end Lax342547.TotalRankCount |
| 42 |
Builds on
From Mathlib
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments