[step:Count the characters of a finite abelian group]
[claim:A finite abelian group has exactly as many complex characters as elements]
Let $A$ be a finite abelian group, and let
\begin{align*}
\widehat A := \{\theta:A\to\mathbb{C}^\times : \theta(xy)=\theta(x)\theta(y) \text{ for all } x,y\in A\}
\end{align*}
be its complex character group. Then $|\widehat A|=|A|$.
[/claim]
[proof]
We argue by induction on $|A|$. If $|A|=1$, then $A=\{e_A\}$ and the only character is the constant character $e_A\mapsto 1$, so $|\widehat A|=1=|A|$.
Assume $|A|>1$ and that the assertion is known for all finite abelian groups of smaller order. Choose $x\in A$ with $x\ne e_A$, let $m\in\mathbb{N}$ be the order of $x$, and let $H:=\langle x\rangle\subset A$. Then $1<m\le |A|$. The cyclic group $H$ has exactly $m$ characters: for each integer $j\in\{0,1,\dots,m-1\}$, define
\begin{align*}
\theta_j:H &\to \mathbb{C}^\times \\
x^k &\mapsto \exp(2\pi i jk/m),
\end{align*}
and these are all characters because a character on $H$ is determined by its value on $x$, which must be an $m$-th root of unity.
Define the restriction map
\begin{align*}
R:\widehat A &\to \widehat H \\
\theta &\mapsto \theta|_H.
\end{align*}
We prove that $R$ is surjective. Let $\theta_0:H\to\mathbb{C}^\times$ be a character. Consider all pairs $(B,\eta)$ where $B$ is a subgroup of $A$ containing $H$ and $\eta:B\to\mathbb{C}^\times$ is a character extending $\theta_0$. Since $A$ is finite, choose such a pair maximal by inclusion. If $B\ne A$, choose $y\in A\setminus B$, let $r\in\mathbb{N}$ be minimal with $y^r\in B$, choose $\lambda\in\mathbb{C}^\times$ with $\lambda^r=\eta(y^r)$, and define on $B':=\langle B,y\rangle$ the map
\begin{align*}
\eta':B' &\to \mathbb{C}^\times \\
b y^k &\mapsto \eta(b)\lambda^k,
\end{align*}
where $b\in B$ and $0\le k<r$. The same uniqueness and multiplication computation as in the preceding separation claim shows that $\eta'$ is a well-defined character extending $\eta$, contradicting maximality. Hence $B=A$, so $\theta_0$ extends to a character of $A$ and $R$ is surjective.
The kernel of $R$ is
\begin{align*}
\ker R = \{\theta\in\widehat A : \theta(h)=1 \text{ for all } h\in H\}.
\end{align*}
Characters in $\ker R$ are exactly the characters that factor through the [quotient group](/page/Quotient%20Group) $A/H$: the bijection is
\begin{align*}
\widehat{A/H} &\to \ker R \\
\rho &\mapsto \bigl(a\mapsto \rho(aH)\bigr).
\end{align*}
The map is well-defined because $H$ is a subgroup of the abelian group $A$, hence $A/H$ is a finite abelian group. It is injective because every coset $aH$ is represented by some $a\in A$, and it is surjective because if $\theta\in\ker R$, then $\rho(aH):=\theta(a)$ is independent of the representative: whenever $aH=bH$, one has $b^{-1}a\in H$, and therefore
\begin{align*}
\theta(a)=\theta(b)\theta(b^{-1}a)=\theta(b).
\end{align*}
Thus $|\ker R|=|\widehat{A/H}|$.
Since $R:\widehat A\to\widehat H$ is a surjective homomorphism of finite groups, the fiber-counting formula for a homomorphism gives
\begin{align*}
|\widehat A|=|\ker R|\,|\widehat H|.
\end{align*}
The group $A/H$ has smaller order than $A$, so the induction hypothesis gives $|\widehat{A/H}|=|A/H|$. Combining this with $|\widehat H|=|H|=m$, we obtain
\begin{align*}
|\widehat A|
=
|\widehat{A/H}|\,|\widehat H|
=
|A/H|\,|H|
=
|A|.
\end{align*}
This completes the induction.
[/proof]
Applying the claim with $A=G$ gives $|\widehat G|=|G|$.
[/step]