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

ProbabilityTheory.condEntropy_prod_eq_of_indepFun

PFR.ForMathlib.Entropy.Basic · PFR/ForMathlib/Entropy/Basic.lean:1007 to 1024

Mathematical statement

Exact Lean statement

lemma condEntropy_prod_eq_of_indepFun [Finite T] [Finite U] [IsZeroOrProbabilityMeasure μ]
    (hX : Measurable X) (hY : Measurable Y) (hZ : Measurable Z) [FiniteRange X]
    (h : IndepFun (⟨X, Y⟩) Z μ) :
    H[X | ⟨Y, Z⟩ ; μ] = H[X | Y ; μ]

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma condEntropy_prod_eq_of_indepFun [Finite T] [Finite U] [IsZeroOrProbabilityMeasure μ]    (hX : Measurable X) (hY : Measurable Y) (hZ : Measurable Z) [FiniteRange X]    (h : IndepFun (X, Y) Z μ) :    H[X | Y, Z ; μ] = H[X | Y ; μ] := by  cases nonempty_fintype U  rcases eq_zero_or_isProbabilityMeasure μ with rfl | hμ  · simp  rw [condEntropy_prod_eq_sum _ hY hZ]  have : H[X | Y ; μ] = ∑ z, (μ.real (Z ⁻¹' {z})) * H[X | Y ; μ] := by    rw [ Finset.sum_mul, sum_measureReal_preimage_singleton _ fun z _  hZ <| .singleton z]; simp  rw [this]  congr with w  rcases eq_or_ne (μ (Z ⁻¹' {w})) 0 with hw|hw  · simp [hw, Measure.real]  congr 1  have : IsProbabilityMeasure (μ[|Z ⁻¹' {w}]) := cond_isProbabilityMeasure hw  apply IdentDistrib.condEntropy_eq hX hY hX hY  exact (h.identDistrib_cond (MeasurableSet.singleton w) (hX.prodMk hY) hZ hw).symm