@@ -640,8 +640,80 @@ theorem tendsto_of_forall_isClosed_limsup_le
640640 exact (limsup_comp (fun i ↦ μs i F) u _).trans_le
641641 (limsup_le_limsup_of_le hu (by isBoundedDefault) ⟨1 , by simp⟩)
642642
643+ lemma tendsto_of_forall_isClosed_limsup_real_le' {L : Filter ι} [L.IsCountablyGenerated]
644+ (h : ∀ F : Set Ω, IsClosed F →
645+ limsup (fun i ↦ (μs i : Measure Ω).real F) L ≤ (μ : Measure Ω).real F) :
646+ Tendsto μs L (𝓝 μ) := by
647+ refine tendsto_of_forall_isClosed_limsup_le' fun F hF ↦ ?_
648+ rcases L.eq_or_neBot with rfl | hne
649+ · simp
650+ specialize h F hF
651+ simp only [Measure.real_def] at h
652+ rwa [ENNReal.limsup_toReal_eq (b := 1 ) (by simp) (.of_forall fun i ↦ prob_le_one),
653+ ENNReal.toReal_le_toReal _ (by finiteness)] at h
654+ refine ne_top_of_le_ne_top (b := 1 ) (by simp) ?_
655+ refine limsup_le_of_le ?_ (.of_forall fun i ↦ prob_le_one)
656+ exact isCoboundedUnder_le_of_le L (x := 0 ) (by simp)
657+
643658end Closed
644659
660+ section Lipschitz
661+
662+ /-- Weak convergence of probability measures is equivalent to the property that the integrals of
663+ every bounded Lipschitz function converge to the integral of the function against
664+ the limit measure. -/
665+ theorem tendsto_iff_forall_lipschitz_integral_tendsto {γ Ω : Type *} {mΩ : MeasurableSpace Ω}
666+ [PseudoEMetricSpace Ω] [OpensMeasurableSpace Ω] {F : Filter γ} [F.IsCountablyGenerated]
667+ {μs : γ → ProbabilityMeasure Ω} {μ : ProbabilityMeasure Ω} :
668+ Tendsto μs F (𝓝 μ) ↔
669+ ∀ f : Ω → ℝ, (∃ (C : ℝ), ∀ x y, dist (f x) (f y) ≤ C) → (∃ L, LipschitzWith L f) →
670+ Tendsto (fun i ↦ ∫ ω, f ω ∂(μs i)) F (𝓝 (∫ ω, f ω ∂μ)) := by
671+ constructor
672+ · -- A bounded Lipschitz function is in particular a bounded continuous function, and we already
673+ -- know that weak convergence implies convergence of their integrals
674+ intro h f hf_bounded hf_lip
675+ simp_rw [ProbabilityMeasure.tendsto_iff_forall_integral_tendsto] at h
676+ let f' : BoundedContinuousFunction Ω ℝ :=
677+ { toFun := f
678+ continuous_toFun := hf_lip.choose_spec.continuous
679+ map_bounded' := hf_bounded }
680+ simpa using h f'
681+ -- To prove the other direction, we prove convergence of the measure of closed sets.
682+ -- We approximate the indicator function of a closed set by bounded Lipschitz functions.
683+ rcases F.eq_or_neBot with rfl | hne
684+ · simp
685+ refine fun h ↦ tendsto_of_forall_isClosed_limsup_real_le' fun s hs ↦ ?_
686+ refine le_of_forall_pos_le_add fun ε ε_pos ↦ ?_
687+ let fs : ℕ → Ω → ℝ := fun n ω ↦ thickenedIndicator (δ := (1 : ℝ) / (n + 1 )) (by positivity) s ω
688+ have key₁ : Tendsto (fun n ↦ ∫ ω, fs n ω ∂μ) atTop (𝓝 ((μ : Measure Ω).real s)) :=
689+ tendsto_integral_thickenedIndicator_of_isClosed μ hs (δs := fun n ↦ (1 : ℝ) / (n + 1 ))
690+ (fun _ ↦ by positivity) tendsto_one_div_add_atTop_nhds_zero_nat
691+ have room₁ : (μ : Measure Ω).real s < (μ : Measure Ω).real s + ε / 2 := by simp [ε_pos]
692+ obtain ⟨M, hM⟩ := eventually_atTop.mp <| key₁.eventually_lt_const room₁
693+ have key₂ : Tendsto (fun i ↦ ∫ ω, fs M ω ∂(μs i)) F (𝓝 (∫ ω, fs M ω ∂μ)) :=
694+ h (fs M) ⟨1 , fun x y ↦ ?_⟩
695+ ⟨_, lipschitzWith_thickenedIndicator (δ := (1 : ℝ) / (M + 1 )) (by positivity) s⟩
696+ swap
697+ · simp only [Real.dist_eq, abs_le]
698+ have h1 x : fs M x ≤ 1 := thickenedIndicator_le_one _ _ _
699+ have h2 x : 0 ≤ fs M x := by simp [fs]
700+ grind
701+ have room₂ : ∫ a, fs M a ∂μ < ∫ a, fs M a ∂μ + ε / 2 := by simp [ε_pos]
702+ have ev_near : ∀ᶠ x in F, (μs x : Measure Ω).real s ≤ ∫ a, fs M a ∂μ + ε / 2 := by
703+ refine (key₂.eventually_le_const room₂).mono fun x hx ↦ le_trans ?_ hx
704+ rw [← integral_indicator_one hs.measurableSet]
705+ refine integral_mono ?_ (integrable_thickenedIndicator _ _) ?_
706+ · exact (integrable_indicator_iff hs.measurableSet).mpr (integrable_const _).integrableOn
707+ · have h : _ ≤ fs M :=
708+ indicator_le_thickenedIndicator (δ := (1 : ℝ) / (M + 1 )) (by positivity) s
709+ simpa using h
710+ apply (Filter.limsup_le_of_le ?_ ev_near).trans
711+ · apply (add_le_add (hM M rfl.le).le (le_refl (ε / 2 ))).trans_eq
712+ ring
713+ · exact isCoboundedUnder_le_of_le F (x := 0 ) (by simp)
714+
715+ end Lipschitz
716+
645717section convergenceCriterion
646718
647719open scoped Finset
0 commit comments