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

Independent characters of actual mutual Gram entries

Lax342547.CrossGramBasis · concepts/Lax342547/CrossGramBasis.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

    The two reciprocal cross Gram blocks occupy disjoint coefficient entries. Their characters have no duplicate descriptions: every nonzero pattern gives a nonzero cross-batch matrix and therefore at least N bits of rank.

    Concept map
    11 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.CrossBatchMixing
    2
    3/-!
    4---
    5title: Independent characters of actual mutual Gram entries
    6type: lemma
    7---
    8The two reciprocal cross Gram blocks occupy disjoint coefficient entries.
    9Their characters have no duplicate descriptions: every nonzero pattern
    10gives a nonzero cross-batch matrix and therefore at least N bits of rank.
    11-/
    12
    13namespace Lax342547.CrossGramBasis
    14
    15open Lax342547.MomentSpace Lax342547.CrossBatchMixing
    16open scoped BigOperators
    17
    18variable {I J K L : Type} [Fintype I] [Fintype J] [Fintype K] [Fintype L]
    19 [DecidableEq I] [DecidableEq J] [DecidableEq K] [DecidableEq L]
    20
    21abbrev Slots (I J K L : Type) := (I × L) ⊕ (J × K)
    22
    23def tests {I J K L : Type} [DecidableEq I] [DecidableEq J] [DecidableEq K] [DecidableEq L] :
    24 Slots I J K L → Matrix (I ⊕ J) (K ⊕ L) Binary
    25 | Sum.inl (i,l) => fun a b => if a = Sum.inl i ∧ b = Sum.inr l then 1 else 0
    26 | Sum.inr (j,k) => fun a b => if a = Sum.inr j ∧ b = Sum.inl k then 1 else 0
    27
    28axiom coefficient_blocks (t : Slots I J K L → Binary) :
    29 coefficient tests t = Matrix.fromBlocks 0 (fun i l => t (Sum.inl (i,l)))
    30 (fun j k => t (Sum.inr (j,k))) 0
    31
    32axiom nonzero_coefficient (t : Slots I J K L → Binary) (ht : t ≠ 0) : coefficient tests t ≠ 0
    33
    34axiom mutual_gram_bits (N : ℕ)
    35 (xy : (Fin N × (I ⊕ J) → Binary) × (Fin N × (K ⊕ L) → Binary)) :
    36 (∀ i l,crossBits tests N xy (Sum.inl (i,l)) = ∑ a,xy.1 (a,Sum.inl i)*xy.2 (a,Sum.inr l)) ∧
    37 (∀ j k,crossBits tests N xy (Sum.inr (j,k)) = ∑ a,xy.1 (a,Sum.inr j)*xy.2 (a,Sum.inl k))
    38
    39end Lax342547.CrossGramBasis
    40
    Show ProofShow ProofShow Proof
    Builds on
    Used by
    From Mathlib

    none

    Discussion

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

    Loading discussion…