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

condRho_of_sum_le

PFR.RhoFunctional · PFR/RhoFunctional.lean:1079 to 1115

Source documentation

If X,YX,Y are independent, then ρ(XX+Y)12(ρ(X)+ρ(Y)+d[X;Y]). \rho(X | X+Y) \leq \frac{1}{2}(\rho(X)+\rho(Y) + d[X;Y]).

Exact Lean statement

lemma condRho_of_sum_le [IsProbabilityMeasure μ]
    (hX : Measurable X) (hY : Measurable Y) (hA : A.Nonempty) (h_indep : IndepFun X Y μ) :
    ρ[X | X + Y ; μ # A] ≤ (ρ[X ; μ # A] + ρ[Y ; μ # A] + d[ X ; μ # Y ; μ ]) / 2

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma condRho_of_sum_le [IsProbabilityMeasure μ]    (hX : Measurable X) (hY : Measurable Y) (hA : A.Nonempty) (h_indep : IndepFun X Y μ) :    ρ[X | X + Y ; μ # A]  (ρ[X ; μ # A] + ρ[Y ; μ # A] + d[ X ; μ # Y ; μ ]) / 2 := by  have I : ρ[X | X + Y ; μ # A]  ρ[X ; μ # A] + (H[X ; μ] - H[X | X + Y ; μ]) / 2 :=    condRho_le hX (by fun_prop) hA  have I' : H[X ; μ] - H[X | X + Y ; μ] = H[X + Y ; μ] - H[Y ; μ] := by    rw [ProbabilityTheory.chain_rule'' _ hX (by fun_prop), entropy_add_right hX hY,      IndepFun.entropy_pair_eq_add hX hY h_indep]    abel  have J : ρ[Y | Y + X ; μ # A]  ρ[Y ; μ # A] + (H[Y ; μ] - H[Y | Y + X ; μ]) / 2 :=    condRho_le hY (by fun_prop) hA  have J' : H[Y ; μ] - H[Y | Y + X ; μ] = H[Y + X ; μ] - H[X ; μ] := by    rw [ProbabilityTheory.chain_rule'' _ hY (by fun_prop), entropy_add_right hY hX,      IndepFun.entropy_pair_eq_add hY hX h_indep.symm]    abel  have : Y + X = X + Y := by abel  simp only [this] at J J'  have : ρ[X | X + Y ; μ # A] = ρ[Y | X + Y ; μ # A] := by    simp only [condRho]    congr with s    congr 1    have : ρ[X ; μ[|(X + Y) ⁻¹' {s}] # A] = ρ[fun ω  X ω + s ; μ[|(X + Y) ⁻¹' {s}] # A] := by      rw [rho_of_translate hX hA]    rw [this]    apply rho_eq_of_identDistrib    apply IdentDistrib.of_ae_eq (by fun_prop)    have : MeasurableSet ((X + Y) ⁻¹' {s}) := by      have : Measurable (X + Y) := by fun_prop      exact this (measurableSet_singleton _)    filter_upwards [ae_cond_mem this] with a ha    simp only [mem_preimage, Pi.add_apply, mem_singleton_iff] at ha    rw [ ha]    nth_rewrite 1 [ ZModModule.neg_eq_self (X a)]    abel  have : X - Y = X + Y := ZModModule.sub_eq_add _ _  rw [h_indep.rdist_eq hX hY, sub_eq_add_neg, this]  linarith