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

dist_le_of_sum_zero

PFR.RhoFunctional · PFR/RhoFunctional.lean:1459 to 1494

Source documentation

If GG-valued random variables T1,T2,T3T_1,T_2,T_3 satisfy T1+T2+T3=0T_1+T_2+T_3=0, then

+ \eta(\rho(T_1|T_3)+\rho(T_2|T_3)-\rho(X_1)-\rho(X_2)).$$

Exact Lean statement

lemma dist_le_of_sum_zero {Ω' : Type*} [MeasurableSpace Ω'] {μ : Measure Ω'}
    [IsProbabilityMeasure μ] {T₁ T₂ T₃ : Ω' → G}
    (hsum : T₁ + T₂ + T₃ = 0) (hT₁ : Measurable T₁) (hT₂ : Measurable T₂) (hT₃ : Measurable T₃) :
    k ≤ 3 * I[T₁ : T₂ ; μ] + (2 * H[T₃ ; μ] - H[T₁ ; μ] - H[T₂ ; μ])
      + η * (ρ[T₁ | T₃ ; μ # A] + ρ[T₂ | T₃ ; μ #  A] - ρ[X₁ # A] - ρ[X₂ # A])

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma dist_le_of_sum_zero {Ω' : Type*} [MeasurableSpace Ω'] {μ : Measure Ω'}    [IsProbabilityMeasure μ] {T₁ T₂ T₃ : Ω'  G}    (hsum : T₁ + T₂ + T₃ = 0) (hT₁ : Measurable T₁) (hT₂ : Measurable T₂) (hT₃ : Measurable T₃) :    k  3 * I[T₁ : T₂ ; μ] + (2 * H[T₃ ; μ] - H[T₁ ; μ] - H[T₂ ; μ])      + η * (ρ[T₁ | T₃ ; μ # A] + ρ[T₂ | T₃ ; μ #  A] - ρ[X₁ # A] - ρ[X₂ # A]) := by  cases nonempty_fintype G  let _ : MeasureSpace Ω' := μ  have : μ =:= rfl  simp only [this]  have : ∑ t, (Measure.real ℙ (T₃ ⁻¹' {t})) * d[ X₁ # X₂ ]  ∑ t, (Measure.real ℙ (T₃ ⁻¹' {t})) *      (d[T₁ ; ℙ[|T₃  t] # T₂ ; ℙ[|T₃  t]]        + η * (ρ[T₁ ; ℙ[|T₃  t] # A] - ρ[X₁ # A]) + η * (ρ[T₂ ; ℙ[|T₃  t] # A] - ρ[X₂ # A])) := by    apply Finset.sum_le_sum (fun t ht  ?_)    rcases eq_or_ne (Measure.real ℙ (T₃ ⁻¹' {t})) 0 with h't | h't    · simp [h't]    have : IsProbabilityMeasure (ℙ[|T₃  t]) := cond_isProbabilityMeasure_of_real h't    gcongr    exact le_rdist_of_phiMinimizes' h_min hT₁ hT₂  have : k  ∑ x : G, (Measure.real ℙ (T₃ ⁻¹' {x})) * d[T₁ ; ℙ[|T₃  x] # T₂ ; ℙ[|T₃  x]] +      η * (ρ[T₁ | T₃ # A] - ρ[X₁ # A]) + η * (ρ[T₂ | T₃ # A] - ρ[X₂ # A]) := by    have S : ∑ i : G, (Measure.real ℙ (T₃ ⁻¹' {i})) = 1 := by      have : IsProbabilityMeasure (Measure.map T₃ ℙ) := isProbabilityMeasure_map hT₃.aemeasurable      simp [ map_measureReal_apply hT₃ (measurableSet_singleton _)]    simp_rw [ Finset.sum_mul, S, mul_add, Finset.sum_add_distrib,  mul_assoc, mul_comm _ η,      mul_assoc,  Finset.mul_sum, mul_sub, Finset.sum_sub_distrib, mul_sub,       Finset.sum_mul, S] at this    simpa [mul_sub, condRho, tsum_fintype] using this  have J : ∑ x : G, (Measure.real ℙ (T₃ ⁻¹' {x})) * d[T₁ ; ℙ[|T₃  x] # T₂ ; ℙ[|T₃  x]]       3 * I[T₁ : T₂] + 2 * H[T₃] - H[T₁] - H[T₂] := by    have h2T₃ : T₃ = T₁ + T₂ :=      calc T₃ = T₁ + T₂ + T₃ - T₃ := by rw [hsum, _root_.zero_sub]; simp [ZModModule.neg_eq_self]        _ = T₁ + T₂ := by rw [add_sub_cancel_right]    subst h2T₃    simpa [integral_fintype .of_finite, map_measureReal_apply hT₃ (.singleton _)]      using ent_bsg hT₁ hT₂ (μ := ℙ)  linarith