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

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
⊢ 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: apply tendsto_integral_of_forall_integral_le_liminf_integral
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: 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 : Ω →ᵇ ℝ), 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: 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
⊢ ∫ (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: 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 Ω), 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: specialize h_opens 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: 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
⊢ ↑μ 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: 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 (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: convert 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: simp only [Function.comp_apply, ne_eq, ProbabilityMeasure.ennreal_coeFn_eq_coeFn_toMeasure]
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: apply ENNReal.continuous_coe.continuousAt
state_before: case refine_1
Ω : 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
⊢ ContinuousAt ENNReal.ofNNReal (liminf (fun x => (μs x) G) atTop)
state_after: no goals

tactic: use 1
state_before: case refine_2
Ω : 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
⊢ IsBoundedUnder (fun x x_1 => x ≤ x_1) atTop fun x => (μs x) G
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
⊢ ∀ᶠ (x : ℝ≥0) in map (fun x => (μs x) G) atTop, (fun x x_1 => x ≤ x_1) x 1

tactic: simp only [eventually_map, ProbabilityMeasure.apply_le_one, eventually_atTop, ge_iff_le,
  implies_true, forall_const, exists_const]
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
⊢ ∀ᶠ (x : ℝ≥0) in map (fun x => (μs x) G) atTop, (fun x x_1 => x ≤ x_1) x 1
state_after: no goals

tactic: use 0
state_before: case refine_3
Ω : 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
⊢ IsBoundedUnder (fun x x_1 => x ≥ x_1) atTop fun x => (μs x) G
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
⊢ ∀ᶠ (x : ℝ≥0) in map (fun x => (μs x) G) atTop, (fun x x_1 => x ≥ x_1) x 0

tactic: simp only [zero_le, eventually_map, eventually_atTop, ge_iff_le, implies_true, forall_const,
  exists_const]
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
⊢ ∀ᶠ (x : ℝ≥0) in map (fun x => (μs x) G) atTop, (fun x x_1 => x ≥ x_1) x 0
state_after: no goals