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

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) ≠ ⊤
⊢ 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 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)))
⊢ 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: convert B.sup A
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: exact (nhds_left_sup_nhds_right' 0).symm
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: rw [closure_eq_iInter_cthickening]
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) ≠ ⊤
⊢ Tendsto (fun r => μ (cthickening r s)) (𝓝[>] 0) (𝓝 (μ (⋂ δ, ⋂ (_ : 0 < δ), cthickening δ s)))

tactic: 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) ≠ ⊤
⊢ Tendsto (fun r => μ (cthickening r s)) (𝓝[>] 0) (𝓝 (μ (⋂ δ, ⋂ (_ : 0 < δ), cthickening δ s)))
state_after: no goals

tactic: apply Tendsto.congr' _ tendsto_const_nhds
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)))
⊢ (fun x => μ (closure s)) =ᶠ[𝓝[≤] 0] fun r => μ (cthickening r s)

tactic: filter_upwards [self_mem_nhdsWithin (α := ℝ)] with _ 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)))
⊢ (fun x => μ (closure s)) =ᶠ[𝓝[≤] 0] fun r => μ (cthickening r s)
state_after: case h
α : 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)))
a✝ : ℝ
hr : a✝ ∈ Iic 0
⊢ μ (closure s) = μ (cthickening a✝ s)

tactic: rw [cthickening_of_nonpos hr]
state_before: case h
α : 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)))
a✝ : ℝ
hr : a✝ ∈ Iic 0
⊢ μ (closure s) = μ (cthickening a✝ s)
state_after: no goals