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

Conditional independence of the two channel frames

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

    At fixed primal matrices P,Q, the valid X and Y completions form a Cartesian product: their annihilator and injectivity conditions are separate. Uniform conditioning therefore gives independent uniform channel completions, with the actual finite normalizing factors.

    Concept map
    8 concepts
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A
    Evidence

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

    Lean source view on GitHub

    1import Lax342547.FrameSymmetry
    2import Lax342547.GramColumns
    3
    4/-!
    5---
    6title: Conditional independence of the two channel frames
    7type: lemma
    8---
    9At fixed primal matrices P,Q, the valid X and Y completions form a
    10Cartesian product: their annihilator and injectivity conditions are
    11separate. Uniform conditioning therefore gives independent uniform
    12channel completions, with the actual finite normalizing factors.
    13-/
    14
    15namespace Lax342547.ConditionalChannels
    16
    17open Lax342547.MomentSpace Lax342547.RawFrames
    18open scoped ENNReal
    19
    20variable {B H N : Type} [Fintype B] [Fintype H] [Fintype N]
    21
    22abbrev PlusCompletion (P Q : Matrix N B Binary) :=
    23 {X : Matrix N H Binary // X.transpose * Q = 0 ∧ Function.Injective
    24 (fun z : (B → Binary) × (H → Binary) => P.mulVec z.1 + X.mulVec z.2)}
    25
    26abbrev MinusCompletion (P Q : Matrix N B Binary) :=
    27 {Y : Matrix N H Binary // P.transpose * Y = 0 ∧ Function.Injective
    28 (fun z : (B → Binary) × (H → Binary) => Q.mulVec z.1 + Y.mulVec z.2)}
    29
    30abbrev Fiber (E : Matrix B B Binary) (P Q : Matrix N B Binary) :=
    31 {F : Frame B H N E // F.P = P ∧ F.Q = Q}
    32
    33noncomputable instance (P Q : Matrix N B Binary) : Fintype (PlusCompletion (H := H) P Q) := by
    34 classical exact Subtype.fintype _
    35
    36noncomputable instance (P Q : Matrix N B Binary) : Fintype (MinusCompletion (H := H) P Q) := by
    37 classical exact Subtype.fintype _
    38
    39noncomputable instance (E : Matrix B B Binary) (P Q : Matrix N B Binary) :
    40 Fintype (Fiber (H := H) E P Q) := by classical exact Subtype.fintype _
    41
    42def channels {E : Matrix B B Binary} {P Q : Matrix N B Binary} (F : Fiber (H := H) E P Q) :
    43 PlusCompletion (H := H) P Q × MinusCompletion (H := H) P Q :=
    44 (⟨F.val.X, by
    45 simpa [← F.property.1, ← F.property.2] using
    46 And.intro F.val.plus_annihilator F.val.plus_injective⟩,
    47 ⟨F.val.Y, by
    48 simpa [← F.property.1, ← F.property.2] using
    49 And.intro F.val.minus_annihilator F.val.minus_injective⟩)
    50
    51def assemble {E : Matrix B B Binary} {P Q : Matrix N B Binary} (hgram : P.transpose * Q = E)
    52 (X : PlusCompletion (H := H) P Q) (Y : MinusCompletion (H := H) P Q) :
    53 Fiber (H := H) E P Q :=
    54 ⟨{ P := P, Q := Q, X := X.val, Y := Y.val,
    55 plus_injective := X.property.2, minus_injective := Y.property.2,
    56 gram := hgram, plus_annihilator := X.property.1, minus_annihilator := Y.property.1 },
    57 rfl, rfl⟩
    58
    59def channelEquiv {E : Matrix B B Binary} {P Q : Matrix N B Binary} (hgram : P.transpose * Q = E) :
    60 Fiber (H := H) E P Q ≃ (PlusCompletion (H := H) P Q × MinusCompletion (H := H) P Q) where
    61 toFun := channels
    62 invFun z := assemble hgram z.1 z.2
    63 left_inv F := by
    64 apply Subtype.ext
    65 apply frameData_injective
    66 exact Prod.ext F.property.1.symm (Prod.ext F.property.2.symm rfl)
    67 right_inv z := by cases z; rfl
    68
    69axiom conditional_uniform {E : Matrix B B Binary} {P Q : Matrix N B Binary}
    70 (hgram : P.transpose * Q = E) [Nonempty (Fiber (H := H) E P Q)]
    71 [Nonempty (PlusCompletion (H := H) P Q)] [Nonempty (MinusCompletion (H := H) P Q)] :
    72 (PMF.uniformOfFintype (Fiber (H := H) E P Q)).map channels =
    73 PMF.uniformOfFintype (PlusCompletion (H := H) P Q × MinusCompletion (H := H) P Q)
    74
    75axiom conditional_point {E : Matrix B B Binary} {P Q : Matrix N B Binary}
    76 (hgram : P.transpose * Q = E) [Nonempty (Fiber (H := H) E P Q)]
    77 [Nonempty (PlusCompletion (H := H) P Q)] [Nonempty (MinusCompletion (H := H) P Q)]
    78 (X : PlusCompletion (H := H) P Q) (Y : MinusCompletion (H := H) P Q) :
    79 (PMF.uniformOfFintype (Fiber (H := H) E P Q)).map channels (X, Y) =
    80 PMF.uniformOfFintype (PlusCompletion (H := H) P Q) X *
    81 PMF.uniformOfFintype (MinusCompletion (H := H) P Q) Y
    82
    83axiom raw_conditioning {E : Matrix B B Binary} {P Q : Matrix N B Binary}
    84 (hgram : P.transpose * Q = E) [Nonempty (Frame B H N E)]
    85 [Nonempty (Fiber (H := H) E P Q)]
    86 [Nonempty (PlusCompletion (H := H) P Q)] [Nonempty (MinusCompletion (H := H) P Q)]
    87 (h : ∃ F ∈ {F : Frame B H N E | F.P = P ∧ F.Q = Q},
    88 F ∈ (PMF.uniformOfFintype (Frame B H N E)).support) :
    89 ((PMF.uniformOfFintype (Frame B H N E)).filter {F | F.P = P ∧ F.Q = Q} h).map
    90 (fun F => (F.X, F.Y)) =
    91 (PMF.uniformOfFintype (PlusCompletion (H := H) P Q × MinusCompletion (H := H) P Q)).map
    92 (fun z => (z.1.val, z.2.val))
    93
    94axiom channel_rank_failures [DecidableEq B] [DecidableEq H] [DecidableEq N]
    95 (P Q : Matrix N B Binary) (hP : Function.Injective P.mulVec) (hQ : Function.Injective Q.mulVec)
    96 [Nonempty (GramColumns.GramFiber Q (0 : Matrix B H Binary))]
    97 [Nonempty (GramColumns.GramFiber P (0 : Matrix B H Binary))] :
    98 (PMF.uniformOfFintype (GramColumns.GramFiber Q (0 : Matrix B H Binary))).toOuterMeasure
    99 {X | ¬ Function.Injective (fun z : (B → Binary) × (H → Binary) =>
    100 P.mulVec z.1 + X.val.mulVec z.2)} ≤
    101 (2 : ℝ≥0∞) ^ (2 * Fintype.card B + Fintype.card H) / 2 ^ Fintype.card N ∧
    102 (PMF.uniformOfFintype (GramColumns.GramFiber P (0 : Matrix B H Binary))).toOuterMeasure
    103 {Y | ¬ Function.Injective (fun z : (B → Binary) × (H → Binary) =>
    104 Q.mulVec z.1 + Y.val.mulVec z.2)} ≤
    105 (2 : ℝ≥0∞) ^ (2 * Fintype.card B + Fintype.card H) / 2 ^ Fintype.card N
    106
    107end Lax342547.ConditionalChannels
    108
    Show ProofShow ProofShow ProofShow Proof
    Builds on
    Used by

    none

    From Mathlib

    none

    Discussion

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

    Loading discussion…