Solution (source code)

= Solution

First note that if $A$ is normal, then
$$
\|(A-\lambda I)v\|
=\|(A^\dagger-\overline\lambda I)v\|
$$
for every $v$. Hence an <eigenvector> $v$ with $Av=\lambda v$ also satisfies
$$
A^\dagger v=\overline\lambda v.
$$
Normalize $v$ and extend it to an orthonormal <basis>. Let $U$ have these <basis> <vectors> as columns. The first column of $U^\dagger AU$ is $(\lambda,0,\ldots,0)^T$. For every $w\perp v$,
$$
\langle v,Aw\rangle
=\langle A^\dagger v,w\rangle
=\langle\overline\lambda v,w\rangle=0,
$$
so the first row also has no off-diagonal entries. Therefore
$$
U^\dagger AU=
\begin{pmatrix}
\lambda&0\\
0&B
\end{pmatrix}.
$$
Comparing the two block products in the normality identity shows that $BB^\dagger=B^\dagger B$, so $B$ is normal.

The result is trivial in dimension one. Applying the induction hypothesis to $B$ and adjoining the <eigenvector> $v$ gives an orthonormal eigenbasis for $A$. This proves the <unitary diagonalization of a normal matrix>.