While this submission is a draft, it cannot be used by other submissions.

Counting component tensors with bounded total rank

Lax342547.TotalRankCount · concepts/Lax342547/TotalRankCount.lean · lax-342547

proven

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural 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
    3 concepts
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on ADescendants are omitted for concepts with more than 10 descendants.
    Evidence

    This concept declares 3 statements. Each proof establishes one of them relative to its assumptions.

    Lean source view on GitHub

    1import Lax342547.LowRankCounting
    2import Mathlib.Data.Fintype.Card
    3
    4/-!
    5---
    6title: Counting component tensors with bounded total rank
    7type: lemma
    8---
    9Actual 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
    12namespace Lax342547.TotalRankCount
    13
    14open Lax342547.MomentSpace
    15open scoped BigOperators
    16
    17abbrev RankBudgets (e : Type) [Fintype e] (r : ℕ) :=
    18 {a : e → Fin (r+1) // ∑ i, (a i).val ≤ r}
    19
    20abbrev 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
    24noncomputable 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
    28axiom 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
    32axiom 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
    36axiom 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
    41end Lax342547.TotalRankCount
    42
    Show ProofShow ProofShow Proof

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…