@@ -10,7 +10,7 @@ public import Mathlib.Topology.Compactness.SigmaCompact
1010public import Mathlib.Topology.Connected.TotallyDisconnected
1111public import Mathlib.Topology.Inseparable
1212public import Mathlib.Topology.Separation.Regular
13- public import Mathlib.Topology.UrysohnsLemma
13+ public import Mathlib.Topology.MetricSpace.Pseudo.Lemmas
1414public import Mathlib.Topology.GDelta.Basic
1515
1616/-!
@@ -37,6 +37,24 @@ variable {X : Type*} [TopologicalSpace X]
3737
3838section Separation
3939
40+ /-- Urysohn's lemma: a topological space `X` is normal if for any two disjoint closed sets `s` and
41+ `t` there exists a continuous function `f : X → ℝ` such that
42+
43+ * `f` equals zero on `s`;
44+ * `f` equals one on `t`.
45+ -/
46+ lemma NormalSpace.of_separating {X} [TopologicalSpace X]
47+ (sep : {U V : Set X} → IsClosed U → IsClosed V → Disjoint U V →
48+ { f : C(X, ℝ) // EqOn f 0 U ∧ EqOn f 1 V }) : NormalSpace X where
49+ normal {s t} sC tC disj := by
50+ obtain ⟨f, hf₀, hf₁⟩ := sep sC tC disj
51+ use f ⁻¹' (Iio 0 .5 ), f ⁻¹' (Ioi 0 .5 ), isOpen_Iio.preimage f.continuous,
52+ isOpen_Ioi.preimage f.continuous
53+ split_ands
54+ · intro x hxs; simp [hf₀ hxs]; linarith
55+ · intro x hxt; simp [hf₁ hxt]; linarith
56+ · apply Disjoint.preimage; simp
57+
4058theorem IsGδ.compl_singleton (x : X) [T1Space X] : IsGδ ({x}ᶜ : Set X) :=
4159 isOpen_compl_singleton.isGδ
4260
@@ -110,6 +128,9 @@ theorem Disjoint.hasSeparatingCover_closed_gdelta_right {s t : Set X} [NormalSpa
110128 rw [← closure_eq_iff_isClosed.mpr t_cl] at clt_sub_g'
111129 exact subset_closure.trans <| (clt_sub_g' n).trans <| (g'_open n).subset_interior_closure
112130
131+ /-- Alternative definition of perfectly normal spaces: for any two disjoint closed sets `s` and `t`,
132+ if there exists a continuous function `δ : X → ℝ` such that `δ ⁻¹' {0} = s` and `δ ⁻¹' {1} = t`,
133+ then `X` is perfectly normal. -/
113134lemma of_precise_separating
114135 (sep : {s t : Set X} → IsClosed s → IsClosed t → Disjoint s t →
115136 {δ : C(X, ℝ) // δ ⁻¹' {0 } = s ∧ δ ⁻¹' {1 } = t}) : PerfectlyNormalSpace X where
0 commit comments