Subspace Topology

lean4-prooftopologyvisualization
τS={US:UτX}\tau_S = \{U \cap S : U \in \tau_X\}

Statement

Let XX be a topological space with topology τX\tau_X, and let SXS \subseteq X. The subspace topology (or induced topology) on SS is:

τS={US:UτX}.\tau_S = \{U \cap S : U \in \tau_X\}.

This is the coarsest topology on SS making the inclusion ι:SX\iota : S \hookrightarrow X, ι(s)=s\iota(s) = s, continuous.

Continuity criterion: A function f:ZSf : Z \to S is continuous (with SS carrying the subspace topology) if and only if ιf:ZX\iota \circ f : Z \to X is continuous.

Equivalently, ι=Subtype.val\iota = \text{Subtype.val} is continuous, and any ff is continuous into SS iff it is continuous when viewed as a map into XX.

Visualization

Q\mathbb{Q} as a subspace of R\mathbb{R}:

ℝ:  ────(────────────────────)────▶
         a                   b
         open interval (a,b) in ℝ

ℚ:  ─────●──●──●──●──●──●───────▶
          ↑                    (rational points)
    (a,b) ∩ ℚ is open in ℚ
    (a basic open set of the subspace topology)
Open set in R\mathbb{R}Corresponding open in Q\mathbb{Q}Contains irrationals?
(1,1)(-1, 1)(1,1)Q(-1,1) \cap \mathbb{Q}No
(0,2)(0, \sqrt{2})(0,2)Q(0, \sqrt{2}) \cap \mathbb{Q}No
R\mathbb{R}Q\mathbb{Q}No

Note that (0,2)Q(0, \sqrt{2}) \cap \mathbb{Q} is open in Q\mathbb{Q} even though 2Q\sqrt{2} \notin \mathbb{Q}: the set {qQ:0<q<2}={qQ:q2<2,q>0}\{q \in \mathbb{Q} : 0 < q < \sqrt{2}\} = \{q \in \mathbb{Q} : q^2 < 2, q > 0\} is also equal to (0,2)Q(0, \sqrt{2}) \cap \mathbb{Q} and is open in the subspace topology.

Continuity example: The function f:QQf : \mathbb{Q} \to \mathbb{Q}, f(q)=q2f(q) = q^2 is continuous in the subspace topology because g(q)=q2g(q) = q^2 is continuous as a map RR\mathbb{R} \to \mathbb{R} (a polynomial), and f=gQf = g|_{\mathbb{Q}}.

Proof Sketch

  1. τS\tau_S is a topology: Empty set: =S\emptyset = \emptyset \cap S. Whole space: S=XSS = X \cap S. Unions: (UαS)=(Uα)S\bigcup (U_\alpha \cap S) = (\bigcup U_\alpha) \cap S. Finite intersections: (US)(VS)=(UV)S(U \cap S) \cap (V \cap S) = (U \cap V) \cap S.

  2. Inclusion is continuous: For UτXU \in \tau_X, ι1(U)=USτS\iota^{-1}(U) = U \cap S \in \tau_S by definition.

  3. Coarsest such topology: Any topology τ\tau' on SS making ι\iota continuous must contain ι1(U)=US\iota^{-1}(U) = U \cap S for all UτXU \in \tau_X. So τSτ\tau_S \subseteq \tau'.

  4. Universal property: Given f:ZSf : Z \to S, note ιf:ZX\iota \circ f : Z \to X. If ιf\iota \circ f is continuous and VτSV \in \tau_S with V=USV = U \cap S, then f1(V)=(ιf)1(U)f^{-1}(V) = (\iota \circ f)^{-1}(U), which is open. Conversely, if ff is continuous, so is ιf\iota \circ f (composition of continuous maps).

Connections

  • 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 → — the subspace topology on a closed bounded set KRnK \subseteq \mathbb{R}^n makes KK compact; Heine–Borel characterises exactly which subspaces are compact.
  • Bolzano–Weierstrass TheoremBolzano–Weierstrass Theorembounded (xn)Rn    convergent subsequence\text{bounded } (x_n) \subseteq \mathbb{R}^n \implies \exists\, \text{convergent subsequence}Every bounded sequence in ℝⁿ has a convergent subsequenceRead more → — every bounded sequence in Rn\mathbb{R}^n takes values in a compact subspace (a closed ball), and the Bolzano–Weierstrass theorem is the statement that sequentially compact subspaces are compact.
  • 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 → — subspaces of normal spaces need not be normal in general, but Urysohn's lemma constructs continuous functions separating closed sets, a tool used to show closed subspaces of normal spaces are normal.

Lean4 Proof

import Mathlib.Topology.Constructions

/-- The inclusion of a subtype is continuous in the subspace topology. -/
theorem subtype_inclusion_continuous
    {X : Type*} [TopologicalSpace X] (p : X  Prop) :
    Continuous (Subtype.val (p := p)) :=
  continuous_subtype_val