Skip to content

Commit bc415c8

Browse files
feat(MeasureTheory/Function): ae convergence implies convergence in distribution (#39517)
This PR introduces a theorem which concludes convergence in distribution from almost everywhere convergence. Previously, this could be done by chaining [`tendstoInMeasure_of_tendsto_ae`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Function/ConvergenceInMeasure.html#MeasureTheory.tendstoInMeasure_of_tendsto_ae) and [`TendstoInMeasure.tendstoInDistribution`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Function/ConvergenceInDistribution.html#MeasureTheory.TendstoInMeasure.tendstoInDistribution). However, this is not a good way to to it since the second lemma requires a `SeminormedAddCommGroup E` instance (which is not needed for the statement to hold). Thus, we instead give a direct short proof which relies on dominated convergence. As a consequence, we also obtain a new proof of `TendstoInMeasure.tendstoInDistribution` which does not pass through `tendstoInDistribution_of_tendstoInMeasure_sub` and therefore does not require `SeminormedAddCommGroup` and `SecondCountableTopology` anymore. I expect this will enable significant golfing (or maybe even removal) of `tendstoInDistribution_of_tendstoInMeasure_sub` in the future. In order to allow for ae measurability as an assumption, it was necessary to add `tendsto_lintegral_filter_of_dominated_convergence'`, which gives dominated convergence along a countable filter for `AEMeasurable` functions. Sidenote: I believe [`TendstoInMeasure.tendstoInDistribution`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Function/ConvergenceInDistribution.html#MeasureTheory.TendstoInMeasure.tendstoInDistribution) should be rewritten at some point to require only a metric space (or maybe only uniform space) structure. However, even if this was done, the theorem of this PR provides the value of relying only on `TopologicalSpace E`. Co-authored-by: Rémy Degenne <remydegenne@gmail.com>
1 parent 0278d6b commit bc415c8

3 files changed

Lines changed: 42 additions & 10 deletions

File tree

Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,41 @@ theorem TendstoInDistribution.continuous_comp {F : Type*} [OpensMeasurableSpace
129129
congr
130130
rw [AEMeasurable.map_map_of_aemeasurable hg.aemeasurable h.aemeasurable_limit]
131131

132+
/-- Almost sure convergence implies convergence in distribution. -/
133+
theorem tendstoInDistribution_of_ae_tendsto [l.IsCountablyGenerated]
134+
[OpensMeasurableSpace E] {X : ι → Ω' → E}
135+
(hX₁ : ∀ i, AEMeasurable (X i) μ') (hZ : AEMeasurable Z μ')
136+
(hX₂ : ∀ᵐ ω ∂μ', Tendsto (fun i ↦ X i ω) l (𝓝 (Z ω))) :
137+
TendstoInDistribution X l Z (fun _ ↦ μ') μ' where
138+
forall_aemeasurable := hX₁
139+
aemeasurable_limit := hZ
140+
tendsto := by
141+
simp_rw [ProbabilityMeasure.tendsto_iff_forall_lintegral_tendsto, ProbabilityMeasure.coe_mk]
142+
intro f
143+
rw [lintegral_map' (by fun_prop) hZ]
144+
conv in ∫⁻ _, _ ∂_ => rw [lintegral_map' (by fun_prop) (hX₁ i)]
145+
apply tendsto_lintegral_filter_of_dominated_convergence' (bound := fun _ ↦ edist 0 f)
146+
· exact .of_forall (by fun_prop)
147+
· simp [f.apply_le_edist_zero]
148+
· simp
149+
filter_upwards [hX₂] with ω hω
150+
simpa using f.continuous.tendsto (Z ω) |>.comp hω
151+
132152
end TendstoInDistribution
133153

154+
/-- Convergence in probability (`TendstoInMeasure`) implies convergence in distribution
155+
(`TendstoInDistribution`). -/
156+
theorem TendstoInMeasure.tendstoInDistribution [PseudoEMetricSpace E] [BorelSpace E]
157+
[l.IsCountablyGenerated] [l.NeBot] {X : ι → Ω' → E}
158+
(h : TendstoInMeasure μ' X l Z) (hX : ∀ i, AEMeasurable (X i) μ') :
159+
TendstoInDistribution X l Z (fun _ ↦ μ') μ' := by
160+
have hZ := h.aemeasurable hX
161+
refine ⟨hX, hZ, ?_⟩
162+
refine Filter.tendsto_of_subseq_tendsto (fun ns hns ↦ ?_)
163+
obtain ⟨ms, hms1, hms2⟩ := h.comp hns |>.exists_seq_tendsto_ae'
164+
refine ⟨ms, TendstoInDistribution.tendsto ?_⟩
165+
exact tendstoInDistribution_of_ae_tendsto (by fun_prop) hZ hms2
166+
134167
variable [SeminormedAddCommGroup E] [SecondCountableTopology E] [BorelSpace E]
135168

136169
/-- Let `X, Y` be two sequences of measurable functions such that `X n` converges in distribution
@@ -257,13 +290,6 @@ lemma TendstoInMeasure.tendstoInDistribution_of_aemeasurable [l.IsCountablyGener
257290
tendstoInDistribution_of_tendstoInMeasure_sub X Z (tendstoInDistribution_const hZ)
258291
(by simpa [tendstoInMeasure_iff_norm] using h) hX
259292

260-
/-- Convergence in probability (`TendstoInMeasure`) implies convergence in distribution
261-
(`TendstoInDistribution`). -/
262-
lemma TendstoInMeasure.tendstoInDistribution [l.NeBot] [l.IsCountablyGenerated]
263-
{X : ι → Ω' → E} (h : TendstoInMeasure μ' X l Z) (hX : ∀ i, AEMeasurable (X i) μ') :
264-
TendstoInDistribution X l Z (fun _ ↦ μ') μ' :=
265-
h.tendstoInDistribution_of_aemeasurable hX (h.aemeasurable hX)
266-
267293
/-- **Slutsky's theorem**: if `X n` converges in distribution to `Z`, and `Y n` converges in
268294
probability to a constant `c`, then the pair `(X n, Y n)` converges in distribution to `(Z, c)`. -/
269295
theorem TendstoInDistribution.prodMk_of_tendstoInMeasure_const

Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,18 @@ namespace BoundedContinuousFunction
2727

2828
section NNRealValued
2929

30-
lemma apply_le_nndist_zero {X : Type*} [TopologicalSpace X] (f : X →ᵇ ℝ≥0) (x : X) :
30+
variable {X : Type*} [TopologicalSpace X]
31+
32+
lemma apply_le_nndist_zero (f : X →ᵇ ℝ≥0) (x : X) :
3133
f x ≤ nndist 0 f := by
3234
convert! nndist_coe_le_nndist x
3335
simp only [coe_zero, Pi.zero_apply, NNReal.nndist_zero_eq_val]
3436

35-
variable {X : Type*} [MeasurableSpace X] [TopologicalSpace X]
37+
lemma apply_le_edist_zero (f : X →ᵇ ℝ≥0) (x : X) :
38+
f x ≤ edist 0 f := by
39+
simpa [← ENNReal.coe_le_coe] using f.apply_le_nndist_zero x
40+
41+
variable [MeasurableSpace X]
3642

3743
lemma lintegral_le_edist_mul (f : X →ᵇ ℝ≥0) (μ : Measure X) :
3844
(∫⁻ x, f x ∂μ) ≤ edist 0 f * (μ Set.univ) :=

Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ theorem edist_lt_top {α : Type*} [PseudoMetricSpace α] (x y : α) : edist x y
314314
(edist_dist x y).symm ▸ ENNReal.ofReal_lt_top
315315

316316
/-- In a pseudometric space, the extended distance is always finite -/
317-
@[aesop (rule_sets := [finiteness]) safe apply]
317+
@[aesop (rule_sets := [finiteness]) safe apply, simp]
318318
theorem edist_ne_top (x y : α) : edist x y ≠ ⊤ :=
319319
(edist_lt_top x y).ne
320320

0 commit comments

Comments
 (0)