[proofplan]
We expand the proposed inversion formula using the definition of $\widehat f$ and interchange two finite sums. The coefficient of each value $f(y)$ is a character sum over $\widehat G$, evaluated at $xy^{-1}$. We prove the required dual orthogonality relation directly: this sum is $|G|$ when $x=y$ and $0$ otherwise. The normalization factor $1/|G|$ in the [Fourier transform](/page/Fourier%20Transform) then leaves exactly the single term $f(x)$.
[/proofplan]
[step:Establish the character sum orthogonality on $G$]
We first record the finite dual orthogonality relation. For every $a \in G$,
\begin{align*}
\sum_{\gamma \in \widehat G} \gamma(a)
=
\begin{cases}
|G|, & a=e,\\
0, & a\ne e.
\end{cases}
\end{align*}
Indeed, $\gamma(e)=1$ for every character $\gamma: G \to S^1$, so the case $a=e$ gives
\begin{align*}
\sum_{\gamma \in \widehat G} \gamma(e)=|\widehat G|.
\end{align*}
For a finite abelian group, $|\widehat G|=|G|$: this follows by decomposing $G$ into cyclic factors, since a cyclic group of order $m$ has exactly $m$ characters, determined by the image of a generator, and characters on a finite direct product are exactly products of characters on the factors.
Now suppose $a \ne e$. Since finite abelian groups have enough characters to separate points, there exists $\eta \in \widehat G$ such that $\eta(a)\ne 1$. Define
\begin{align*}
S(a):=\sum_{\gamma \in \widehat G}\gamma(a).
\end{align*}
Multiplication by $\eta$ defines a bijection
\begin{align*}
M_\eta:\widehat G &\to \widehat G\\
\gamma &\mapsto \eta\gamma,
\end{align*}
with inverse $M_{\eta^{-1}}$. Therefore reindexing the finite sum by this bijection gives
\begin{align*}
S(a)
&=\sum_{\gamma \in \widehat G}(\eta\gamma)(a)\\
&=\eta(a)\sum_{\gamma \in \widehat G}\gamma(a)\\
&=\eta(a)S(a).
\end{align*}
Since $\eta(a)\ne 1$, subtracting gives $(1-\eta(a))S(a)=0$, hence $S(a)=0$.
[guided]
We need one concrete input about finite abelian characters: the character sum over the whole dual group detects only the identity element. We prove the relation
\begin{align*}
\sum_{\gamma \in \widehat G} \gamma(a)
=
\begin{cases}
|G|, & a=e,\\
0, & a\ne e.
\end{cases}
\end{align*}
First take $a=e$. Every character $\gamma:G\to S^1$ is a group homomorphism, so $\gamma(e)=1$. Thus
\begin{align*}
\sum_{\gamma \in \widehat G}\gamma(e)=\sum_{\gamma \in \widehat G}1=|\widehat G|.
\end{align*}
For a finite abelian group, $|\widehat G|=|G|$. One way to see this is through the finite abelian group decomposition into cyclic factors: if $C_m$ is cyclic of order $m$ with generator $u$, then a character $\gamma:C_m\to S^1$ is determined by $\gamma(u)$, and the condition $\gamma(u)^m=1$ gives exactly $m$ choices. On a finite direct product, characters are exactly products of characters on the cyclic factors, so the number of characters multiplies in the same way as the group order.
Now let $a\ne e$. The key point is that finite abelian groups have enough characters to separate points: there is a character $\eta:G\to S^1$ such that $\eta(a)\ne 1$. Define the finite character sum
\begin{align*}
S(a):=\sum_{\gamma\in\widehat G}\gamma(a).
\end{align*}
We compare this sum with itself after multiplying every character by the fixed character $\eta$. The map
\begin{align*}
M_\eta:\widehat G &\to \widehat G\\
\gamma &\mapsto \eta\gamma
\end{align*}
is a bijection, because multiplication by $\eta^{-1}$ is its inverse. Reindexing a finite sum over a bijection preserves the value of the sum, so
\begin{align*}
S(a)
&=\sum_{\gamma\in\widehat G}(\eta\gamma)(a)\\
&=\sum_{\gamma\in\widehat G}\eta(a)\gamma(a)\\
&=\eta(a)\sum_{\gamma\in\widehat G}\gamma(a)\\
&=\eta(a)S(a).
\end{align*}
Since $\eta(a)\ne 1$, the scalar $1-\eta(a)$ is nonzero. Hence
\begin{align*}
(1-\eta(a))S(a)=0
\end{align*}
forces $S(a)=0$. This proves the character sum orthogonality relation.
[/guided]
[/step]
[step:Expand the Fourier series and isolate the coefficient of each $f(y)$]
Fix $x\in G$. Using the definition of $\widehat f:\widehat G\to\mathbb C$ and the finiteness of both $G$ and $\widehat G$, we may interchange the sums:
\begin{align*}
\sum_{\gamma\in\widehat G}\widehat f(\gamma)\gamma(x)
&=
\sum_{\gamma\in\widehat G}
\left(
\frac{1}{|G|}
\sum_{y\in G}f(y)\overline{\gamma(y)}
\right)\gamma(x)\\
&=
\frac{1}{|G|}
\sum_{y\in G}
f(y)
\sum_{\gamma\in\widehat G}\gamma(x)\overline{\gamma(y)}.
\end{align*}
Since $\gamma(y)\in S^1$, we have $\overline{\gamma(y)}=\gamma(y)^{-1}=\gamma(y^{-1})$. Because $\gamma$ is a homomorphism,
\begin{align*}
\gamma(x)\overline{\gamma(y)}
=
\gamma(x)\gamma(y^{-1})
=
\gamma(xy^{-1}).
\end{align*}
Thus
\begin{align*}
\sum_{\gamma\in\widehat G}\widehat f(\gamma)\gamma(x)
=
\frac{1}{|G|}
\sum_{y\in G}
f(y)
\sum_{\gamma\in\widehat G}\gamma(xy^{-1}).
\end{align*}
[/step]
[step:Apply character orthogonality to leave only the term $y=x$]
For each $y\in G$, the element $xy^{-1}$ equals $e$ if and only if $y=x$. By the character sum orthogonality relation proved above,
\begin{align*}
\sum_{\gamma\in\widehat G}\gamma(xy^{-1})
=
\begin{cases}
|G|, & y=x,\\
0, & y\ne x.
\end{cases}
\end{align*}
Substituting this into the expanded expression gives
\begin{align*}
\sum_{\gamma\in\widehat G}\widehat f(\gamma)\gamma(x)
&=
\frac{1}{|G|}
\sum_{y\in G}
f(y)
\begin{cases}
|G|, & y=x,\\
0, & y\ne x
\end{cases}\\
&=
\frac{1}{|G|}\,f(x)|G|\\
&=f(x).
\end{align*}
Since $x\in G$ was arbitrary, the inversion formula holds for every $x\in G$.
[/step]