Theorem: MeasureTheory.tendsto_of_forall_isOpen_le_liminf
File: Mathlib/MeasureTheory/Measure/Portmanteau.lean

Proof steps:
state_before: Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
h_opens : ∀ (G : Set Ω), IsOpen G → μ G ≤ liminf (fun i => (μs i) G) atTop
⊢ Tendsto (fun i => μs i) atTop (𝓝 μ)
state_after: Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
h_opens : ∀ (G : Set Ω), IsOpen G → μ G ≤ liminf (fun i => (μs i) G) atTop
⊢ ∀ (f : Ω →ᵇ ℝ), Tendsto (fun i => ∫ (ω : Ω), f ω ∂↑(μs i)) atTop (𝓝 (∫ (ω : Ω), f ω ∂↑μ))
tactic: refine ProbabilityMeasure.tendsto_iff_forall_integral_tendsto.mpr ?_
state_before: Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
h_opens : ∀ (G : Set Ω), IsOpen G → μ G ≤ liminf (fun i => (μs i) G) atTop
⊢ ∀ (f : Ω →ᵇ ℝ), Tendsto (fun i => ∫ (ω : Ω), f ω ∂↑(μs i)) atTop (𝓝 (∫ (ω : Ω), f ω ∂↑μ))
state_after: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
h_opens : ∀ (G : Set Ω), IsOpen G → μ G ≤ liminf (fun i => (μs i) G) atTop
⊢ ∀ (f : Ω →ᵇ ℝ), 0 ≤ f → ∫ (x : Ω), f x ∂↑μ ≤ liminf (fun i => ∫ (x : Ω), f x ∂↑(μs i)) atTop
tactic: apply tendsto_integral_of_forall_integral_le_liminf_integral
state_before: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
h_opens : ∀ (G : Set Ω), IsOpen G → μ G ≤ liminf (fun i => (μs i) G) atTop
⊢ ∀ (f : Ω →ᵇ ℝ), 0 ≤ f → ∫ (x : Ω), f x ∂↑μ ≤ liminf (fun i => ∫ (x : Ω), f x ∂↑(μs i)) atTop
state_after: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
h_opens : ∀ (G : Set Ω), IsOpen G → μ G ≤ liminf (fun i => (μs i) G) atTop
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
⊢ ∫ (x : Ω), f x ∂↑μ ≤ liminf (fun i => ∫ (x : Ω), f x ∂↑(μs i)) atTop
tactic: intro f f_nn
state_before: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
h_opens : ∀ (G : Set Ω), IsOpen G → μ G ≤ liminf (fun i => (μs i) G) atTop
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
⊢ ∫ (x : Ω), f x ∂↑μ ≤ liminf (fun i => ∫ (x : Ω), f x ∂↑(μs i)) atTop
state_after: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
h_opens : ∀ (G : Set Ω), IsOpen G → μ G ≤ liminf (fun i => (μs i) G) atTop
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
⊢ ∀ (G : Set Ω), IsOpen G → ↑μ G ≤ liminf (fun i => ↑(μs i) G) atTop
tactic: apply integral_le_liminf_integral_of_forall_isOpen_measure_le_liminf_measure (f := f) f_nn
state_before: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
h_opens : ∀ (G : Set Ω), IsOpen G → μ G ≤ liminf (fun i => (μs i) G) atTop
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
⊢ ∀ (G : Set Ω), IsOpen G → ↑μ G ≤ liminf (fun i => ↑(μs i) G) atTop
state_after: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
h_opens : ∀ (G : Set Ω), IsOpen G → μ G ≤ liminf (fun i => (μs i) G) atTop
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
G : Set Ω
G_open : IsOpen G
⊢ ↑μ G ≤ liminf (fun i => ↑(μs i) G) atTop
tactic: intro G G_open
state_before: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
h_opens : ∀ (G : Set Ω), IsOpen G → μ G ≤ liminf (fun i => (μs i) G) atTop
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
G : Set Ω
G_open : IsOpen G
⊢ ↑μ G ≤ liminf (fun i => ↑(μs i) G) atTop
state_after: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
G : Set Ω
G_open : IsOpen G
h_opens : μ G ≤ liminf (fun i => (μs i) G) atTop
⊢ ↑μ G ≤ liminf (fun i => ↑(μs i) G) atTop
tactic: specialize h_opens G G_open
state_before: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
G : Set Ω
G_open : IsOpen G
h_opens : μ G ≤ liminf (fun i => (μs i) G) atTop
aux : ↑(liminf (fun i => (μs i) G) atTop) = liminf (ENNReal.ofNNReal ∘ fun i => (μs i) G) atTop
⊢ ↑μ G ≤ liminf (fun i => ↑(μs i) G) atTop
state_after: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
G : Set Ω
G_open : IsOpen G
h_opens : μ G ≤ liminf (fun i => (μs i) G) atTop
aux : ↑(liminf (fun i => (μs i) G) atTop) = liminf (ENNReal.ofNNReal ∘ fun i => (μs i) G) atTop
obs : ↑(μ G) ≤ ↑(liminf (fun i => (μs i) G) atTop)
⊢ ↑μ G ≤ liminf (fun i => ↑(μs i) G) atTop
tactic: have obs := ENNReal.coe_mono h_opens
state_before: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
G : Set Ω
G_open : IsOpen G
h_opens : μ G ≤ liminf (fun i => (μs i) G) atTop
aux : ↑(liminf (fun i => (μs i) G) atTop) = liminf (ENNReal.ofNNReal ∘ fun i => (μs i) G) atTop
obs : ↑(μ G) ≤ ↑(liminf (fun i => (μs i) G) atTop)
⊢ ↑μ G ≤ liminf (fun i => ↑(μs i) G) atTop
state_after: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
G : Set Ω
G_open : IsOpen G
h_opens : μ G ≤ liminf (fun i => (μs i) G) atTop
aux : ↑(liminf (fun i => (μs i) G) atTop) = liminf (ENNReal.ofNNReal ∘ fun i => (μs i) G) atTop
obs : ↑μ G ≤ liminf (ENNReal.ofNNReal ∘ fun i => (μs i) G) atTop
⊢ ↑μ G ≤ liminf (fun i => ↑(μs i) G) atTop
tactic: simp only [ne_eq, ProbabilityMeasure.ennreal_coeFn_eq_coeFn_toMeasure, aux] at obs
state_before: case h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
G : Set Ω
G_open : IsOpen G
h_opens : μ G ≤ liminf (fun i => (μs i) G) atTop
aux : ↑(liminf (fun i => (μs i) G) atTop) = liminf (ENNReal.ofNNReal ∘ fun i => (μs i) G) atTop
obs : ↑μ G ≤ liminf (ENNReal.ofNNReal ∘ fun i => (μs i) G) atTop
⊢ ↑μ G ≤ liminf (fun i => ↑(μs i) G) atTop
state_after: case h.e'_4.h.e'_4.h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
G : Set Ω
G_open : IsOpen G
h_opens : μ G ≤ liminf (fun i => (μs i) G) atTop
aux : ↑(liminf (fun i => (μs i) G) atTop) = liminf (ENNReal.ofNNReal ∘ fun i => (μs i) G) atTop
obs : ↑μ G ≤ liminf (ENNReal.ofNNReal ∘ fun i => (μs i) G) atTop
x✝ : ℕ
⊢ ↑(μs x✝) G = (ENNReal.ofNNReal ∘ fun i => (μs i) G) x✝
tactic: convert obs
state_before: case h.e'_4.h.e'_4.h
Ω : Type u_1
inst✝² : MeasurableSpace Ω
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : ProbabilityMeasure Ω
μs : ℕ → ProbabilityMeasure Ω
f : Ω →ᵇ ℝ
f_nn : 0 ≤ f
G : Set Ω
G_open : IsOpen G
h_opens : μ G ≤ liminf (fun i => (μs i) G) atTop
aux : ↑(liminf (fun i => (μs i) G) atTop) = liminf (ENNReal.ofNNReal ∘ fun i => (μs i) G) atTop
obs : ↑μ G ≤ liminf (ENNReal.ofNNReal ∘ fun i => (μs i) G) atTop
x✝ : ℕ
⊢ ↑(μs x✝) G = (ENNReal.ofNNReal ∘ fun i => (μs i) G) x✝
state_after: no goals
tactic: simp only [Function.comp_apply, ne_eq, ProbabilityMeasure.ennreal_coeFn_eq_coeFn_toMeasure]