Exact images mixing independent injective frames
Lax342547.ProductImages · concepts/Lax342547/ProductImages.lean · lax-342547
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
Nominal directions are measured in the direct sum of all source frames. Before conditioning, every independent tuple has an exactly uniform ambient image. Conditioning each source frame to be injective costs at most two per frame, uniformly over every possible tuple rank.
Concept map
Evidence
This concept declares 5 statements. Each proof establishes one of them relative to its assumptions.
1 injective_image_bound proven
2 joint_uniform proven
3 rank_restriction proven
4 raw_plus_image_bound proven
5 right_uniform proven
Lean source view on GitHub
| 1 | import Lax342547.InjectiveFrames |
| 2 | import Lax342547.FiniteLinearLaw |
| 3 | import Mathlib.LinearAlgebra.Matrix.Rank |
| 4 | |
| 5 | /-! |
| 6 | --- |
| 7 | title: Exact images mixing independent injective frames |
| 8 | type: lemma |
| 9 | --- |
| 10 | Nominal directions are measured in the direct sum of all source frames. |
| 11 | Before conditioning, every independent tuple has an exactly uniform |
| 12 | ambient image. Conditioning each source frame to be injective costs at |
| 13 | most two per frame, uniformly over every possible tuple rank. |
| 14 | -/ |
| 15 | |
| 16 | namespace Lax342547.ProductImages |
| 17 | |
| 18 | open Lax342547.MomentSpace Lax342547.FrameSymmetry Lax342547.RawFrames |
| 19 | open scoped ENNReal |
| 20 | |
| 21 | def jointMatrix {Draw I N : Type} (A : Draw → Matrix N I Binary) : Matrix N (Draw × I) Binary := |
| 22 | fun n j => A j.1 n j.2 |
| 23 | |
| 24 | def jointEquiv {Draw I N : Type} : (Draw → Matrix N I Binary) ≃ Matrix N (Draw × I) Binary where |
| 25 | toFun := jointMatrix |
| 26 | invFun M i n j := M n (i, j) |
| 27 | left_inv _ := rfl |
| 28 | right_inv _ := rfl |
| 29 | |
| 30 | def rightMap {I T N : Type} [Fintype I] (C : Matrix I T Binary) : |
| 31 | Matrix N I Binary →ₗ[Binary] Matrix N T Binary where |
| 32 | toFun A := A * C |
| 33 | map_add' A B := Matrix.add_mul A B C |
| 34 | map_smul' c A := Matrix.smul_mul c A C |
| 35 | |
| 36 | axiom rank_restriction {I T : Type} [Fintype I] [Fintype T] |
| 37 | (C : Matrix I T Binary) : |
| 38 | ∃ D : Matrix T (Fin C.rank) Binary, Function.Injective (C * D).mulVec |
| 39 | |
| 40 | axiom right_uniform {I T N : Type} [Fintype I] [Fintype T] [Fintype N] |
| 41 | [DecidableEq I] [DecidableEq T] [DecidableEq N] |
| 42 | (C : Matrix I T Binary) (hC : Function.Injective C.mulVec) : |
| 43 | (PMF.uniformOfFintype (Matrix N I Binary)).map (fun A => A * C) = |
| 44 | PMF.uniformOfFintype (Matrix N T Binary) |
| 45 | |
| 46 | axiom joint_uniform {Draw I T N : Type} [Fintype Draw] [Fintype I] [Fintype T] [Fintype N] |
| 47 | [DecidableEq Draw] [DecidableEq I] [DecidableEq T] [DecidableEq N] |
| 48 | (C : Matrix (Draw × I) T Binary) (hC : Function.Injective C.mulVec) : |
| 49 | (PMF.uniformOfFintype (Draw → Matrix N I Binary)).map (fun A => jointMatrix A * C) = |
| 50 | PMF.uniformOfFintype (Matrix N T Binary) |
| 51 | |
| 52 | axiom injective_image_bound {Draw I T N : Type} |
| 53 | [Fintype Draw] [Fintype I] [Fintype T] [Fintype N] |
| 54 | [DecidableEq Draw] [DecidableEq I] [DecidableEq T] [DecidableEq N] |
| 55 | [Nonempty (Injection I N)] (hN : Fintype.card I + 1 ≤ Fintype.card N) |
| 56 | (C : Matrix (Draw × I) T Binary) (hC : Function.Injective C.mulVec) (y : Matrix N T Binary) : |
| 57 | (PMF.uniformOfFintype (Draw → Injection I N)).map |
| 58 | (fun A => jointMatrix (fun i => (A i).val) * C) y ≤ |
| 59 | (2 : ℝ≥0∞) ^ Fintype.card Draw / 2 ^ (Fintype.card N * Fintype.card T) |
| 60 | |
| 61 | axiom raw_plus_image_bound {Draw B H T N : Type} |
| 62 | [Fintype Draw] [Fintype B] [Fintype H] [Fintype T] [Fintype N] |
| 63 | [DecidableEq Draw] [DecidableEq B] [DecidableEq H] [DecidableEq T] [DecidableEq N] |
| 64 | {E : Matrix B B Binary} [Nonempty (Frame B H N E)] |
| 65 | (hN : Fintype.card B + Fintype.card H + 1 ≤ Fintype.card N) |
| 66 | (C : Matrix (Draw × (B ⊕ H)) T Binary) (hC : Function.Injective C.mulVec) |
| 67 | (y : Matrix N T Binary) : |
| 68 | (PMF.uniformOfFintype (Draw → Frame B H N E)).map |
| 69 | (fun o => jointMatrix (fun i => (plus (o i)).val) * C) y ≤ |
| 70 | (2 : ℝ≥0∞) ^ Fintype.card Draw / 2 ^ (Fintype.card N * Fintype.card T) |
| 71 | |
| 72 | end Lax342547.ProductImages |
| 73 |
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments