Exact joining of two prescribed Gram orbits
Lax342547.JoinedGramOrbits · concepts/Lax342547/JoinedGramOrbits.lean · lax-342547
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
A combined Gram orbit is precisely two separate orbits conditioned on their reciprocal Gram entries and injectivity of both concatenated column lists. The exact uniform and filtered laws retain these injectivity conditions.
Concept map
Evidence
Lean source view on GitHub
| 1 | import Lax342547.FrameTuples |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Exact joining of two prescribed Gram orbits |
| 6 | type: lemma |
| 7 | --- |
| 8 | A combined Gram orbit is precisely two separate orbits conditioned on their |
| 9 | reciprocal Gram entries and injectivity of both concatenated column lists. |
| 10 | The exact uniform and filtered laws retain these injectivity conditions. |
| 11 | -/ |
| 12 | |
| 13 | namespace Lax342547.JoinedGramOrbits |
| 14 | |
| 15 | open Lax342547.MomentSpace Lax342547.FrameTuples |
| 16 | |
| 17 | variable {I J K L N : Type} [Fintype I] [Fintype J] [Fintype K] [Fintype L] [Fintype N] |
| 18 | |
| 19 | def joined {G : Matrix I J Binary} {H : Matrix K L Binary} (z : Orbit N G × Orbit N H) := |
| 20 | (Matrix.fromCols z.1.val.1 z.2.val.1,Matrix.fromCols z.1.val.2 z.2.val.2) |
| 21 | |
| 22 | def Compatible (G : Matrix I J Binary) (H : Matrix K L Binary) |
| 23 | (A : Matrix I L Binary) (B : Matrix K J Binary) |
| 24 | (z : Orbit N G × Orbit N H) : Prop := |
| 25 | Function.Injective (joined z).1.mulVec ∧ Function.Injective (joined z).2.mulVec ∧ |
| 26 | z.1.val.1.transpose*z.2.val.2 = A ∧ z.2.val.1.transpose*z.1.val.2 = B |
| 27 | |
| 28 | noncomputable instance (G : Matrix I J Binary) (H : Matrix K L Binary) |
| 29 | (A : Matrix I L Binary) (B : Matrix K J Binary) : |
| 30 | Fintype {z : Orbit N G × Orbit N H // Compatible G H A B z} := by |
| 31 | classical exact Subtype.fintype _ |
| 32 | |
| 33 | axiom joined_gram (G : Matrix I J Binary) (H : Matrix K L Binary) |
| 34 | (z : Orbit N G × Orbit N H) : |
| 35 | (joined z).1.transpose*(joined z).2 = |
| 36 | Matrix.fromBlocks G (z.1.val.1.transpose*z.2.val.2) (z.2.val.1.transpose*z.1.val.2) H |
| 37 | |
| 38 | axiom union_uniform (G : Matrix I J Binary) (H : Matrix K L Binary) |
| 39 | (A : Matrix I L Binary) (B : Matrix K J Binary) |
| 40 | [Nonempty (Orbit N (Matrix.fromBlocks G A B H))] |
| 41 | [Nonempty {z : Orbit N G × Orbit N H // Compatible G H A B z}] : |
| 42 | (PMF.uniformOfFintype (Orbit N (Matrix.fromBlocks G A B H))).map Subtype.val = |
| 43 | (PMF.uniformOfFintype {z : Orbit N G × Orbit N H // Compatible G H A B z}).map |
| 44 | (fun z => joined z.val) |
| 45 | |
| 46 | axiom compatible_filter (G : Matrix I J Binary) (H : Matrix K L Binary) |
| 47 | (A : Matrix I L Binary) (B : Matrix K J Binary) |
| 48 | [Nonempty (Orbit N G)] [Nonempty (Orbit N H)] |
| 49 | [Nonempty (Orbit N (Matrix.fromBlocks G A B H))] |
| 50 | [Nonempty {z : Orbit N G × Orbit N H // Compatible G H A B z}] |
| 51 | (h : ∃ z ∈ {z : Orbit N G × Orbit N H | Compatible G H A B z}, |
| 52 | z ∈ (PMF.uniformOfFintype (Orbit N G × Orbit N H)).support) : |
| 53 | ((PMF.uniformOfFintype (Orbit N G × Orbit N H)).filter |
| 54 | {z | Compatible G H A B z} h).map joined = |
| 55 | (PMF.uniformOfFintype (Orbit N (Matrix.fromBlocks G A B H))).map Subtype.val |
| 56 | |
| 57 | end Lax342547.JoinedGramOrbits |
| 58 |
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments