File: Mathlib/Topology/MetricSpace/Thickening.lean

full_name: Metric.thickening
code: /-- The (open) `δ`-thickening `Metric.thickening δ E` of a subset `E` in a pseudo emetric space
consists of those points that are at distance less than `δ` from some point of `E`. -/
def thickening (δ : ℝ) (E : Set α) : Set α 
goal: Set α

full_name: Metric.mem_thickening_iff_infEdist_lt
code: theorem mem_thickening_iff_infEdist_lt : x ∈ thickening δ s ↔ infEdist x s < ENNReal.ofReal δ 
goal: x ∈ Metric.thickening δ s ↔ EMetric.infEdist x s < ENNReal.ofReal δ

full_name: Metric.eventually_not_mem_thickening_of_infEdist_pos
code: /-- An exterior point of a subset `E` (i.e., a point outside the closure of `E`) is not in the
(open) `δ`-thickening of `E` for small enough positive `δ`. -/
lemma eventually_not_mem_thickening_of_infEdist_pos {E : Set α} {x : α} (h : x ∉ closure E) :
    ∀ᶠ δ in 𝓝 (0 : ℝ), x ∉ Metric.thickening δ E 
goal: ∀ᶠ (δ : ℝ) in 𝓝 0, x ∉ Metric.thickening δ E

full_name: Metric.thickening_eq_preimage_infEdist
code: /-- The (open) thickening equals the preimage of an open interval under `EMetric.infEdist`. -/
theorem thickening_eq_preimage_infEdist (δ : ℝ) (E : Set α) :
    thickening δ E = (infEdist · E) ⁻¹' Iio (ENNReal.ofReal δ) 
goal: Metric.thickening δ E = (fun x => EMetric.infEdist x E) ⁻¹' Set.Iio (ENNReal.ofReal δ)

full_name: Metric.isOpen_thickening
code: /-- The (open) thickening is an open set. -/
theorem isOpen_thickening {δ : ℝ} {E : Set α} : IsOpen (thickening δ E) 
goal: IsOpen (Metric.thickening δ E)

full_name: Metric.thickening_empty
code: /-- The (open) thickening of the empty set is empty. -/
@[simp]
theorem thickening_empty (δ : ℝ) : thickening δ (∅ : Set α) = ∅ 
goal: Metric.thickening δ ∅ = ∅

full_name: Metric.thickening_of_nonpos
code: theorem thickening_of_nonpos (hδ : δ ≤ 0) (s : Set α) : thickening δ s = ∅ 
goal: Metric.thickening δ s = ∅

full_name: Metric.thickening_mono
code: /-- The (open) thickening `Metric.thickening δ E` of a fixed subset `E` is an increasing function of
the thickening radius `δ`. -/
theorem thickening_mono {δ₁ δ₂ : ℝ} (hle : δ₁ ≤ δ₂) (E : Set α) :
    thickening δ₁ E ⊆ thickening δ₂ E 
goal: Metric.thickening δ₁ E ⊆ Metric.thickening δ₂ E

full_name: Metric.thickening_subset_of_subset
code: /-- The (open) thickening `Metric.thickening δ E` with a fixed thickening radius `δ` is
an increasing function of the subset `E`. -/
theorem thickening_subset_of_subset (δ : ℝ) {E₁ E₂ : Set α} (h : E₁ ⊆ E₂) :
    thickening δ E₁ ⊆ thickening δ E₂ 
goal: Metric.thickening δ E₁ ⊆ Metric.thickening δ E₂

full_name: Metric.mem_thickening_iff_exists_edist_lt
code: theorem mem_thickening_iff_exists_edist_lt {δ : ℝ} (E : Set α) (x : α) :
    x ∈ thickening δ E ↔ ∃ z ∈ E, edist x z < ENNReal.ofReal δ 
goal: x ∈ Metric.thickening δ E ↔ ∃ z ∈ E, edist x z < ENNReal.ofReal δ

full_name: Metric.frontier_thickening_subset
code: /-- The frontier of the (open) thickening of a set is contained in an `EMetric.infEdist` level
set. -/
theorem frontier_thickening_subset (E : Set α) {δ : ℝ} :
    frontier (thickening δ E) ⊆ { x : α | infEdist x E = ENNReal.ofReal δ } 
goal: frontier (Metric.thickening δ E) ⊆ {x | EMetric.infEdist x E = ENNReal.ofReal δ}

full_name: Metric.frontier_thickening_disjoint
code: theorem frontier_thickening_disjoint (A : Set α) :
    Pairwise (Disjoint on fun r : ℝ => frontier (thickening r A)) 
goal: Pairwise (Disjoint on fun r => frontier (Metric.thickening r A))

full_name: Metric.subset_compl_thickening_compl_thickening_self
code: /-- Any set is contained in the complement of the δ-thickening of the complement of its
δ-thickening. -/
lemma subset_compl_thickening_compl_thickening_self (δ : ℝ) (E : Set α) :
    E ⊆ (thickening δ (thickening δ E)ᶜ)ᶜ 
goal: E ⊆ (Metric.thickening δ (Metric.thickening δ E)ᶜ)ᶜ

full_name: Metric.thickening_compl_thickening_self_subset_compl
code: /-- The δ-thickening of the complement of the δ-thickening of a set is contained in the complement
of the set. -/
lemma thickening_compl_thickening_self_subset_compl (δ : ℝ) (E : Set α) :
    thickening δ (thickening δ E)ᶜ ⊆ Eᶜ 
goal: Metric.thickening δ (Metric.thickening δ E)ᶜ ⊆ Eᶜ

full_name: Metric.mem_thickening_iff_infDist_lt
code: theorem mem_thickening_iff_infDist_lt {E : Set X} {x : X} (h : E.Nonempty) :
    x ∈ thickening δ E ↔ infDist x E < δ 
goal: x ∈ Metric.thickening δ E ↔ Metric.infDist x E < δ

full_name: Metric.mem_thickening_iff
code: /-- A point in a metric space belongs to the (open) `δ`-thickening of a subset `E` if and only if
it is at distance less than `δ` from some point of `E`. -/
theorem mem_thickening_iff {E : Set X} {x : X} : x ∈ thickening δ E ↔ ∃ z ∈ E, dist x z < δ 
goal: x ∈ Metric.thickening δ E ↔ ∃ z ∈ E, dist x z < δ

full_name: Metric.thickening_singleton
code: @[simp]
theorem thickening_singleton (δ : ℝ) (x : X) : thickening δ ({x} : Set X) = ball x δ 
goal: Metric.thickening δ {x} = Metric.ball x δ

full_name: Metric.ball_subset_thickening
code: theorem ball_subset_thickening {x : X} {E : Set X} (hx : x ∈ E) (δ : ℝ) :
    ball x δ ⊆ thickening δ E 
goal: Metric.ball x δ ⊆ Metric.thickening δ E

full_name: Metric.thickening_eq_biUnion_ball
code: /-- The (open) `δ`-thickening `Metric.thickening δ E` of a subset `E` in a metric space equals the
union of balls of radius `δ` centered at points of `E`. -/
theorem thickening_eq_biUnion_ball {δ : ℝ} {E : Set X} : thickening δ E = ⋃ x ∈ E, ball x δ 
goal: Metric.thickening δ E = ⋃ x ∈ E, Metric.ball x δ

full_name: Bornology.IsBounded.thickening
code: protected theorem _root_.Bornology.IsBounded.thickening {δ : ℝ} {E : Set X} (h : IsBounded E) :
    IsBounded (thickening δ E) 
goal: Bornology.IsBounded (Metric.thickening δ E)

full_name: Metric.cthickening
code: /-- The closed `δ`-thickening `Metric.cthickening δ E` of a subset `E` in a pseudo emetric space
consists of those points that are at infimum distance at most `δ` from `E`. -/
def cthickening (δ : ℝ) (E : Set α) : Set α 
goal: Set α

full_name: Metric.mem_cthickening_iff
code: @[simp]
theorem mem_cthickening_iff : x ∈ cthickening δ s ↔ infEdist x s ≤ ENNReal.ofReal δ 
goal: x ∈ Metric.cthickening δ s ↔ EMetric.infEdist x s ≤ ENNReal.ofReal δ

full_name: Metric.eventually_not_mem_cthickening_of_infEdist_pos
code: /-- An exterior point of a subset `E` (i.e., a point outside the closure of `E`) is not in the
closed `δ`-thickening of `E` for small enough positive `δ`. -/
lemma eventually_not_mem_cthickening_of_infEdist_pos {E : Set α} {x : α} (h : x ∉ closure E) :
    ∀ᶠ δ in 𝓝 (0 : ℝ), x ∉ Metric.cthickening δ E 
goal: ∀ᶠ (δ : ℝ) in 𝓝 0, x ∉ Metric.cthickening δ E

full_name: Metric.mem_cthickening_of_edist_le
code: theorem mem_cthickening_of_edist_le (x y : α) (δ : ℝ) (E : Set α) (h : y ∈ E)
    (h' : edist x y ≤ ENNReal.ofReal δ) : x ∈ cthickening δ E 
goal: x ∈ Metric.cthickening δ E

full_name: Metric.mem_cthickening_of_dist_le
code: theorem mem_cthickening_of_dist_le {α : Type*} [PseudoMetricSpace α] (x y : α) (δ : ℝ) (E : Set α)
    (h : y ∈ E) (h' : dist x y ≤ δ) : x ∈ cthickening δ E 
goal: x ∈ Metric.cthickening δ E

full_name: Metric.cthickening_eq_preimage_infEdist
code: theorem cthickening_eq_preimage_infEdist (δ : ℝ) (E : Set α) :
    cthickening δ E = (fun x => infEdist x E) ⁻¹' Iic (ENNReal.ofReal δ) 
goal: Metric.cthickening δ E = (fun x => EMetric.infEdist x E) ⁻¹' Set.Iic (ENNReal.ofReal δ)

full_name: Metric.isClosed_cthickening
code: /-- The closed thickening is a closed set. -/
theorem isClosed_cthickening {δ : ℝ} {E : Set α} : IsClosed (cthickening δ E) 
goal: IsClosed (Metric.cthickening δ E)

full_name: Metric.cthickening_empty
code: /-- The closed thickening of the empty set is empty. -/
@[simp]
theorem cthickening_empty (δ : ℝ) : cthickening δ (∅ : Set α) = ∅ 
goal: Metric.cthickening δ ∅ = ∅

full_name: Metric.cthickening_of_nonpos
code: theorem cthickening_of_nonpos {δ : ℝ} (hδ : δ ≤ 0) (E : Set α) : cthickening δ E = closure E 
goal: Metric.cthickening δ E = closure E

full_name: Metric.cthickening_zero
code: /-- The closed thickening with radius zero is the closure of the set. -/
@[simp]
theorem cthickening_zero (E : Set α) : cthickening 0 E = closure E 
goal: Metric.cthickening 0 E = closure E

full_name: Metric.cthickening_max_zero
code: theorem cthickening_max_zero (δ : ℝ) (E : Set α) : cthickening (max 0 δ) E = cthickening δ E 
goal: Metric.cthickening (max 0 δ) E = Metric.cthickening δ E

full_name: Metric.cthickening_mono
code: /-- The closed thickening `Metric.cthickening δ E` of a fixed subset `E` is an increasing function
of the thickening radius `δ`. -/
theorem cthickening_mono {δ₁ δ₂ : ℝ} (hle : δ₁ ≤ δ₂) (E : Set α) :
    cthickening δ₁ E ⊆ cthickening δ₂ E 
goal: Metric.cthickening δ₁ E ⊆ Metric.cthickening δ₂ E

full_name: Metric.cthickening_singleton
code: @[simp]
theorem cthickening_singleton {α : Type*} [PseudoMetricSpace α] (x : α) {δ : ℝ} (hδ : 0 ≤ δ) :
    cthickening δ ({x} : Set α) = closedBall x δ 
goal: Metric.cthickening δ {x} = Metric.closedBall x δ

full_name: Metric.closedBall_subset_cthickening_singleton
code: theorem closedBall_subset_cthickening_singleton {α : Type*} [PseudoMetricSpace α] (x : α) (δ : ℝ) :
    closedBall x δ ⊆ cthickening δ ({x} : Set α) 
goal: Metric.closedBall x δ ⊆ Metric.cthickening δ {x}

full_name: Metric.cthickening_subset_of_subset
code: /-- The closed thickening `Metric.cthickening δ E` with a fixed thickening radius `δ` is
an increasing function of the subset `E`. -/
theorem cthickening_subset_of_subset (δ : ℝ) {E₁ E₂ : Set α} (h : E₁ ⊆ E₂) :
    cthickening δ E₁ ⊆ cthickening δ E₂ 
goal: Metric.cthickening δ E₁ ⊆ Metric.cthickening δ E₂

full_name: Metric.cthickening_subset_thickening
code: theorem cthickening_subset_thickening {δ₁ : ℝ≥0} {δ₂ : ℝ} (hlt : (δ₁ : ℝ) < δ₂) (E : Set α) :
    cthickening δ₁ E ⊆ thickening δ₂ E 
goal: Metric.cthickening (↑δ₁) E ⊆ Metric.thickening δ₂ E

full_name: Metric.cthickening_subset_thickening'
code: /-- The closed thickening `Metric.cthickening δ₁ E` is contained in the open thickening
`Metric.thickening δ₂ E` if the radius of the latter is positive and larger. -/
theorem cthickening_subset_thickening' {δ₁ δ₂ : ℝ} (δ₂_pos : 0 < δ₂) (hlt : δ₁ < δ₂) (E : Set α) :
    cthickening δ₁ E ⊆ thickening δ₂ E 
goal: Metric.cthickening δ₁ E ⊆ Metric.thickening δ₂ E

full_name: Metric.thickening_subset_cthickening
code: /-- The open thickening `Metric.thickening δ E` is contained in the closed thickening
`Metric.cthickening δ E` with the same radius. -/
theorem thickening_subset_cthickening (δ : ℝ) (E : Set α) : thickening δ E ⊆ cthickening δ E 
goal: Metric.thickening δ E ⊆ Metric.cthickening δ E

full_name: Metric.thickening_subset_cthickening_of_le
code: theorem thickening_subset_cthickening_of_le {δ₁ δ₂ : ℝ} (hle : δ₁ ≤ δ₂) (E : Set α) :
    thickening δ₁ E ⊆ cthickening δ₂ E 
goal: Metric.thickening δ₁ E ⊆ Metric.cthickening δ₂ E

full_name: Bornology.IsBounded.cthickening
code: theorem _root_.Bornology.IsBounded.cthickening {α : Type*} [PseudoMetricSpace α] {δ : ℝ} {E : Set α}
    (h : IsBounded E) : IsBounded (cthickening δ E) 
goal: Bornology.IsBounded (Metric.cthickening δ E)

full_name: IsCompact.cthickening
code: protected theorem _root_.IsCompact.cthickening
    {α : Type*} [PseudoMetricSpace α] [ProperSpace α] {s : Set α}
    (hs : IsCompact s) {r : ℝ} : IsCompact (cthickening r s) 
goal: IsCompact (Metric.cthickening r s)

full_name: Metric.thickening_subset_interior_cthickening
code: theorem thickening_subset_interior_cthickening (δ : ℝ) (E : Set α) :
    thickening δ E ⊆ interior (cthickening δ E) 
goal: Metric.thickening δ E ⊆ interior (Metric.cthickening δ E)

full_name: Metric.closure_thickening_subset_cthickening
code: theorem closure_thickening_subset_cthickening (δ : ℝ) (E : Set α) :
    closure (thickening δ E) ⊆ cthickening δ E 
goal: closure (Metric.thickening δ E) ⊆ Metric.cthickening δ E

full_name: Metric.closure_subset_cthickening
code: /-- The closed thickening of a set contains the closure of the set. -/
theorem closure_subset_cthickening (δ : ℝ) (E : Set α) : closure E ⊆ cthickening δ E 
goal: closure E ⊆ Metric.cthickening δ E

full_name: Metric.closure_subset_thickening
code: /-- The (open) thickening of a set contains the closure of the set. -/
theorem closure_subset_thickening {δ : ℝ} (δ_pos : 0 < δ) (E : Set α) :
    closure E ⊆ thickening δ E 
goal: closure E ⊆ Metric.thickening δ E

full_name: Metric.self_subset_thickening
code: /-- A set is contained in its own (open) thickening. -/
theorem self_subset_thickening {δ : ℝ} (δ_pos : 0 < δ) (E : Set α) : E ⊆ thickening δ E 
goal: E ⊆ Metric.thickening δ E

full_name: Metric.self_subset_cthickening
code: /-- A set is contained in its own closed thickening. -/
theorem self_subset_cthickening {δ : ℝ} (E : Set α) : E ⊆ cthickening δ E 
goal: E ⊆ Metric.cthickening δ E

full_name: Metric.thickening_mem_nhdsSet
code: theorem thickening_mem_nhdsSet (E : Set α) {δ : ℝ} (hδ : 0 < δ) : thickening δ E ∈ 𝓝ˢ E 
goal: Metric.thickening δ E ∈ 𝓝ˢ E

full_name: Metric.cthickening_mem_nhdsSet
code: theorem cthickening_mem_nhdsSet (E : Set α) {δ : ℝ} (hδ : 0 < δ) : cthickening δ E ∈ 𝓝ˢ E 
goal: Metric.cthickening δ E ∈ 𝓝ˢ E

full_name: Metric.thickening_union
code: @[simp]
theorem thickening_union (δ : ℝ) (s t : Set α) :
    thickening δ (s ∪ t) = thickening δ s ∪ thickening δ t 
goal: Metric.thickening δ (s ∪ t) = Metric.thickening δ s ∪ Metric.thickening δ t

full_name: Metric.cthickening_union
code: @[simp]
theorem cthickening_union (δ : ℝ) (s t : Set α) :
    cthickening δ (s ∪ t) = cthickening δ s ∪ cthickening δ t 
goal: Metric.cthickening δ (s ∪ t) = Metric.cthickening δ s ∪ Metric.cthickening δ t

full_name: Metric.thickening_iUnion
code: @[simp]
theorem thickening_iUnion (δ : ℝ) (f : ι → Set α) :
    thickening δ (⋃ i, f i) = ⋃ i, thickening δ (f i) 
goal: Metric.thickening δ (⋃ i, f i) = ⋃ i, Metric.thickening δ (f i)

full_name: Metric.thickening_biUnion
code: lemma thickening_biUnion {ι : Type*} (δ : ℝ) (f : ι → Set α) (I : Set ι) :
    thickening δ (⋃ i ∈ I, f i) = ⋃ i ∈ I, thickening δ (f i) 
goal: Metric.thickening δ (⋃ i ∈ I, f i) = ⋃ i ∈ I, Metric.thickening δ (f i)

full_name: Metric.ediam_cthickening_le
code: theorem ediam_cthickening_le (ε : ℝ≥0) :
    EMetric.diam (cthickening ε s) ≤ EMetric.diam s + 2 * ε 
goal: EMetric.diam (Metric.cthickening (↑ε) s) ≤ EMetric.diam s + 2 * ↑ε

full_name: Metric.ediam_thickening_le
code: theorem ediam_thickening_le (ε : ℝ≥0) : EMetric.diam (thickening ε s) ≤ EMetric.diam s + 2 * ε 
goal: EMetric.diam (Metric.thickening (↑ε) s) ≤ EMetric.diam s + 2 * ↑ε

full_name: Metric.diam_cthickening_le
code: theorem diam_cthickening_le {α : Type*} [PseudoMetricSpace α] (s : Set α) (hε : 0 ≤ ε) :
    diam (cthickening ε s) ≤ diam s + 2 * ε 
goal: Metric.diam (Metric.cthickening ε s) ≤ Metric.diam s + 2 * ε

full_name: Metric.diam_thickening_le
code: theorem diam_thickening_le {α : Type*} [PseudoMetricSpace α] (s : Set α) (hε : 0 ≤ ε) :
    diam (thickening ε s) ≤ diam s + 2 * ε 
goal: Metric.diam (Metric.thickening ε s) ≤ Metric.diam s + 2 * ε

full_name: Metric.thickening_closure
code: @[simp]
theorem thickening_closure : thickening δ (closure s) = thickening δ s 
goal: Metric.thickening δ (closure s) = Metric.thickening δ s

full_name: Metric.cthickening_closure
code: @[simp]
theorem cthickening_closure : cthickening δ (closure s) = cthickening δ s 
goal: Metric.cthickening δ (closure s) = Metric.cthickening δ s

full_name: Disjoint.exists_thickenings
code: theorem _root_.Disjoint.exists_thickenings (hst : Disjoint s t) (hs : IsCompact s)
    (ht : IsClosed t) :
    ∃ δ, 0 < δ ∧ Disjoint (thickening δ s) (thickening δ t) 
goal: ∃ δ, 0 < δ ∧ Disjoint (Metric.thickening δ s) (Metric.thickening δ t)

full_name: Disjoint.exists_cthickenings
code: theorem _root_.Disjoint.exists_cthickenings (hst : Disjoint s t) (hs : IsCompact s)
    (ht : IsClosed t) :
    ∃ δ, 0 < δ ∧ Disjoint (cthickening δ s) (cthickening δ t) 
goal: ∃ δ, 0 < δ ∧ Disjoint (Metric.cthickening δ s) (Metric.cthickening δ t)

full_name: IsCompact.exists_cthickening_subset_open
code: /-- If `s` is compact, `t` is open and `s ⊆ t`, some `cthickening` of `s` is contained in `t`. -/
theorem _root_.IsCompact.exists_cthickening_subset_open (hs : IsCompact s) (ht : IsOpen t)
    (hst : s ⊆ t) :
    ∃ δ, 0 < δ ∧ cthickening δ s ⊆ t 
goal: ∃ δ, 0 < δ ∧ Metric.cthickening δ s ⊆ t

full_name: IsCompact.exists_isCompact_cthickening
code: theorem _root_.IsCompact.exists_isCompact_cthickening [LocallyCompactSpace α] (hs : IsCompact s) :
    ∃ δ, 0 < δ ∧ IsCompact (cthickening δ s) 
goal: ∃ δ, 0 < δ ∧ IsCompact (Metric.cthickening δ s)

full_name: IsCompact.exists_thickening_subset_open
code: theorem _root_.IsCompact.exists_thickening_subset_open (hs : IsCompact s) (ht : IsOpen t)
    (hst : s ⊆ t) : ∃ δ, 0 < δ ∧ thickening δ s ⊆ t 
goal: ∃ δ, 0 < δ ∧ Metric.thickening δ s ⊆ t

full_name: Metric.hasBasis_nhdsSet_thickening
code: theorem hasBasis_nhdsSet_thickening {K : Set α} (hK : IsCompact K) :
    (𝓝ˢ K).HasBasis (fun δ : ℝ => 0 < δ) fun δ => thickening δ K 
goal: (𝓝ˢ K).HasBasis (fun δ => 0 < δ) fun δ => Metric.thickening δ K

full_name: Metric.hasBasis_nhdsSet_cthickening
code: theorem hasBasis_nhdsSet_cthickening {K : Set α} (hK : IsCompact K) :
    (𝓝ˢ K).HasBasis (fun δ : ℝ => 0 < δ) fun δ => cthickening δ K 
goal: (𝓝ˢ K).HasBasis (fun δ => 0 < δ) fun δ => Metric.cthickening δ K

full_name: Metric.cthickening_eq_iInter_cthickening'
code: theorem cthickening_eq_iInter_cthickening' {δ : ℝ} (s : Set ℝ) (hsδ : s ⊆ Ioi δ)
    (hs : ∀ ε, δ < ε → (s ∩ Ioc δ ε).Nonempty) (E : Set α) :
    cthickening δ E = ⋂ ε ∈ s, cthickening ε E 
goal: Metric.cthickening δ E = ⋂ ε ∈ s, Metric.cthickening ε E

full_name: Metric.cthickening_eq_iInter_cthickening
code: theorem cthickening_eq_iInter_cthickening {δ : ℝ} (E : Set α) :
    cthickening δ E = ⋂ (ε : ℝ) (_ : δ < ε), cthickening ε E 
goal: Metric.cthickening δ E = ⋂ ε, ⋂ (_ : δ < ε), Metric.cthickening ε E

full_name: Metric.cthickening_eq_iInter_thickening'
code: theorem cthickening_eq_iInter_thickening' {δ : ℝ} (δ_nn : 0 ≤ δ) (s : Set ℝ) (hsδ : s ⊆ Ioi δ)
    (hs : ∀ ε, δ < ε → (s ∩ Ioc δ ε).Nonempty) (E : Set α) :
    cthickening δ E = ⋂ ε ∈ s, thickening ε E 
goal: Metric.cthickening δ E = ⋂ ε ∈ s, Metric.thickening ε E

full_name: Metric.cthickening_eq_iInter_thickening
code: theorem cthickening_eq_iInter_thickening {δ : ℝ} (δ_nn : 0 ≤ δ) (E : Set α) :
    cthickening δ E = ⋂ (ε : ℝ) (_ : δ < ε), thickening ε E 
goal: Metric.cthickening δ E = ⋂ ε, ⋂ (_ : δ < ε), Metric.thickening ε E

full_name: Metric.cthickening_eq_iInter_thickening''
code: theorem cthickening_eq_iInter_thickening'' (δ : ℝ) (E : Set α) :
    cthickening δ E = ⋂ (ε : ℝ) (_ : max 0 δ < ε), thickening ε E 
goal: Metric.cthickening δ E = ⋂ ε, ⋂ (_ : max 0 δ < ε), Metric.thickening ε E

full_name: Metric.closure_eq_iInter_cthickening'
code: /-- The closure of a set equals the intersection of its closed thickenings of positive radii
accumulating at zero. -/
theorem closure_eq_iInter_cthickening' (E : Set α) (s : Set ℝ)
    (hs : ∀ ε, 0 < ε → (s ∩ Ioc 0 ε).Nonempty) : closure E = ⋂ δ ∈ s, cthickening δ E 
goal: closure E = ⋂ δ ∈ s, Metric.cthickening δ E

full_name: Metric.closure_eq_iInter_cthickening
code: /-- The closure of a set equals the intersection of its closed thickenings of positive radii. -/
theorem closure_eq_iInter_cthickening (E : Set α) :
    closure E = ⋂ (δ : ℝ) (_ : 0 < δ), cthickening δ E 
goal: closure E = ⋂ δ, ⋂ (_ : 0 < δ), Metric.cthickening δ E

full_name: Metric.closure_eq_iInter_thickening'
code: /-- The closure of a set equals the intersection of its open thickenings of positive radii
accumulating at zero. -/
theorem closure_eq_iInter_thickening' (E : Set α) (s : Set ℝ) (hs₀ : s ⊆ Ioi 0)
    (hs : ∀ ε, 0 < ε → (s ∩ Ioc 0 ε).Nonempty) : closure E = ⋂ δ ∈ s, thickening δ E 
goal: closure E = ⋂ δ ∈ s, Metric.thickening δ E

full_name: Metric.closure_eq_iInter_thickening
code: /-- The closure of a set equals the intersection of its (open) thickenings of positive radii. -/
theorem closure_eq_iInter_thickening (E : Set α) :
    closure E = ⋂ (δ : ℝ) (_ : 0 < δ), thickening δ E 
goal: closure E = ⋂ δ, ⋂ (_ : 0 < δ), Metric.thickening δ E

full_name: Metric.frontier_cthickening_subset
code: /-- The frontier of the closed thickening of a set is contained in an `EMetric.infEdist` level
set. -/
theorem frontier_cthickening_subset (E : Set α) {δ : ℝ} :
    frontier (cthickening δ E) ⊆ { x : α | infEdist x E = ENNReal.ofReal δ } 
goal: frontier (Metric.cthickening δ E) ⊆ {x | EMetric.infEdist x E = ENNReal.ofReal δ}

full_name: Metric.closedBall_subset_cthickening
code: /-- The closed ball of radius `δ` centered at a point of `E` is included in the closed
thickening of `E`. -/
theorem closedBall_subset_cthickening {α : Type*} [PseudoMetricSpace α] {x : α} {E : Set α}
    (hx : x ∈ E) (δ : ℝ) : closedBall x δ ⊆ cthickening δ E 
goal: Metric.closedBall x δ ⊆ Metric.cthickening δ E

full_name: Metric.cthickening_subset_iUnion_closedBall_of_lt
code: theorem cthickening_subset_iUnion_closedBall_of_lt {α : Type*} [PseudoMetricSpace α] (E : Set α)
    {δ δ' : ℝ} (hδ₀ : 0 < δ') (hδδ' : δ < δ') : cthickening δ E ⊆ ⋃ x ∈ E, closedBall x δ' 
goal: Metric.cthickening δ E ⊆ ⋃ x ∈ E, Metric.closedBall x δ'

full_name: IsCompact.cthickening_eq_biUnion_closedBall
code: /-- The closed thickening of a compact set `E` is the union of the balls `Metric.closedBall x δ`
over `x ∈ E`.

See also `Metric.cthickening_eq_biUnion_closedBall`. -/
theorem _root_.IsCompact.cthickening_eq_biUnion_closedBall {α : Type*} [PseudoMetricSpace α]
    {δ : ℝ} {E : Set α} (hE : IsCompact E) (hδ : 0 ≤ δ) :
    cthickening δ E = ⋃ x ∈ E, closedBall x δ 
goal: Metric.cthickening δ E = ⋃ x ∈ E, Metric.closedBall x δ

full_name: Metric.cthickening_eq_biUnion_closedBall
code: theorem cthickening_eq_biUnion_closedBall {α : Type*} [PseudoMetricSpace α] [ProperSpace α]
    (E : Set α) (hδ : 0 ≤ δ) : cthickening δ E = ⋃ x ∈ closure E, closedBall x δ 
goal: Metric.cthickening δ E = ⋃ x ∈ closure E, Metric.closedBall x δ

full_name: IsClosed.cthickening_eq_biUnion_closedBall
code: nonrec theorem _root_.IsClosed.cthickening_eq_biUnion_closedBall {α : Type*} [PseudoMetricSpace α]
    [ProperSpace α] {E : Set α} (hE : IsClosed E) (hδ : 0 ≤ δ) :
    cthickening δ E = ⋃ x ∈ E, closedBall x δ 
goal: Metric.cthickening δ E = ⋃ x ∈ E, Metric.closedBall x δ

full_name: Metric.infEdist_le_infEdist_cthickening_add
code: /-- For the equality, see `infEdist_cthickening`. -/
theorem infEdist_le_infEdist_cthickening_add :
    infEdist x s ≤ infEdist x (cthickening δ s) + ENNReal.ofReal δ 
goal: EMetric.infEdist x s ≤ EMetric.infEdist x (Metric.cthickening δ s) + ENNReal.ofReal δ

full_name: Metric.infEdist_le_infEdist_thickening_add
code: /-- For the equality, see `infEdist_thickening`. -/
theorem infEdist_le_infEdist_thickening_add :
    infEdist x s ≤ infEdist x (thickening δ s) + ENNReal.ofReal δ 
goal: EMetric.infEdist x s ≤ EMetric.infEdist x (Metric.thickening δ s) + ENNReal.ofReal δ

full_name: Metric.thickening_thickening_subset
code: /-- For the equality, see `thickening_thickening`. -/
@[simp]
theorem thickening_thickening_subset (ε δ : ℝ) (s : Set α) :
    thickening ε (thickening δ s) ⊆ thickening (ε + δ) s 
goal: Metric.thickening ε (Metric.thickening δ s) ⊆ Metric.thickening (ε + δ) s

full_name: Metric.thickening_cthickening_subset
code: /-- For the equality, see `thickening_cthickening`. -/
@[simp]
theorem thickening_cthickening_subset (ε : ℝ) (hδ : 0 ≤ δ) (s : Set α) :
    thickening ε (cthickening δ s) ⊆ thickening (ε + δ) s 
goal: Metric.thickening ε (Metric.cthickening δ s) ⊆ Metric.thickening (ε + δ) s

full_name: Metric.cthickening_thickening_subset
code: /-- For the equality, see `cthickening_thickening`. -/
@[simp]
theorem cthickening_thickening_subset (hε : 0 ≤ ε) (δ : ℝ) (s : Set α) :
    cthickening ε (thickening δ s) ⊆ cthickening (ε + δ) s 
goal: Metric.cthickening ε (Metric.thickening δ s) ⊆ Metric.cthickening (ε + δ) s

full_name: Metric.cthickening_cthickening_subset
code: /-- For the equality, see `cthickening_cthickening`. -/
@[simp]
theorem cthickening_cthickening_subset (hε : 0 ≤ ε) (hδ : 0 ≤ δ) (s : Set α) :
    cthickening ε (cthickening δ s) ⊆ cthickening (ε + δ) s 
goal: Metric.cthickening ε (Metric.cthickening δ s) ⊆ Metric.cthickening (ε + δ) s

full_name: Metric.frontier_cthickening_disjoint
code: theorem frontier_cthickening_disjoint (A : Set α) :
    Pairwise (Disjoint on fun r : ℝ≥0 => frontier (cthickening r A)) 
goal: Pairwise (Disjoint on fun r => frontier (Metric.cthickening (↑r) A))