teorth/PFR
Source indexedlemma · leanprover/lean4:v4.33.0-rc1
ProbabilityTheory.IndepFun.map_add_eq_sum
PFR.Kullback · PFR/Kullback.lean:201 to 232
Source documentation
The distribution of X + Z is the convolution of the distributions of Z and X when these
random variables are independent.
Probably already available somewhere in some form, but I couldn't locate it.
Exact Lean statement
lemma ProbabilityTheory.IndepFun.map_add_eq_sum
[Fintype G] [AddCommGroup G] [DiscreteMeasurableSpace G]
{X Z : Ω → G} (h_indep : IndepFun X Z μ)
(hX : Measurable X) (hZ : Measurable Z) (S : Set G) :
μ.map (X + Z) S = ∑ s, μ.map Z {s} * μ.map X ({-s} + S)Complete declaration
Lean source
Full Lean sourceLean 4
lemma ProbabilityTheory.IndepFun.map_add_eq_sum [Fintype G] [AddCommGroup G] [DiscreteMeasurableSpace G] {X Z : Ω → G} (h_indep : IndepFun X Z μ) (hX : Measurable X) (hZ : Measurable Z) (S : Set G) : μ.map (X + Z) S = ∑ s, μ.map Z {s} * μ.map X ({-s} + S) := by rw [Measure.map_apply (by fun_prop) (DiscreteMeasurableSpace.forall_measurableSet S)] have : (X + Z) ⁻¹' S = ⋃ s, X ⁻¹' ({-s} + S) ∩ Z ⁻¹' {s} := by apply Subset.antisymm · intro y hy simp only [mem_iUnion, mem_inter_iff, mem_preimage, mem_singleton_iff] exact ⟨Z y, by simpa [add_comm] using hy, rfl⟩ · simp only [iUnion_subset_iff] intro i y hy simp only [singleton_add, image_add_left, neg_neg, mem_inter_iff, mem_preimage, mem_singleton_iff] at hy simp [hy.1, hy.2, add_comm] rw [this, measure_iUnion, tsum_fintype]; rotate_left · intro i j hij simp only [Function.onFun, singleton_add, image_add_left, neg_neg] apply Disjoint.inter_left' apply Disjoint.inter_right' apply disjoint_left.2 (fun a ha hb ↦ ?_) rw [← ha, ← hb] at hij exact hij rfl · intro i exact (hX (DiscreteMeasurableSpace.forall_measurableSet _)).inter (hZ (measurableSet_singleton _)) congr with i rw [h_indep.measure_inter_preimage_eq_mul _ _ (DiscreteMeasurableSpace.forall_measurableSet _) (measurableSet_singleton _), mul_comm, Measure.map_apply hZ (measurableSet_singleton _), Measure.map_apply hX (DiscreteMeasurableSpace.forall_measurableSet _)]