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

Exact images mixing independent injective frames

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

    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
    10 concepts
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on ADescendants are omitted for concepts with more than 10 descendants.
    Evidence

    This concept declares 5 statements. Each proof establishes one of them relative to its assumptions.

    Lean source view on GitHub

    1import Lax342547.InjectiveFrames
    2import Lax342547.FiniteLinearLaw
    3import Mathlib.LinearAlgebra.Matrix.Rank
    4
    5/-!
    6---
    7title: Exact images mixing independent injective frames
    8type: lemma
    9---
    10Nominal directions are measured in the direct sum of all source frames.
    11Before conditioning, every independent tuple has an exactly uniform
    12ambient image. Conditioning each source frame to be injective costs at
    13most two per frame, uniformly over every possible tuple rank.
    14-/
    15
    16namespace Lax342547.ProductImages
    17
    18open Lax342547.MomentSpace Lax342547.FrameSymmetry Lax342547.RawFrames
    19open scoped ENNReal
    20
    21def 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
    24def 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
    30def 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
    36axiom 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
    40axiom 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
    46axiom 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
    52axiom 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
    61axiom 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
    72end Lax342547.ProductImages
    73
    Show ProofShow ProofShow ProofShow ProofShow Proof

    Discussion

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

    Loading discussion…