Theorem: MeasureTheory.LevyProkhorov.continuous_toProbabilityMeasure
File: Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean

Proof steps:
state_before: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
⊢ Continuous toProbabilityMeasure
state_after: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
⊢ SeqContinuous toProbabilityMeasure
tactic: refine SeqContinuous.continuous ?_
state_before: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
⊢ SeqContinuous toProbabilityMeasure
state_after: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
⊢ Tendsto (toProbabilityMeasure ∘ μs) atTop (𝓝 ν.toProbabilityMeasure)
tactic: intro μs ν hμs
state_before: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
⊢ Tendsto (toProbabilityMeasure ∘ μs) atTop (𝓝 ν.toProbabilityMeasure)
state_after: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
⊢ Tendsto (toProbabilityMeasure ∘ μs) atTop (𝓝 P)
tactic: set P := ν.toProbabilityMeasure
state_before: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
⊢ Tendsto (toProbabilityMeasure ∘ μs) atTop (𝓝 P)
state_after: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
⊢ Tendsto (toProbabilityMeasure ∘ μs) atTop (𝓝 P)
tactic: set Ps := fun n ↦ (μs n).toProbabilityMeasure
state_before: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
⊢ Tendsto (toProbabilityMeasure ∘ μs) atTop (𝓝 P)
state_after: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
⊢ ∀ (f : Ω →ᵇ ℝ), Tendsto (fun i => ∫ (ω : Ω), f ω ∂↑((toProbabilityMeasure ∘ μs) i)) atTop (𝓝 (∫ (ω : Ω), f ω ∂↑P))
tactic: rw [ProbabilityMeasure.tendsto_iff_forall_integral_tendsto]
state_before: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
⊢ ∀ (f : Ω →ᵇ ℝ), Tendsto (fun i => ∫ (ω : Ω), f ω ∂↑((toProbabilityMeasure ∘ μs) i)) atTop (𝓝 (∫ (ω : Ω), f ω ∂↑P))
state_after: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f : Ω →ᵇ ℝ
⊢ ∀ (f : Ω →ᵇ ℝ), 0 ≤ f → limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P
tactic: refine fun f ↦ tendsto_integral_of_forall_limsup_integral_le_integral ?_ f
state_before: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f : Ω →ᵇ ℝ
⊢ ∀ (f : Ω →ᵇ ℝ), 0 ≤ f → limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P
state_after: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
⊢ limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P
tactic: intro f f_nn
state_before: ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
⊢ limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P
state_after: case pos
ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
f_zero : ‖f‖ = 0
⊢ limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P

case neg
ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
f_zero : ¬‖f‖ = 0
⊢ limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P
tactic: by_cases f_zero : ‖f‖ = 0
state_before: case neg
ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
f_zero : ¬‖f‖ = 0
⊢ limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P
state_after: case neg
ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
f_zero : ¬‖f‖ = 0
norm_f_pos : 0 < ‖f‖
⊢ limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P
tactic: have norm_f_pos : 0 < ‖f‖ := lt_of_le_of_ne (norm_nonneg _) (fun a => f_zero a.symm)
state_before: case neg
ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
f_zero : ¬‖f‖ = 0
norm_f_pos : 0 < ‖f‖
⊢ limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P
state_after: case neg.h
ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
f_zero : ¬‖f‖ = 0
norm_f_pos : 0 < ‖f‖
⊢ ∀ (ε : ℝ), 0 < ε → limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P + ε
tactic: apply _root_.le_of_forall_pos_le_add
state_before: case neg.h
ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
f_zero : ¬‖f‖ = 0
norm_f_pos : 0 < ‖f‖
⊢ ∀ (ε : ℝ), 0 < ε → limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P + ε
state_after: case neg.h
ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
f_zero : ¬‖f‖ = 0
norm_f_pos : 0 < ‖f‖
δ : ℝ
δ_pos : 0 < δ
⊢ limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P + δ
tactic: intro δ δ_pos
state_before: case neg.h
ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
f_zero : ¬‖f‖ = 0
norm_f_pos : 0 < ‖f‖
δ : ℝ
δ_pos : 0 < δ
⊢ limsup (fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)) atTop ≤ ∫ (x : Ω), f x ∂↑P + δ
state_after: case neg.h
ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
f_zero : ¬‖f‖ = 0
norm_f_pos : 0 < ‖f‖
δ : ℝ
δ_pos : 0 < δ
⊢ ∀ᶠ (n : ℕ) in atTop, ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) n) ≤ ∫ (x : Ω), f x ∂↑P + δ

ι : Type u_1
Ω : Type u_2
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μs : ℕ → LevyProkhorov (ProbabilityMeasure Ω)
ν : LevyProkhorov (ProbabilityMeasure Ω)
hμs : Tendsto μs atTop (𝓝 ν)
P : ProbabilityMeasure Ω := ν.toProbabilityMeasure
Ps : ℕ → ProbabilityMeasure Ω := fun n => (μs n).toProbabilityMeasure
f✝ f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
f_zero : ¬‖f‖ = 0
norm_f_pos : 0 < ‖f‖
δ : ℝ
δ_pos : 0 < δ
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) atTop fun i => ∫ (x : Ω), f x ∂↑((toProbabilityMeasure ∘ μs) i)
tactic: apply limsup_le_of_le ?_