Theorem: tendsto_measure_cthickening
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Metric.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s✝ t u : Set α
inst✝³ : PseudoEMetricSpace α
inst✝² : MeasurableSpace α
inst✝¹ : OpensMeasurableSpace α
inst✝ : MeasurableSpace β
x : α
ε : ℝ≥0∞
μ : Measure α
s : Set α
hs : ∃ R > 0, μ (cthickening R s) ≠ ⊤
⊢ Tendsto (fun r => μ (cthickening r s)) (𝓝 0) (𝓝 (μ (closure s)))
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s✝ t u : Set α
inst✝³ : PseudoEMetricSpace α
inst✝² : MeasurableSpace α
inst✝¹ : OpensMeasurableSpace α
inst✝ : MeasurableSpace β
x : α
ε : ℝ≥0∞
μ : Measure α
s : Set α
hs : ∃ R > 0, μ (cthickening R s) ≠ ⊤
A : Tendsto (fun r => μ (cthickening r s)) (𝓝[>] 0) (𝓝 (μ (closure s)))
⊢ Tendsto (fun r => μ (cthickening r s)) (𝓝 0) (𝓝 (μ (closure s)))
tactic: have A : Tendsto (fun r => μ (cthickening r s)) (𝓝[Ioi 0] 0) (𝓝 (μ (closure s))) := by
    rw [closure_eq_iInter_cthickening]
    exact
      tendsto_measure_biInter_gt (fun r _ => isClosed_cthickening.measurableSet)
        (fun i j _ ij => cthickening_mono ij _) hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s✝ t u : Set α
inst✝³ : PseudoEMetricSpace α
inst✝² : MeasurableSpace α
inst✝¹ : OpensMeasurableSpace α
inst✝ : MeasurableSpace β
x : α
ε : ℝ≥0∞
μ : Measure α
s : Set α
hs : ∃ R > 0, μ (cthickening R s) ≠ ⊤
A : Tendsto (fun r => μ (cthickening r s)) (𝓝[>] 0) (𝓝 (μ (closure s)))
⊢ Tendsto (fun r => μ (cthickening r s)) (𝓝 0) (𝓝 (μ (closure s)))
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s✝ t u : Set α
inst✝³ : PseudoEMetricSpace α
inst✝² : MeasurableSpace α
inst✝¹ : OpensMeasurableSpace α
inst✝ : MeasurableSpace β
x : α
ε : ℝ≥0∞
μ : Measure α
s : Set α
hs : ∃ R > 0, μ (cthickening R s) ≠ ⊤
A : Tendsto (fun r => μ (cthickening r s)) (𝓝[>] 0) (𝓝 (μ (closure s)))
B : Tendsto (fun r => μ (cthickening r s)) (𝓝[≤] 0) (𝓝 (μ (closure s)))
⊢ Tendsto (fun r => μ (cthickening r s)) (𝓝 0) (𝓝 (μ (closure s)))
tactic: have B : Tendsto (fun r => μ (cthickening r s)) (𝓝[Iic 0] 0) (𝓝 (μ (closure s))) := by
    apply Tendsto.congr' _ tendsto_const_nhds
    filter_upwards [self_mem_nhdsWithin (α := ℝ)] with _ hr
    rw [cthickening_of_nonpos hr]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s✝ t u : Set α
inst✝³ : PseudoEMetricSpace α
inst✝² : MeasurableSpace α
inst✝¹ : OpensMeasurableSpace α
inst✝ : MeasurableSpace β
x : α
ε : ℝ≥0∞
μ : Measure α
s : Set α
hs : ∃ R > 0, μ (cthickening R s) ≠ ⊤
A : Tendsto (fun r => μ (cthickening r s)) (𝓝[>] 0) (𝓝 (μ (closure s)))
B : Tendsto (fun r => μ (cthickening r s)) (𝓝[≤] 0) (𝓝 (μ (closure s)))
⊢ Tendsto (fun r => μ (cthickening r s)) (𝓝 0) (𝓝 (μ (closure s)))
state_after: case h.e'_4
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s✝ t u : Set α
inst✝³ : PseudoEMetricSpace α
inst✝² : MeasurableSpace α
inst✝¹ : OpensMeasurableSpace α
inst✝ : MeasurableSpace β
x : α
ε : ℝ≥0∞
μ : Measure α
s : Set α
hs : ∃ R > 0, μ (cthickening R s) ≠ ⊤
A : Tendsto (fun r => μ (cthickening r s)) (𝓝[>] 0) (𝓝 (μ (closure s)))
B : Tendsto (fun r => μ (cthickening r s)) (𝓝[≤] 0) (𝓝 (μ (closure s)))
⊢ 𝓝 0 = 𝓝[≤] 0 ⊔ 𝓝[>] 0
tactic: convert B.sup A
state_before: case h.e'_4
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort y
s✝ t u : Set α
inst✝³ : PseudoEMetricSpace α
inst✝² : MeasurableSpace α
inst✝¹ : OpensMeasurableSpace α
inst✝ : MeasurableSpace β
x : α
ε : ℝ≥0∞
μ : Measure α
s : Set α
hs : ∃ R > 0, μ (cthickening R s) ≠ ⊤
A : Tendsto (fun r => μ (cthickening r s)) (𝓝[>] 0) (𝓝 (μ (closure s)))
B : Tendsto (fun r => μ (cthickening r s)) (𝓝[≤] 0) (𝓝 (μ (closure s)))
⊢ 𝓝 0 = 𝓝[≤] 0 ⊔ 𝓝[>] 0
state_after: no goals
tactic: exact (nhds_left_sup_nhds_right' 0).symm