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

ProbabilityTheory.Kernel.rdist_triangle_aux1

PFR.ForMathlib.Entropy.Kernel.RuzsaDist · PFR/ForMathlib/Entropy/Kernel/RuzsaDist.lean:279 to 308

Mathematical statement

Exact Lean statement

lemma rdist_triangle_aux1 (κ : Kernel T G) (η : Kernel T' G)
    [IsMarkovKernel κ] [IsMarkovKernel η]
    (μ : Measure T) (μ' : Measure T') (μ'' : Measure T'')
    [IsProbabilityMeasure μ] [IsProbabilityMeasure μ'] [IsProbabilityMeasure μ'']
    [FiniteSupport μ] [FiniteSupport μ'] [FiniteSupport μ''] :
    Hk[map (prodMkRight T' (prodMkRight T'' κ) ×ₖ prodMkLeft (T × T'') η)
          (fun p ↦ p.1 - p.2), (μ.prod μ'').prod μ']
      = Hk[map (prodMkRight T' κ ×ₖ prodMkLeft T η) (fun x ↦ x.1 - x.2),
        μ.prod μ']

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma rdist_triangle_aux1 (κ : Kernel T G) (η : Kernel T' G)    [IsMarkovKernel κ] [IsMarkovKernel η]    (μ : Measure T) (μ' : Measure T') (μ'' : Measure T'')    [IsProbabilityMeasure μ] [IsProbabilityMeasure μ'] [IsProbabilityMeasure μ'']    [FiniteSupport μ] [FiniteSupport μ'] [FiniteSupport μ''] :    Hk[map (prodMkRight T' (prodMkRight T'' κ) ×ₖ prodMkLeft (T × T'') η)          (fun p  p.1 - p.2), (μ.prod μ'').prod μ']      = Hk[map (prodMkRight T' κ ×ₖ prodMkLeft T η) (fun x  x.1 - x.2),        μ.prod μ'] := by  have hAB : ᵐ x ∂(μ.prod μ'), x  ((μ.support ×ˢ μ'.support : Finset (T × T')) : Set (T × T')) :=    Measure.prod_of_full_measure_finset (measure_compl_support μ) (measure_compl_support μ')  have hAC : (μ.prod μ'') ((μ.support ×ˢ μ''.support : Finset (T × T'')) : Set (T × T''))ᶜ = 0 :=    Measure.prod_of_full_measure_finset (measure_compl_support μ) (measure_compl_support μ'')  have hACB : ᵐ x ∂(μ.prod μ'').prod μ', x       (((μ.support ×ˢ μ''.support) ×ˢ μ'.support : Finset ((T × T'') × T')) : Set ((T × T'') × T'))        := Measure.prod_of_full_measure_finset hAC (measure_compl_support μ')  simp_rw [entropy, integral_eq_setIntegral hAB, integral_eq_setIntegral hACB,    setIntegral_finset _ .finset, smul_eq_mul, Measure.prod_real_singleton, Finset.sum_product,    mul_assoc,  Finset.mul_sum]  congr with x  have :  z y, map (prodMkRight T' (prodMkRight T'' κ) ×ₖ prodMkLeft (T × T'') η)        (fun p  p.1 - p.2) ((x, z), y)      = map (prodMkRight T' κ ×ₖ prodMkLeft T η) (fun p  p.1 - p.2) (x, y) := by    intro z y    ext s hs    rw [map_apply' _ (by fun_prop) _ hs, map_apply' _ (by fun_prop) _ hs, prod_apply, prod_apply]    simp  simp_rw [this,  Finset.sum_mul, sum_measureReal_singleton, Measure.real,    measure_of_measure_compl_eq_zero (measure_compl_support μ'')]  simp