Rank factors independent modulo the actual frozen spaces
Lax342547.QuotientFactors · concepts/Lax342547/QuotientFactors.lean · lax-342547
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
Projecting the coefficient tensor to complements of the frozen spaces gives rank factors whose quotient images are injective. This is the exact independence needed for conditional image entropy.
Concept map
Evidence
This concept declares 3 statements. Each proof establishes one of them relative to its assumptions.
1 factor_range proven
2 projection_range_quotient_injective proven
3 quotient_independent_factors proven
Lean source view on GitHub
| 1 | import Lax342547.ProjectedCoefficients |
| 2 | import Lax342547.RankFactors |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: Rank factors independent modulo the actual frozen spaces |
| 7 | type: lemma |
| 8 | --- |
| 9 | Projecting the coefficient tensor to complements of the frozen spaces gives rank factors whose quotient images are injective. This is the exact independence needed for conditional image entropy. |
| 10 | -/ |
| 11 | |
| 12 | namespace Lax342547.QuotientFactors |
| 13 | |
| 14 | open Lax342547.MomentSpace |
| 15 | |
| 16 | axiom factor_range {I J R : Type} [Fintype I] [Fintype J] [Fintype R] |
| 17 | (C : Matrix I J Binary) (A : Matrix I R Binary) (B : Matrix J R Binary) |
| 18 | (hC : A * B.transpose = C) (hA : Function.Injective A.mulVec) |
| 19 | (hr : Fintype.card R = C.rank) : LinearMap.range A.mulVecLin = LinearMap.range C.mulVecLin |
| 20 | |
| 21 | axiom projection_range_quotient_injective {V U : Type} |
| 22 | [AddCommGroup V] [Module Binary V] [AddCommGroup U] [Module Binary U] |
| 23 | (D : Submodule Binary V) (p : V →ₗ[Binary] V) |
| 24 | (hp : LinearMap.ker p = D) (hpid : p.comp p = p) |
| 25 | (A : U →ₗ[Binary] V) (hA : Function.Injective A) |
| 26 | (hrange : LinearMap.range A ≤ LinearMap.range p) : Function.Injective (D.mkQ.comp A) |
| 27 | |
| 28 | axiom quotient_independent_factors {I : Type} [Fintype I] |
| 29 | (C : Matrix I I Binary) (D E : Submodule Binary (I → Binary)) |
| 30 | (p q : (I → Binary) →ₗ[Binary] (I → Binary)) |
| 31 | (hp : LinearMap.ker p = D) (hq : LinearMap.ker q = E) |
| 32 | (hpid : p.comp p = p) (hqid : q.comp q = q) : by |
| 33 | classical |
| 34 | let Z := p.toMatrix' * C * q.toMatrix'.transpose |
| 35 | exact ∃ A : Matrix I (Fin Z.rank) Binary, ∃ B : Matrix I (Fin Z.rank) Binary, |
| 36 | A * B.transpose = Z ∧ Function.Injective (D.mkQ.comp A.mulVecLin) ∧ |
| 37 | Function.Injective (E.mkQ.comp B.mulVecLin) |
| 38 | |
| 39 | end Lax342547.QuotientFactors |
| 40 |
Used by
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments