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

kvm_ineq_I

PFR.MoreRuzsaDist · PFR/MoreRuzsaDist.lean:301 to 338

Source documentation

If n ≥ 0 and X, Y₁, ..., Yₙ are jointly independent G-valued random variables, then H[Y i₀ + ∑ i ∈ s, Y i; μ] - H[Y i₀; μ] ≤ ∑ i ∈ s, (H[Y i₀ + Y i; μ] - H[Y i₀; μ]).

Exact Lean statement

lemma kvm_ineq_I {I : Type*} {i₀ : I} {s : Finset I} (hs : ¬ i₀ ∈ s)
    {Y : I → Ω → G} [∀ i, FiniteRange (Y i)] (hY : ∀ i, Measurable (Y i))
    (h_indep : iIndepFun Y μ) :
    H[Y i₀ + ∑ i ∈ s, Y i ; μ] - H[Y i₀ ; μ] ≤ ∑ i ∈ s, (H[Y i₀ + Y i ; μ] - H[Y i₀ ; μ])

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma kvm_ineq_I {I : Type*} {i₀ : I} {s : Finset I} (hs : ¬ i₀  s)    {Y : I  Ω  G} [ i, FiniteRange (Y i)] (hY :  i, Measurable (Y i))    (h_indep : iIndepFun Y μ) :    H[Y i₀ + ∑ i  s, Y i ; μ] - H[Y i₀ ; μ]  ∑ i  s, (H[Y i₀ + Y i ; μ] - H[Y i₀ ; μ]) := by  classical  induction s using Finset.induction_on with  | empty => simp  | @insert i s hi IH =>    simp_rw [Finset.sum_insert hi]    have his : i₀  s := fun h  hs (Finset.mem_insert_of_mem h)    have hii₀ : i  i₀ := fun h  hs (h ▸ Finset.mem_insert_self i s)    let J := Fin 3    let S : J  Finset I := ![s, {i₀}, {i}]    have h_dis : Set.univ.PairwiseDisjoint S := by      intro j _ k _ hjk      change Disjoint (S j) (S k)      fin_cases j <;> fin_cases k <;> try exact (hjk rfl).elim      all_goals        simp_all [Fin.isValue, Matrix.cons_val_zero, Matrix.cons_val_one,          Finset.disjoint_singleton_right, S]    let φ : (j : J)  ((_ : S j)  G)  G      | 0 => fun Ys  ∑ i : s, Ys i.1, i.2      | 1 => fun Ys  Ys i₀, by simp [S]      | 2 => fun Ys  Ys i, by simp [S]    have hφ : (j : J)  Measurable (φ j) := fun j  .of_discrete    have h_ind : iIndepFun ![∑ j  s, Y j, Y i₀, Y i] μ := by      convert h_indep.finsets_comp S h_dis hY φ hφ with j x      fin_cases j <;> simp [φ, (s.sum_attach _).symm]    have measSum : Measurable (∑ j  s, Y j) := by      convert Finset.measurable_sum s (fun j _  hY j)      simp    have hkv := kaimanovich_vershik h_ind measSum (hY i₀) (hY i)    convert! add_le_add (IH his) hkv using 1    · nth_rw 2 [add_comm (Y i₀)]      norm_num      congr 1      rw [add_comm _ (Y i₀), add_comm (Y i), add_assoc]    · ring