[proofplan]
We must show two things: that a subcomplex $A$ of a CW complex $X$ is closed, and that $A$ is a deformation retract of some open neighbourhood in $X$. For closedness, we use the weak topology on $X$ and show $A \cap X^n$ is closed in $X^n$ for each skeleton by induction. For the neighbourhood, we construct an explicit open set $N_\varepsilon(A)$ by thickening $A$ inside each cell of $X \setminus A$ using collar coordinates from the characteristic maps, and build a deformation retraction by pushing radially towards the boundary of each cell.
[/proofplan]
[step:Show that $A$ is closed in $X$]
A CW complex $X$ carries the weak topology: a subset $S \subset X$ is closed if and only if $S \cap \overline{e_\alpha}$ is closed in $\overline{e_\alpha}$ for every cell $e_\alpha$ of $X$, or equivalently, $S \cap X^n$ is closed in $X^n$ for every skeleton $X^n$.
We prove $A \cap X^n$ is closed in $X^n$ by induction on $n$. For $n = 0$: $X^0$ is discrete (it is a set of points with the discrete topology), so every subset is closed. In particular $A \cap X^0$ is closed in $X^0$.
For the inductive step, assume $A \cap X^{n-1}$ is closed in $X^{n-1}$. The $n$-skeleton $X^n$ is obtained from $X^{n-1}$ by attaching $n$-cells: for each $n$-cell $e_\alpha$ of $X$, there is a characteristic map $\Phi_\alpha: D^n \to X^n$ such that $\Phi_\alpha|_{\operatorname{int}(D^n)}$ is a homeomorphism onto $e_\alpha$ and $\Phi_\alpha|_{\partial D^n} = \varphi_\alpha$ is the attaching map into $X^{n-1}$.
A subset $S \subset X^n$ is closed in $X^n$ if and only if $S \cap X^{n-1}$ is closed in $X^{n-1}$ and $\Phi_\alpha^{-1}(S)$ is closed in $D^n$ for every $n$-cell $e_\alpha$. We check both conditions for $S = A \cap X^n$:
- $A \cap X^n \cap X^{n-1} = A \cap X^{n-1}$ is closed in $X^{n-1}$ by the inductive hypothesis.
- For each $n$-cell $e_\alpha$: since $A$ is a subcomplex, either $e_\alpha \subset A$ or $e_\alpha \cap A = \varnothing$. If $e_\alpha \subset A$, then $\Phi_\alpha^{-1}(A \cap X^n) \supset \Phi_\alpha^{-1}(\overline{e_\alpha}) = D^n$, so $\Phi_\alpha^{-1}(A \cap X^n) = D^n$, which is closed. If $e_\alpha \cap A = \varnothing$, then $\Phi_\alpha^{-1}(A \cap X^n) = \Phi_\alpha^{-1}(A \cap X^{n-1}) = \varphi_\alpha^{-1}(A \cap X^{n-1})$, which is a closed subset of $\partial D^n \cong S^{n-1}$ (since $A \cap X^{n-1}$ is closed in $X^{n-1}$ and $\varphi_\alpha: \partial D^n \to X^{n-1}$ is continuous), hence closed in $D^n$.
By induction, $A \cap X^n$ is closed in $X^n$ for all $n$, so $A$ is closed in $X$.
[guided]
The argument relies on the defining property of a subcomplex: $A$ is a union of cells of $X$ such that for every cell $e_\alpha \subset A$, the closure $\overline{e_\alpha}$ is also contained in $A$. This means that $A$ is a "cell-by-cell closed" set: each cell is either entirely in $A$ or entirely outside $A$, and the closure condition ensures the attaching maps of cells in $A$ land in $A$.
Why does the induction work? At each stage, we need to verify that $\Phi_\alpha^{-1}(A \cap X^n)$ is closed in $D^n$ for each $n$-cell. The two cases are:
- **Cell in $A$**: The preimage is all of $D^n$ (closed).
- **Cell not in $A$**: The open cell $e_\alpha$ contributes nothing to $A$, so the only contribution comes from the boundary $\partial D^n$, which maps via $\varphi_\alpha$ into $X^{n-1}$. The preimage is $\varphi_\alpha^{-1}(A \cap X^{n-1})$, closed by the inductive hypothesis and continuity.
[/guided]
[/step]
[step:Construct an open neighbourhood $N$ of $A$ that deformation-retracts onto $A$]
For each cell $e_\alpha$ of $X$ not in $A$, the characteristic map $\Phi_\alpha: D^n \to X^n$ is a homeomorphism from $\operatorname{int}(D^n)$ to $e_\alpha$. The preimage $\Phi_\alpha^{-1}(A) \subset \partial D^n$ (since $e_\alpha \cap A = \varnothing$). For each such cell, define the "collar" region
\begin{align*}
V_\alpha(\varepsilon) = \Phi_\alpha\bigl(\{x \in D^n : |x| > 1 - \varepsilon \text{ and } x / |x| \in \varphi_\alpha^{-1}(A)\}\bigr)
\end{align*}
for $\varepsilon > 0$. This is the image under $\Phi_\alpha$ of an $\varepsilon$-collar of the portion of $\partial D^n$ that maps into $A$.
Define
\begin{align*}
N = A \cup \bigcup_{\substack{\alpha \\ e_\alpha \not\subset A}} V_\alpha(\varepsilon_\alpha),
\end{align*}
where $\varepsilon_\alpha > 0$ is chosen inductively over skeleta: for each cell $e_\alpha$ of dimension $n$, choose $\varepsilon_\alpha$ small enough so that $V_\alpha(\varepsilon_\alpha)$ maps into the already-constructed neighbourhood of $A$ in $X^{n-1}$ under the attaching map. The weak topology ensures that this inductive choice produces an open set in $X$.
[guided]
The construction of the open neighbourhood is the technical heart of the proof. The idea is to "thicken" $A$ slightly inside each cell that borders $A$.
Consider an $n$-cell $e_\alpha$ not in $A$ whose boundary partially touches $A$. In the characteristic map coordinates, the cell is the disk $D^n$ and $A$ corresponds to a closed subset of $\partial D^n$. We take a thin annular collar near the relevant part of the boundary and declare it part of the neighbourhood.
The $\varepsilon$ must be chosen carefully: if we thicken too much in a high-dimensional cell, the resulting set might not be open because the thickening could fail to be compatible with lower-dimensional cells. The inductive construction ensures compatibility across skeleta.
Why is $N$ open? By the weak topology, $N$ is open if and only if $\Phi_\alpha^{-1}(N)$ is open in $D^n$ for every cell $e_\alpha$. For cells in $A$, $\Phi_\alpha^{-1}(N) = D^n$ (open). For cells not in $A$, $\Phi_\alpha^{-1}(N)$ is the union of $\varphi_\alpha^{-1}(N \cap X^{n-1})$ (open in $\partial D^n$ by the inductive hypothesis) and the collar $\{x : |x| > 1 - \varepsilon_\alpha, x/|x| \in \varphi_\alpha^{-1}(A)\}$ (open in $D^n$ by construction). With $\varepsilon_\alpha$ chosen small enough, these are compatible and the union is open.
[/guided]
[/step]
[step:Define the deformation retraction $N \to A$]
On each cell $e_\alpha$ not in $A$, the retraction acts in characteristic map coordinates by pushing radially towards the boundary:
\begin{align*}
r_\alpha: V_\alpha(\varepsilon_\alpha) &\to \Phi_\alpha(\varphi_\alpha^{-1}(A)) \subset A \\
\Phi_\alpha(x) &\mapsto \Phi_\alpha(x / |x|) = \varphi_\alpha(x / |x|).
\end{align*}
The deformation retract homotopy $H: N \times [0,1] \to N$ is defined cell-by-cell: on $V_\alpha(\varepsilon_\alpha)$,
\begin{align*}
H(\Phi_\alpha(x), t) = \Phi_\alpha\bigl((1-t) x + t \cdot x / |x|\bigr)
\end{align*}
for $t \in [0,1]$, and $H(a, t) = a$ for all $a \in A$, $t \in [0,1]$.
This satisfies $H(\cdot, 0) = \operatorname{id}_N$, $H(\cdot, 1) = r$ (the retraction), and $H(a, t) = a$ for all $a \in A$. The homotopy is continuous by the weak topology: on each cell it is a linear interpolation in the disk coordinates (hence continuous), and the maps are compatible across cells by the inductive choice of $\varepsilon_\alpha$.
Therefore $A$ is a deformation retract of $N$, and $(X, A)$ is a good pair.
[guided]
The deformation retraction works by "sliding" each point in the collar $V_\alpha(\varepsilon_\alpha)$ radially towards the boundary of the disk. In $D^n$ coordinates, a point $x$ with $|x| > 1 - \varepsilon_\alpha$ moves along the ray from the origin through $x$ towards the boundary point $x/|x|$. The linear interpolation $(1-t)x + t(x/|x|)$ traces this path, and the endpoint $x/|x| \in \partial D^n$ maps via $\varphi_\alpha$ into $A$.
Continuity across cells is the main technical point. When a point in $V_\alpha(\varepsilon_\alpha)$ approaches the boundary of $e_\alpha$, it approaches $A$ in $X^{n-1}$, and the homotopy $H$ approaches the identity on $A$. The compatibility of $\varepsilon$-choices ensures that the deformation in each cell meshes smoothly with the deformation in adjacent cells.
[/guided]
[/step]