Theorem: MeasureTheory.FiniteMeasure.limsup_measure_closed_le_of_tendsto
File: Mathlib/MeasureTheory/Measure/Portmanteau.lean

tactic: by_cases L = ⊥
state_before: Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F

tactic: apply ENNReal.le_of_forall_pos_le_add
state_before: case neg
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F

tactic: intro ε ε_pos _
state_before: case neg.h
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
⊢ ∀ (ε : ℝ≥0), 0 < ε → ↑↑↑μ F < ⊤ → limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: let δs := fun n : ℕ => (1 : ℝ) / (n + 1)
state_before: case neg.h
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: have δs_pos : ∀ n, 0 < δs n := fun n => Nat.one_div_pos_of_nat
state_before: case neg.h
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: have δs_lim : Tendsto δs atTop (𝓝 0) := tendsto_one_div_add_atTop_nhds_0_nat
state_before: case neg.h
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: have key₁ :=
  tendsto_lintegral_thickenedIndicator_of_isClosed (μ : Measure Ω) F_closed δs_pos δs_lim
state_before: case neg.h
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: have room₁ : (μ : Measure Ω) F < (μ : Measure Ω) F + ε / 2 := by
  apply
    ENNReal.lt_add_right (measure_lt_top (μ : Measure Ω) F).ne
      (ENNReal.div_pos_iff.mpr ⟨(ENNReal.coe_pos.mpr ε_pos).ne.symm, ENNReal.two_ne_top⟩).ne.symm
state_before: case neg.h
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: rcases eventually_atTop.mp (eventually_lt_of_tendsto_lt room₁ key₁) with ⟨M, hM⟩
state_before: case neg.h
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
room₁ : ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: have key₂ :=
  FiniteMeasure.tendsto_iff_forall_lintegral_tendsto.mp μs_lim (thickenedIndicator (δs_pos M) F)
state_before: case neg.h.intro
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
room₁ : ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2
M : ℕ
hM : ∀ (b : ℕ), b ≥ M → (∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs b) F) ω) ∂↑μ) < ↑↑↑μ F + ↑ε / 2
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: have room₂ :
  (lintegral (μ : Measure Ω) fun a => thickenedIndicator (δs_pos M) F a) <
    (lintegral (μ : Measure Ω) fun a => thickenedIndicator (δs_pos M) F a) + ε / 2 := by
  apply
    ENNReal.lt_add_right (lintegral_lt_top_of_boundedContinuous_to_nnreal (μ : Measure Ω) _).ne
      (ENNReal.div_pos_iff.mpr ⟨(ENNReal.coe_pos.mpr ε_pos).ne.symm, ENNReal.two_ne_top⟩).ne.symm
state_before: case neg.h.intro
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
room₁ : ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2
M : ℕ
hM : ∀ (b : ℕ), b ≥ M → (∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs b) F) ω) ∂↑μ) < ↑↑↑μ F + ↑ε / 2
key₂ :
  Tendsto (fun i => ∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs i)) L
    (𝓝 (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑μ))
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: have ev_near := Eventually.mono (eventually_lt_of_tendsto_lt room₂ key₂) fun n => le_of_lt
state_before: case neg.h.intro
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
room₁ : ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2
M : ℕ
hM : ∀ (b : ℕ), b ≥ M → (∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs b) F) ω) ∂↑μ) < ↑↑↑μ F + ↑ε / 2
key₂ :
  Tendsto (fun i => ∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs i)) L
    (𝓝 (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑μ))
room₂ :
  (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) <
    (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: have ev_near' := Eventually.mono ev_near fun n => le_trans
  (measure_le_lintegral_thickenedIndicator (μs n : Measure Ω) F_closed.measurableSet (δs_pos M))
state_before: case neg.h.intro
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
room₁ : ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2
M : ℕ
hM : ∀ (b : ℕ), b ≥ M → (∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs b) F) ω) ∂↑μ) < ↑↑↑μ F + ↑ε / 2
key₂ :
  Tendsto (fun i => ∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs i)) L
    (𝓝 (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑μ))
room₂ :
  (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) <
    (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
ev_near :
  ∀ᶠ (x : ι) in L,
    (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs x)) ≤
      (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: apply (Filter.limsup_le_limsup ev_near').trans
state_before: case neg.h.intro
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
room₁ : ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2
M : ℕ
hM : ∀ (b : ℕ), b ≥ M → (∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs b) F) ω) ∂↑μ) < ↑↑↑μ F + ↑ε / 2
key₂ :
  Tendsto (fun i => ∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs i)) L
    (𝓝 (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑μ))
room₂ :
  (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) <
    (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
ev_near :
  ∀ᶠ (x : ι) in L,
    (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs x)) ≤
      (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
ev_near' : ∀ᶠ (x : ι) in L, ↑↑↑(μs x) F ≤ (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F + ↑ε

tactic: have : NeBot L := ⟨h⟩
state_before: case neg.h.intro
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
room₁ : ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2
M : ℕ
hM : ∀ (b : ℕ), b ≥ M → (∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs b) F) ω) ∂↑μ) < ↑↑↑μ F + ↑ε / 2
key₂ :
  Tendsto (fun i => ∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs i)) L
    (𝓝 (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑μ))
room₂ :
  (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) <
    (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
ev_near :
  ∀ᶠ (x : ι) in L,
    (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs x)) ≤
      (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
ev_near' : ∀ᶠ (x : ι) in L, ↑↑↑(μs x) F ≤ (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
⊢ limsup (fun x => (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2) L ≤ ↑↑↑μ F + ↑ε

tactic: rw [limsup_const]
state_before: case neg.h.intro
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
room₁ : ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2
M : ℕ
hM : ∀ (b : ℕ), b ≥ M → (∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs b) F) ω) ∂↑μ) < ↑↑↑μ F + ↑ε / 2
key₂ :
  Tendsto (fun i => ∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs i)) L
    (𝓝 (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑μ))
room₂ :
  (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) <
    (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
ev_near :
  ∀ᶠ (x : ι) in L,
    (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs x)) ≤
      (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
ev_near' : ∀ᶠ (x : ι) in L, ↑↑↑(μs x) F ≤ (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
this : NeBot L
⊢ limsup (fun x => (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2) L ≤ ↑↑↑μ F + ↑ε

tactic: apply le_trans (add_le_add (hM M rfl.le).le (le_refl (ε / 2 : ℝ≥0∞)))
state_before: case neg.h.intro
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
room₁ : ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2
M : ℕ
hM : ∀ (b : ℕ), b ≥ M → (∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs b) F) ω) ∂↑μ) < ↑↑↑μ F + ↑ε / 2
key₂ :
  Tendsto (fun i => ∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs i)) L
    (𝓝 (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑μ))
room₂ :
  (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) <
    (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
ev_near :
  ∀ᶠ (x : ι) in L,
    (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs x)) ≤
      (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
ev_near' : ∀ᶠ (x : ι) in L, ↑↑↑(μs x) F ≤ (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
this : NeBot L
⊢ (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2 ≤ ↑↑↑μ F + ↑ε

tactic: simp only [add_assoc, ENNReal.add_halves, le_refl]
state_before: case neg.h.intro
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
room₁ : ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2
M : ℕ
hM : ∀ (b : ℕ), b ≥ M → (∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs b) F) ω) ∂↑μ) < ↑↑↑μ F + ↑ε / 2
key₂ :
  Tendsto (fun i => ∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs i)) L
    (𝓝 (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑μ))
room₂ :
  (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) <
    (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
ev_near :
  ∀ᶠ (x : ι) in L,
    (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs x)) ≤
      (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
ev_near' : ∀ᶠ (x : ι) in L, ↑↑↑(μs x) F ≤ (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2
this : NeBot L
⊢ ↑↑↑μ F + ↑ε / 2 + ↑ε / 2 ≤ ↑↑↑μ F + ↑ε

tactic: simp only [h, limsup, Filter.map_bot, limsSup_bot, ENNReal.bot_eq_zero, zero_le]
state_before: case pos
Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : L = ⊥
⊢ limsup (fun i => ↑↑↑(μs i) F) L ≤ ↑↑↑μ F

tactic: apply
  ENNReal.lt_add_right (measure_lt_top (μ : Measure Ω) F).ne
    (ENNReal.div_pos_iff.mpr ⟨(ENNReal.coe_pos.mpr ε_pos).ne.symm, ENNReal.two_ne_top⟩).ne.symm
state_before: Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
⊢ ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2

tactic: apply
  ENNReal.lt_add_right (lintegral_lt_top_of_boundedContinuous_to_nnreal (μ : Measure Ω) _).ne
    (ENNReal.div_pos_iff.mpr ⟨(ENNReal.coe_pos.mpr ε_pos).ne.symm, ENNReal.two_ne_top⟩).ne.symm
state_before: Ω✝ : Type ?u.26248
inst✝³ : MeasurableSpace Ω✝
Ω : Type u_1
ι : Type u_2
L : Filter ι
inst✝² : MeasurableSpace Ω
inst✝¹ : PseudoEMetricSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
μs : ι → FiniteMeasure Ω
μs_lim : Tendsto μs L (𝓝 μ)
F : Set Ω
F_closed : IsClosed F
h : ¬L = ⊥
ε : ℝ≥0
ε_pos : 0 < ε
a✝ : ↑↑↑μ F < ⊤
δs : ℕ → ℝ := fun n => 1 / (↑n + 1)
δs_pos : ∀ (n : ℕ), 0 < δs n
δs_lim : Tendsto δs atTop (𝓝 0)
key₁ : Tendsto (fun n => ∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs n) F) ω) ∂↑μ) atTop (𝓝 (↑↑↑μ F))
room₁ : ↑↑↑μ F < ↑↑↑μ F + ↑ε / 2
M : ℕ
hM : ∀ (b : ℕ), b ≥ M → (∫⁻ (ω : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs b) F) ω) ∂↑μ) < ↑↑↑μ F + ↑ε / 2
key₂ :
  Tendsto (fun i => ∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑(μs i)) L
    (𝓝 (∫⁻ (x : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) x) ∂↑μ))
⊢ (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) <
    (∫⁻ (a : Ω), ↑(↑(thickenedIndicator (_ : 0 < δs M) F) a) ∂↑μ) + ↑ε / 2