teorth/PFR
Source indexedlemma · leanprover/lean4:v4.33.0-rc1
ent_of_sum_le_ent_of_sum
PFR.MoreRuzsaDist · PFR/MoreRuzsaDist.lean:633 to 681
Source documentation
Let X₁, ..., Xₘ and Y₁, ..., Yₗ be tuples of jointly independent random variables (so the
X's and Y's are also independent of each other), and let f : {1,..., l} → {1,... ,m} be a
function, then H[∑ j, Y j] ≤ H[∑ i, X i] + ∑ j, H[Y j - X f(j)] - H[X_{f(j)}].
Exact Lean statement
lemma ent_of_sum_le_ent_of_sum {I : Type*} {s t : Finset I} (hdisj : Disjoint s t)
(X : I → Ω → G) (hX : ∀ i, Measurable (X i)) [∀ i, FiniteRange (X i)]
(hindep : iIndepFun X μ) (f : I → I) (hf : Finset.image f t ⊆ s) :
H[∑ i ∈ t, X i; μ] ≤ H[∑ i ∈ s, X i; μ] + ∑ i ∈ t, (H[ X i - X (f i); μ] - H[X (f i); μ])Complete declaration
Lean source
Full Lean sourceLean 4
lemma ent_of_sum_le_ent_of_sum {I : Type*} {s t : Finset I} (hdisj : Disjoint s t) (X : I → Ω → G) (hX : ∀ i, Measurable (X i)) [∀ i, FiniteRange (X i)] (hindep : iIndepFun X μ) (f : I → I) (hf : Finset.image f t ⊆ s) : H[∑ i ∈ t, X i; μ] ≤ H[∑ i ∈ s, X i; μ] + ∑ i ∈ t, (H[ X i - X (f i); μ] - H[X (f i); μ]) := by --Write `W := $W := ∑_{i=1}^m X_i$` set W := ∑ i ∈ s, X i with hW --Write `U := ∑_{j=1}^l Y_j` (in the notation of the informal proof) set U := ∑ i ∈ t, X i with hU haveI : FiniteRange U := .finsum X haveI : FiniteRange W := .finsum X have U_meas : Measurable U := by convert Finset.measurable_sum t (fun i _ => hX i) simp only [hU, Finset.sum_apply] have W_meas : Measurable W := by convert Finset.measurable_sum s (fun i _ => hX i) simp only [hW, Finset.sum_apply] calc --We have `H[U] ≤ H[-W + U]` _ ≤ H[-W + U ; μ ] := entropy_sum_le_entropy_neg_add hdisj X hX hindep W_meas U_meas -- `≤ H[-W] + ∑_{j=1}^l (H[-W + Y_j] - H[-W])` _ ≤ H[-W ; μ] + ∑ i ∈ t, (H[-W + X i ; μ] - H[-W ; μ]) := by apply entropy_kvm_decomposition hdisj -- We'd want to give those to `apply` but this leads to timeouts... · apply hX · apply hindep _ ≤ H[-W ; μ] + ∑ i ∈ t, (H[X i - X (f i) ; μ] - H[X (f i) ; μ]) := by rw [add_le_add_iff_left] apply Finset.sum_le_sum intro i hi calc H[-W + X i ; μ] - H[-W ; μ] = H[(- ∑ i ∈ s \ {f i}, X i) + (- (X (f i))) + X i; μ] - H[(- ∑ i ∈ s \ {f i}, X i) + (- (X (f i))) ; μ]:= by congr 3 all_goals rw [hW, Finset.sum_sdiff_eq_sub, Finset.sum_singleton, neg_sub] · abel · rw [Finset.singleton_subset_iff] apply hf (Finset.mem_image_of_mem _ hi) _ ≤ H[(- (X <| f i)) + X i ; μ] - H[- (X (f i)) ; μ] := entropy_kvm_step hdisj hX hindep f hf i hi _ = H[(- (X <| f i)) + X i ; μ] - H[(X (f i)) ; μ] := by rw [entropy_neg (hX <| f i)] apply le_of_eq congr abel _ = H[W ; μ] + ∑ i ∈ t, (H[X i - X (f i); μ] - H[X (f i); μ]) := by rw [entropy_neg] measurability