Skip to main content
teorth/PFR
Source indexedlemma · leanprover/lean4:v4.33.0-rc1

ProbabilityTheory.condIndep_copies'

PFR.ForMathlib.ConditionalIndependence · PFR/ForMathlib/ConditionalIndependence.lean:270 to 292

Source documentation

For X, Y random variables, there exist conditionally independent trials X₁, X₂, Y'.

Exact Lean statement

lemma condIndep_copies' (X : Ω → α) (Y : Ω → β) (hX : Measurable X) (hY : Measurable Y)
    [FiniteRange Y] (μ : Measure Ω) [IsProbabilityMeasure μ] (p : α → β → Prop)
    (hp : Measurable (uncurry p)) (hp' : ∀ᵐ ω ∂μ, p (X ω) (Y ω)) :
    ∃ (Ω' : Type u) (_ : MeasurableSpace Ω') (X₁ X₂ : Ω' → α) (Y' : Ω' → β) (ν : Measure Ω'),
      IsProbabilityMeasure ν ∧ Measurable X₁ ∧ Measurable X₂ ∧ Measurable Y' ∧
      CondIndepFun X₁ X₂ Y' ν ∧ IdentDistrib (⟨X₁, Y'⟩) (⟨X, Y⟩) ν μ ∧
       IdentDistrib (⟨X₂, Y'⟩) (⟨X, Y⟩) ν μ ∧ (∀ ω, p (X₁ ω) (Y' ω)) ∧ (∀ ω, p (X₂ ω) (Y' ω))

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma condIndep_copies' (X : Ω  α) (Y : Ω  β) (hX : Measurable X) (hY : Measurable Y)    [FiniteRange Y] (μ : Measure Ω) [IsProbabilityMeasure μ] (p : α  β  Prop)    (hp : Measurable (uncurry p)) (hp' : ᵐ ω ∂μ, p (X ω) (Y ω)) :     (Ω' : Type u) (_ : MeasurableSpace Ω') (X₁ X₂ : Ω'  α) (Y' : Ω'  β) (ν : Measure Ω'),      IsProbabilityMeasure ν  Measurable X₁  Measurable X₂  Measurable Y'       CondIndepFun X₁ X₂ Y' ν  IdentDistrib (X₁, Y') (X, Y) ν μ        IdentDistrib (X₂, Y') (X, Y) ν μ  ( ω, p (X₁ ω) (Y' ω))  ( ω, p (X₂ ω) (Y' ω)) := by  obtain Ω', _, X₁, X₂, Y', ν, _, hX₁, hX₂, hY', hXY, hXY₁, hXY₂ :=    condIndep_copies X Y hX hY μ  let i := Subtype.val (p := fun ω  p (X₁ ω) (Y' ω)  p (X₂ ω) (Y' ω))  have hi : MeasurableEmbedding i := MeasurableEmbedding.subtype_coe    ((hp.comp <| hX₁.prodMk hY').and <| hp.comp <| hX₂.prodMk hY').setOf  have hi' : ᵐ ω ∂ν, ω  range i := by    simp only [i, mem_setOf_eq, Subtype.range_coe_subtype, Filter.eventually_and]    exact hXY₁.symm.ae_snd (p := uncurry p) hp.setOf hp',      hXY₂.symm.ae_snd (p := uncurry p) hp.setOf hp'  refine // p (X₁ ω) (Y' ω)  p (X₂ ω) (Y' ω)}, inferInstance, X₁ ∘ (↑), X₂ ∘ (↑), Y' ∘ (↑),    ν.comap (↑), ?_, hX₁.comp measurable_subtype_coe, hX₂.comp measurable_subtype_coe,    hY'.comp measurable_subtype_coe, ?_, ?_, ?_, fun ω  ω.2.1, fun ω  ω.2.2  · exact hi.isProbabilityMeasure_comap hi'  · exact hXY.comp_right hi hi' hX₁ hX₂ hY'  · exact hXY₁.comp_left hi hi' <| hX₁.prodMk hY'  · exact hXY₂.comp_left hi hi' <| hX₂.prodMk hY'