Exact reference Gram-orbit marginals under injective affine restrictions
Lax342547.OrbitSliceLaw · concepts/Lax342547/OrbitSliceLaw.lean · lax-342547
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
An injective coefficient restriction of a uniform full paired Gram orbit has exactly the uniform prescribed slice law. The simultaneous ambient action preserves the full Gram and transports every restriction fiber.
Concept map
Lean source view on GitHub
| 1 | import Lax342547.FrameTuples |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Exact reference Gram-orbit marginals under injective affine restrictions |
| 6 | type: lemma |
| 7 | --- |
| 8 | An injective coefficient restriction of a uniform full paired Gram orbit |
| 9 | has exactly the uniform prescribed slice law. The simultaneous ambient |
| 10 | action preserves the full Gram and transports every restriction fiber. |
| 11 | -/ |
| 12 | |
| 13 | namespace Lax342547.OrbitSliceLaw |
| 14 | noncomputable section |
| 15 | open Lax342547.MomentSpace Lax342547.FrameSymmetry Lax342547.FrameTuples |
| 16 | open scoped BigOperators ENNReal |
| 17 | set_option backward.isDefEq.respectTransparency false |
| 18 | |
| 19 | |
| 20 | def restrictOrbit {B H I J N : Type} [Fintype B] [Fintype H] |
| 21 | [Fintype I] [Fintype J] [Fintype N] (G : Matrix B H Binary) |
| 22 | (C : Matrix B I Binary) (D : Matrix H J Binary) |
| 23 | (hC : Function.Injective C.mulVec) (hD : Function.Injective D.mulVec) |
| 24 | (z : Orbit N G) : Orbit N (C.transpose*G*D) := |
| 25 | ⟨(z.val.1*C,z.val.2*D),by |
| 26 | refine ⟨?_,?_,?_⟩ |
| 27 | · intro x y hh |
| 28 | apply hC |
| 29 | apply z.property.1 |
| 30 | simpa only [Matrix.mulVec_mulVec] using hh |
| 31 | · intro x y hh |
| 32 | apply hD |
| 33 | apply z.property.2.1 |
| 34 | simpa only [Matrix.mulVec_mulVec] using hh |
| 35 | · simp only [Matrix.transpose_mul,Matrix.mul_assoc] |
| 36 | rw [← Matrix.mul_assoc z.val.1.transpose,z.property.2.2]⟩ |
| 37 | |
| 38 | def changeOrbit {B H N : Type} [Fintype B] [Fintype H] [Fintype N] [DecidableEq N] |
| 39 | (c : Change N) (G : Matrix B H Binary) (z : Orbit N G) : Orbit N G := |
| 40 | ⟨(c.C*z.val.1,c.D.transpose*z.val.2),by |
| 41 | refine ⟨?_,?_,?_⟩ |
| 42 | · intro x y hh |
| 43 | apply z.property.1 |
| 44 | apply c.injective |
| 45 | simpa only [Matrix.mulVec_mulVec] using hh |
| 46 | · intro x y hh |
| 47 | apply z.property.2.1 |
| 48 | apply c.dual_injective |
| 49 | simpa only [Matrix.mulVec_mulVec] using hh |
| 50 | · have he : c.C.transpose*c.D.transpose = 1 := by simpa using congrArg Matrix.transpose c.DC |
| 51 | simp only [Matrix.transpose_mul,Matrix.mul_assoc,← Matrix.mul_assoc c.C.transpose, |
| 52 | he,Matrix.one_mul,z.property.2.2]⟩ |
| 53 | |
| 54 | def orbitEquiv {B H N : Type} [Fintype B] [Fintype H] [Fintype N] [DecidableEq N] |
| 55 | (c : Change N) (G : Matrix B H Binary) : Orbit N G ≃ Orbit N G where |
| 56 | toFun := changeOrbit c G |
| 57 | invFun := changeOrbit c.inv G |
| 58 | left_inv z := by |
| 59 | apply Subtype.ext |
| 60 | have he : c.C.transpose*c.D.transpose = 1 := by simpa using congrArg Matrix.transpose c.DC |
| 61 | apply Prod.ext <;> simp [changeOrbit,Change.inv,← Matrix.mul_assoc,c.DC,he] |
| 62 | right_inv z := by |
| 63 | apply Subtype.ext |
| 64 | have he : c.D.transpose*c.C.transpose = 1 := by simpa using congrArg Matrix.transpose c.CD |
| 65 | apply Prod.ext <;> simp [changeOrbit,Change.inv,← Matrix.mul_assoc,c.CD,he] |
| 66 | |
| 67 | axiom slice_uniform {B H I J N : Type} [Fintype B] [Fintype H] |
| 68 | [Fintype I] [Fintype J] [Fintype N] [DecidableEq N] |
| 69 | (G : Matrix B H Binary) [Nonempty (Orbit N G)] |
| 70 | (C : Matrix B I Binary) (D : Matrix H J Binary) |
| 71 | (hC : Function.Injective C.mulVec) (hD : Function.Injective D.mulVec) |
| 72 | [Nonempty (Orbit N (C.transpose*G*D))] : |
| 73 | (PMF.uniformOfFintype (Orbit N G)).map (restrictOrbit G C D hC hD) = |
| 74 | PMF.uniformOfFintype (Orbit N (C.transpose*G*D)) |
| 75 | |
| 76 | end |
| 77 | end Lax342547.OrbitSliceLaw |
| 78 |
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments