Understanding proposition $A.3$ of Hatcher. 
Proposition A.3 $:$ CW complexes are normal, and in particular Hausdorff.

Proof $:$ Points are closed in a CW complex $X$ since they pull back to closed sets under all characteristic map $\Phi_{\alpha}.$ For disjoint closed sets $A$ and $B$ in $X,$ we show that $N_{\varepsilon} (A)$ and $N_{\varepsilon} (B)$ are disjoint for small enough $\varepsilon_{\alpha}$'s. In the inductive process for building these open sets, assume $N_{\varepsilon}^n (A)$ and $N_{\varepsilon}^n (B)$ have been chosen to be disjoint.
[Question $:$ Why is it always possible to take such disjoint neighborhoods? For this we need normality of $X^n.$ Right?]
Back to proof $:$ For a characteristic map $\Phi_{\alpha} : D^{n+1} \longrightarrow X,$ observe that $\Phi_{\alpha}^{-1} (N_{\varepsilon}^n (A))$ and $\Phi_{\alpha}^{-1} (B)$ are a positive distance apart, since otherwise by compactness (compactness of what??) we would have a sequence in $\Phi_{\alpha}^{-1} (B)$ converging to a point of $\Phi_{\alpha}^{-1} (B)$ in $\partial D^{n+1}$ of distance zero from $\Phi_{\alpha}^{-1} (N_{\varepsilon}^n (A)).$
[Comment $:$ I don't understand his logic at all. What I can think of is as follows $:$
If their distance is zero then we can find out sequences $\{x_n\}_{n \geq 1}$ in
$\Phi_{\alpha}^{-1} (N_{\varepsilon}^n (A))$ and $\{y_n\}_{n \geq 1}$ in $\Phi_{\alpha}^{-1} (B)$ such that $\|x_n - y_n\| \to 0$ as $n \to \infty.$ Since $\Phi_{\alpha}^{-1} (B)$ is compact (as it is a closed subset of a compact set $D^{n+1}$) there exists a convergent subsequence $\{y_{n_k}\}_{k \geq 1}$ of $\{y_n\}_{n \geq 1}$ converging to point of $\Phi_{\alpha}^{-1} (B).$ Then $\{x_{n_k}\}_{k \geq 1}$ converges to a point of $\Phi_{\alpha}^{-1} (B).$ At this stage I got stuck.]
Back to proof $:$ But this is impossible since $\Phi_{\alpha}^{-1} (N_{\varepsilon}^n (A))$ is a neighborhood of $\Phi_{\alpha}^{-1} (B) \cap \partial D^{n+1}$ in $\partial D^{n+1}$ disjoint from $\Phi_{\alpha}^{-1} (N_{\varepsilon}^n (A)).$ (So what??) Similarly, $\Phi_{\alpha}^{-1} (A)$ and $\Phi_{\alpha}^{-1} (B)$ are a positive distance apart. So a small enough $\varepsilon_{\alpha}$ will make $\Phi_{\alpha}^{-1} (N_{\varepsilon}^{n+1} (A))$ disjoint from $\Phi_{\alpha}^{-1} (N_{\varepsilon}^{n+1} (A))$ in $D^{n+1}.$ (Why is it so?)
I don't understand most parts of the proof. Would anybody please elaborate the proof?
Thanks in advance.
 A: The proof is an induction on the skeleta $X^0\subset X^1\subset \dots \subset X$, where in each step you construct disjoint neighborhoods $N_\varepsilon^n(A)$ of $A\cap X^n$ and $N_\varepsilon^n(B)$ of $B \cap X^n$ in the $n$-skeleton $X^n$.
For $n=0$ you let $N_\varepsilon^0(A) = A \cap X^0$ and $N_\varepsilon^0(B) = B \cap X^0$. Since $X^0$ is discrete, both sets are open and since $A$ and $B$ are disjoint, so are their intersections with $X^0$.
Now let us assume we already constructed disjoint neighborhoods $N_\varepsilon^n(A)$ of $A\cap X^n$ and $N_\varepsilon^n(B)$ of $B \cap X^n$ in the $n$-skeleton $X^n$ and we want to go to $X^{n+1}$.
We look at the picture in each $(n+1)$-cell $e_\alpha^{n+1}$ with characteristic map $\Phi_\alpha\colon D^{n+1}\to X$, take preimages of the neighborhoods in the $n$-skeleton we already have and try to enlarge them so that their images make up  disjoint neighborhoods of $A\cap X^{n+1}$ and $B\cap X^{n+1}$ in the $(n+1)$-skeleton.
Fixing a cell $e_\alpha^{n+1}$, the picture in $D^{n+1}$ looks as follows:

The $\color{blue}{\text{blue}}$ part is what we already have by induction: $N_\varepsilon^n(A)$ and $N_\varepsilon^n(B)$ are disjoint neighborhoods in the $n$-skeleton, so their $\color{blue}{\text{preimages under $\Phi_\alpha$}}$ form disjoint neighborhoods of $\Phi_\alpha^{-1}(A)\cap \partial D^{n+1}$ and $\Phi_\alpha^{-1}(B)\cap \partial D^{n+1}$ in $\partial D^{n+1}$. To make these neighborhoods relative to $D^{n+1}$ instead of just to the boundary, we extrude them a little into the interior of $D^{n+1}$ by using spherical coordinates $(r,\theta)$ where $\theta\in\partial D^{n+1}\cong S^n$ and $r$ denotes the distance from the center of $D^{n+1}$. In these coordinates, points $z\in\partial D^{n+1}$ in the boundary are identified with $(1,z)\in D^{n+1}$ and we extrude $\color{blue}{\{1\}\times \Phi_\alpha^{-1}(N_\varepsilon^n(A))}$ to $\color{red}{(1-\varepsilon_\alpha,1]\times \Phi_\alpha^{-1}(N_\varepsilon^n(A))}$ for small enough $\varepsilon_\alpha$ and do the same for $\color{blue}{\Phi_\alpha^{-1}(N_\varepsilon^n(B))}$. These are the $\color{red}{\text{dotted red strips}}$ around the blue segments in the picture.
But $\color{green}{\Phi_\alpha^{-1}(A)}$ and $\color{green}{\Phi_\alpha^{-1}(B)}$ might also contain parts that are in the interior of the cell. So in the interior of $D^{n+1}$ we will blow up $\color{green}{\Phi_\alpha^{-1}(A)-\partial D^{n+1}}$ and $\color{green}{\Phi_\alpha^{-1}(B)-\partial D^{n+1}}$ by a small amount by taking $\varepsilon_\alpha$-neighborhoods for small enough $\varepsilon_\alpha$ as well. These are the $\color{red}{\text{red dotted curvy regions}}$ in the picture.
Taking unions we then have neighborhoods for $\color{green}{\Phi_\alpha^{-1}(A)}$ and $\color{green}{\Phi_\alpha^{-1}(B)}$ in $D^{n+1}$, each consisting of an extruded part from the boundary component and an $\varepsilon_\alpha$-neighborhood of the stuff in the interior.
In order for these two neighborhoods to stay disjoint, we need to pick $\varepsilon_\alpha$ small enough to make sure of four things:

*

*The extruded neighborhoods $(1-\varepsilon_\alpha,1]\times \Phi_\alpha^{-1}(N_\varepsilon^n(A))$ and $(1-\varepsilon_\alpha,1]\times \Phi_\alpha^{-1}(N_\varepsilon^n(B))$ don't intersect.

*The $\varepsilon_\alpha$-neighborhoods of $\Phi_\alpha^{-1}(A)-\partial D^{n+1}$ and $\Phi_\alpha^{-1}(B)-\partial D^{n+1}$ in the interior of $D^{n+1}$ don't intersect.

*The extruded neighborhood $(1-\varepsilon_\alpha,1]\times \Phi_\alpha^{-1}(N_\varepsilon^n(A))$ does not intersect the $\varepsilon_\alpha$-neighborhood of $\Phi_\alpha^{-1}(B)-\partial D^{n+1}$.

*The extruded neighborhood $(1-\varepsilon_\alpha,1]\times \Phi_\alpha^{-1}(N_\varepsilon^n(B))$ does not intersect the $\varepsilon_\alpha$-neighborhood of $\Phi_\alpha^{-1}(A)-\partial D^{n+1}$.

We take care of each problem individually:

*

*Since $\Phi_\alpha^{-1}(N_\varepsilon^n(A))$ and $\Phi_\alpha^{-1}(N_\varepsilon^n(B))$ don't intersect by induction, their extrusions won't intersect either as long as $\varepsilon_\alpha < 1$.

*Since $\Phi_\alpha^{-1}(A)$ and $\Phi_\alpha^{-1}(B)$ are disjoint closed subsets of the compact space $D^{n+1}$, they have a positive distance so small enough $\varepsilon_\alpha$ will yield disjoint neighborhoods.

*For this it is enough to show that $\Phi_\alpha^{-1}(B)$ and $\Phi_\alpha^{-1}(N_\varepsilon^n(A))$ are a positive distance apart, so both can be enlarged a bit. (We will do that below.)

*This is done analogous to 3.

So 3. is the part you are struggling with, let's focus on this:
As $B$ is closed and $D^{n+1}$ is compact, $\Phi_\alpha^{-1}(B)$ is compact as well. If the distance between $\Phi_\alpha^{-1}(B)$ and $\Phi_\alpha^{-1}(N_\varepsilon^n(A))$ would be zero, there would be (as you said) convergent sequences $(x_n)_{n\in\mathbb N}\subset \Phi_\alpha^{-1}(N_\varepsilon^n(A))\subset \partial D^{n+1}$ and $(y_n)_{n\in\mathbb N}\subset \Phi_\alpha^{-1}(B)$ converging to the same point $z\in D^{n+1}$. Since $\Phi_\alpha^{-1}(B)$ is compact, $z\in \Phi_\alpha^{-1}(B)$. Since $\partial D^{n+1}\cong S^n$ is compact, $z\in \partial D^{n+1}$. So we have
$$
z\in \Phi_\alpha^{-1}(B)\cap \partial D^{n+1}, \quad d(z,\Phi_\alpha^{-1}(N_\varepsilon^n(A))) = 0.
$$
Now since $\Phi_\alpha^{-1}(N_\varepsilon^n(B))$ is a neighborhood of $\Phi_\alpha^{-1}(B)\cap \partial D^{n+1}$ in $\partial D^{n+1}$, there is a $\delta_0>0$ such that all $w\in\partial D^{n+1}$ with $d(z,w)<\delta_0$ are contained in $\Phi_\alpha^{-1}(N_\varepsilon^n(B))$, so they can't be elements of the disjoint set $\Phi_\alpha^{-1}(N_\varepsilon^n(A))$. In other words,
$$
d(z,\Phi_\alpha^{-1}(N_\varepsilon^n(A))) \ge \delta_0 \neq 0, \quad\color{red}{\text{a contradiction}}.
$$
We conclude that $\varepsilon_\alpha$ can be chosen small enough to obtain disjoint neighborhoods of $\Phi_\alpha^{-1}(A)$ and $\Phi_\alpha^{-1}(B)$ while leaving things in the boundary $\partial D^{n+1}$ as they were.
Doing this for each $(n+1)$-cell and taking the union of the images of these neighborhoods in $X$, we constructed disjoint neighborhoods $N_\varepsilon^{n+1}(A)$ and $N_\varepsilon^{n+1}(B)$ of $A\cap X^{n+1}$ and $B\cap X^{n+1}$ in the $(n+1)$-skeleton, respectively.
This process can be continued indefinitely and letting $N_\varepsilon(A)=\bigcup_n N_\varepsilon^n(A)$, $N_\varepsilon(B)=\bigcup_n N_\varepsilon^n(B)$ yields the desired disjoint neighborhoods of $A$ and $B$ in $X$ itself.
