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

condMultiDist_nonneg

PFR.MoreRuzsaDist · PFR/MoreRuzsaDist.lean:1591 to 1610

Source documentation

Conditional multidistance is nonnegative.

Exact Lean statement

theorem condMultiDist_nonneg [Finite G] {m : ℕ} {Ω : Fin m → Type*} (hΩ : ∀ i, MeasureSpace (Ω i))
    (hprob : ∀ i, IsProbabilityMeasure (ℙ : Measure (Ω i))) {S : Type*} [Fintype S]
    (X : ∀ i, Ω i → G) (Y : ∀ i, Ω i → S) (hX : ∀ i, Measurable (X i)) : 0 ≤ D[X | Y; hΩ]

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem condMultiDist_nonneg [Finite G] {m : } {Ω : Fin m  Type*} (hΩ :  i, MeasureSpace (Ω i))    (hprob :  i, IsProbabilityMeasure (ℙ : Measure (Ω i))) {S : Type*} [Fintype S]    (X :  i, Ω i  G) (Y :  i, Ω i  S) (hX :  i, Measurable (X i)) : 0  D[X | Y; hΩ] := by  dsimp [condMultiDist]  apply Finset.sum_nonneg  intro y _  by_cases h:  i : Fin m, ℙ (Y i ⁻¹' {y i})  0  · apply mul_nonneg    · apply Finset.prod_nonneg      intros      exact ENNReal.toReal_nonneg    exact multiDist_nonneg (fun i => ℙ[|Y i ⁻¹' {y i}])      (fun i => cond_isProbabilityMeasure (h i)) X hX  simp only [ne_eq, not_forall, Decidable.not_not] at h  obtain i, hi := h  apply le_of_eq  symm  convert zero_mul ?_  apply Finset.prod_eq_zero (Finset.mem_univ i)  simp [Measure.real, hi, ENNReal.toReal_zero]