|
8 | 8 | public import Mathlib.Topology.MetricSpace.Pseudo.Constructions |
9 | 9 | public import Mathlib.Topology.Order.DenselyOrdered |
10 | 10 | public import Mathlib.Topology.UniformSpace.Compact |
| 11 | +public import Mathlib.Topology.UniformSpace.HeineCantor |
11 | 12 |
|
12 | 13 | /-! |
13 | 14 | # Extra lemmas about pseudo-metric spaces |
@@ -125,3 +126,17 @@ theorem lebesgue_number_lemma_of_metric {s : Set α} {ι : Sort*} {c : ι → Se |
125 | 126 | theorem lebesgue_number_lemma_of_metric_sUnion {s : Set α} {c : Set (Set α)} (hs : IsCompact s) |
126 | 127 | (hc₁ : ∀ t ∈ c, IsOpen t) (hc₂ : s ⊆ ⋃₀ c) : ∃ δ > 0, ∀ x ∈ s, ∃ t ∈ c, ball x δ ⊆ t := by |
127 | 128 | rw [sUnion_eq_iUnion] at hc₂; simpa using lebesgue_number_lemma_of_metric hs (by simpa) hc₂ |
| 129 | + |
| 130 | +/-- **Heine–Cantor** in metric ε-δ form: a function `f` continuous on a compact set `S` is |
| 131 | +uniformly continuous there, so for every `ε > 0` there is a `δ > 0` such that points of `S` |
| 132 | +within `δ` are mapped within `ε`. -/ |
| 133 | +theorem ContinuousOn.exists_forall_dist_lt_of_isCompact {β : Type*} [PseudoMetricSpace β] |
| 134 | + {S : Set α} (hS : IsCompact S) {f : α → β} (hf : ContinuousOn f S) {ε : ℝ} (hε : 0 < ε) : |
| 135 | + ∃ δ > 0, ∀ x ∈ S, ∀ y ∈ S, dist x y < δ → dist (f x) (f y) < ε := |
| 136 | + Metric.uniformContinuousOn_iff.mp (hS.uniformContinuousOn_of_continuous hf) ε hε |
| 137 | + |
| 138 | +/-- Version of `ContinuousOn.exists_forall_dist_lt_of_isCompact` with non-strict inequalities. -/ |
| 139 | +theorem ContinuousOn.exists_forall_dist_le_of_isCompact {β : Type*} [PseudoMetricSpace β] |
| 140 | + {S : Set α} (hS : IsCompact S) {f : α → β} (hf : ContinuousOn f S) {ε : ℝ} (hε : 0 < ε) : |
| 141 | + ∃ δ > 0, ∀ x ∈ S, ∀ y ∈ S, dist x y ≤ δ → dist (f x) (f y) ≤ ε := |
| 142 | + Metric.uniformContinuousOn_iff_le.mp (hS.uniformContinuousOn_of_continuous hf) ε hε |
0 commit comments