Regular Space

lean4-prooftopologyvisualization
C closed,pC:  UC,Vp open,  UV=\forall\,C\text{ closed},\, p\notin C:\;\exists\,U\supseteq C,\,V\ni p\text{ open},\;U\cap V=\emptyset

Statement

A topological space XX is regular if for every closed set CC and every point pCp \notin C there exist disjoint open sets UCU \supseteq C and VpV \ni p:

C closed,  pC    UC,  Vp open,  UV=.\forall\, C \text{ closed},\; p \notin C \;\Longrightarrow\; \exists\, U \supseteq C,\; V \ni p \text{ open},\; U \cap V = \emptyset.

A T3T_3 space is regular + T1T_1 (points are closed). Every metric space is regular: the distance function d(p,C)>0d(p, C) > 0 provides explicit separating balls.

Visualization

Point pp outside closed set CC — disjoint open neighborhoods:

Topological space X:

   C (closed)           p (point not in C)
   ╭──────────╮                ●
  /            \
 │  ████████   │             / ← V open, contains p
 │  ████████   │           ╭───╮
 │  ████████   │           │ p │
  \            /           ╰───╯
   ╰──────────╯
    ↑
    U open, contains C
    U ∩ V = ∅

In ℝ (metric space):  C = [2, 5],  p = 0
  d(p, C) = 2
  U = (1, 6)   ← contains C
  V = (−1, 1)  ← contains p
  U ∩ V = ∅ ✓

Separation hierarchy:

T₀ (Kolmogorov)
  ↓
T₁ (Fréchet) — points are closed
  ↓
T₂ (Hausdorff) — distinct points have disjoint neighborhoods
  ↓
T₃ = Regular + T₁ — point vs. closed set separated
  ↓
T₄ = Normal + T₁ — closed set vs. closed set separated
  ↓
T₆ = Perfectly normal + T₁

Proof Sketch

Uniform spaces (hence metric spaces) are regular:

  1. Let CXC \subseteq X be closed and pCp \notin C, so pXCp \in X \setminus C (open).
  2. By the uniform space axioms there exists an entourage EE with E[p]C=E[p] \cap C = \emptyset (since CcC^c is open in the uniform topology).
  3. Set V=int(E[p])V = \text{int}(E[p]) and U=XE1[p]cU = X \setminus \overline{E^{-1}[p]^c}. Symmetry of EE ensures UCU \supseteq C and UV=U \cap V = \emptyset.
  4. In metric spaces: choose r=d(p,C)/2r = d(p, C)/2; then V=Br(p)V = B_r(p) and U={x:d(x,C)<r}U = \{x : d(x, C) < r\} work directly.

Mathlib formalizes this as: UniformSpace.to_regularSpace, promoted automatically whenever a UniformSpace instance exists.

Connections

  • Normal SpaceNormal SpaceF,G closed,FG=:  UF,VG open,  UV=\forall\, F,G\text{ closed}, F\cap G=\emptyset:\;\exists\,U\supseteq F,\,V\supseteq G\text{ open},\;U\cap V=\emptysetA topological space is normal if disjoint closed sets can be separated by disjoint open neighborhoodsRead more → — every normal space (T4T_4) is regular (T3T_3); regularity is the weaker point-vs-set separation while normality handles set-vs-set.
  • Heine–Borel TheoremHeine–Borel TheoremKRn  compact    K  closed and boundedK \subseteq \mathbb{R}^n \;\text{compact} \iff K \;\text{closed and bounded}In ℝⁿ, a subset is compact if and only if it is closed and boundedRead more → — compact Hausdorff spaces are regular (in fact normal); Heine–Borel's compact sets in Rn\mathbb{R}^n inherit regularity from the Euclidean metric.
  • Urysohn's LemmaUrysohn's Lemmaf:X[0,1],fs=0,  ft=1\exists\, f : X \to [0,1],\quad f|_s = 0,\; f|_t = 1In a normal space, disjoint closed sets can be separated by a continuous functionRead more → — Urysohn's lemma applies to normal spaces; regular + second-countable implies normal (by Urysohn's metrization argument), so the two separation axioms interact closely.
  • Metrizable SpacesMetrizable Spacesd:X×XR0,  τ=τd\exists\, d:\, X\times X\to\mathbb{R}_{\ge 0},\;\tau = \tau_dA topological space is metrizable if its topology is induced by some metricRead more → — metrizable spaces are exactly those that are regular, Hausdorff, and second-countable (Urysohn metrization theorem); regularity is one of the three equivalent conditions.

Lean4 Proof

import Mathlib.Topology.UniformSpace.Separation

/-- Every uniform space is regular.
    Mathlib instance: `UniformSpace.to_regularSpace`. -/
theorem uniformSpace_regular
    {X : Type*} [UniformSpace X] : RegularSpace X :=
  inferInstance

/-- In particular, every (pseudo-)metric space is regular. -/
example : RegularSpace  := inferInstance