Skip to content

Commit 6e70ec9

Browse files
Gdelta preimage, of_precise_separating
1 parent ddfb5e6 commit 6e70ec9

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

Mathlib/Topology/Separation/GDelta.lean

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public import Mathlib.Topology.Compactness.SigmaCompact
1010
public import Mathlib.Topology.Connected.TotallyDisconnected
1111
public import Mathlib.Topology.Inseparable
1212
public import Mathlib.Topology.Separation.Regular
13+
public import Mathlib.Topology.UrysohnsLemma
1314
public import Mathlib.Topology.GDelta.Basic
1415

1516
/-!
@@ -39,6 +40,14 @@ section Separation
3940
theorem IsGδ.compl_singleton (x : X) [T1Space X] : IsGδ ({x}ᶜ : Set X) :=
4041
isOpen_compl_singleton.isGδ
4142

43+
lemma IsGδ.preimage {X Y} [TopologicalSpace X] [TopologicalSpace Y]
44+
(f : ContinuousMap X Y) {s : Set Y} (hs : IsGδ s) : IsGδ (f ⁻¹' s) := by
45+
rcases hs with ⟨T, To, cardT, hsT⟩
46+
use Set.preimage f '' T
47+
split_ands
48+
· rintro _ ⟨t, ht, rfl⟩; exact (To t ht).preimage f.continuous
49+
· exact Countable.image cardT (Set.preimage ⇑f)
50+
· simp [hsT]
4251

4352
theorem Set.Countable.isGδ_compl {s : Set X} [T1Space X] (hs : s.Countable) : IsGδ sᶜ := by
4453
rw [← biUnion_of_singleton s, compl_iUnion₂]
@@ -101,6 +110,17 @@ theorem Disjoint.hasSeparatingCover_closed_gdelta_right {s t : Set X} [NormalSpa
101110
rw [← closure_eq_iff_isClosed.mpr t_cl] at clt_sub_g'
102111
exact subset_closure.trans <| (clt_sub_g' n).trans <| (g'_open n).subset_interior_closure
103112

113+
lemma of_precise_separating
114+
(sep : {s t : Set X} → IsClosed s → IsClosed t → Disjoint s t →
115+
{δ : C(X, ℝ) // δ ⁻¹' {0} = s ∧ δ ⁻¹' {1} = t}) : PerfectlyNormalSpace X where
116+
__ := NormalSpace.of_separating fun {s t} sC tC disj ↦ (sep sC tC disj).map id
117+
(fun _ ↦ And.imp (fun h₀ x hx ↦ h₀.symm.subset hx) fun h₁ x hx ↦ h₁.symm.subset hx)
118+
closed_gdelta ⦃s⦄ sC := by
119+
have Gδ₀ : IsGδ ({0} : Set ℝ) := IsGδ.singleton 0
120+
let ⟨δ, hδ₀, hδ₁⟩ := sep sC isClosed_empty (disjoint_empty s)
121+
rw [← hδ₀]
122+
apply Gδ₀.preimage
123+
104124
instance (priority := 100) PerfectlyNormalSpace.toCompletelyNormalSpace
105125
[PerfectlyNormalSpace X] : CompletelyNormalSpace X where
106126
completely_normal _ _ hd₁ hd₂ := separatedNhds_iff_disjoint.mp <|

0 commit comments

Comments
 (0)