[proofplan]
We first record the elementary algebraic facts about Dirichlet convolution: $\varepsilon$ acts as an identity and convolution is associative. These follow directly from reorganising finite divisor sums. Uniqueness is proved directly from the defining equation $f*g=\varepsilon$ by strong induction on $n$: after evaluation at $1$ gives $f(1)\neq 0$, the value of any inverse at $n$ is forced by its values at smaller positive integers. For existence, we define the inverse recursively: the equation $(f*g)(1)=1$ fixes $g(1)$, and for each $n \geq 2$ the equation $(f*g)(n)=0$ determines $g(n)$ from the already-defined values $g(m)$ with $m<n$.
[/proofplan]
[step:Verify the identity and associativity properties of Dirichlet convolution]
Let $a,b,c: \mathbb{N} \to \mathbb{C}$ be arithmetic functions. For every $n \in \mathbb{N}$,
\begin{align*}
(a * \varepsilon)(n)
&= \sum_{d \mid n} a(d)\varepsilon(n/d).
\end{align*}
The summand is nonzero only when $n/d=1$, equivalently $d=n$, and therefore
\begin{align*}
(a * \varepsilon)(n)=a(n).
\end{align*}
Similarly,
\begin{align*}
(\varepsilon * a)(n)
&= \sum_{d \mid n} \varepsilon(d)a(n/d)
= a(n),
\end{align*}
because the only nonzero summand occurs when $d=1$. Hence $\varepsilon$ is a two-sided identity for Dirichlet convolution.
We also verify associativity. For every $n \in \mathbb{N}$,
\begin{align*}
((a*b)*c)(n)
&= \sum_{e \mid n} (a*b)(e)c(n/e) \\
&= \sum_{e \mid n} \sum_{d \mid e} a(d)b(e/d)c(n/e).
\end{align*}
Writing $e=dm$, this finite sum ranges over all triples $(d,m,r) \in \mathbb{N}^3$ with $dmr=n$, and becomes
\begin{align*}
((a*b)*c)(n)
&= \sum_{dmr=n} a(d)b(m)c(r).
\end{align*}
On the other hand,
\begin{align*}
(a*(b*c))(n)
&= \sum_{d \mid n} a(d)(b*c)(n/d) \\
&= \sum_{d \mid n} a(d)\sum_{m \mid n/d} b(m)c(n/(dm)) \\
&= \sum_{dmr=n} a(d)b(m)c(r).
\end{align*}
Thus $((a*b)*c)(n)=(a*(b*c))(n)$ for every $n \in \mathbb{N}$, so Dirichlet convolution is associative.
[/step]
[step:Prove that a Dirichlet inverse must be unique]
Suppose $g,h: \mathbb{N} \to \mathbb{C}$ are arithmetic functions satisfying the defining inverse equations
\begin{align*}
f*g=\varepsilon
\quad\text{and}\quad
f*h=\varepsilon.
\end{align*}
Evaluating both equations at $1$ gives
\begin{align*}
f(1)g(1)=1
\quad\text{and}\quad
f(1)h(1)=1.
\end{align*}
Hence $f(1)\neq 0$, and cancellation in $\mathbb{C}$ gives $g(1)=h(1)$.
We prove $g(n)=h(n)$ for every $n\in\mathbb{N}$ by strong induction on $n$. The base case $n=1$ was just proved. Fix $n\geq 2$, and assume $g(m)=h(m)$ for every $m<n$. Subtracting the two equations $(f*g)(n)=\varepsilon(n)$ and $(f*h)(n)=\varepsilon(n)$ gives
\begin{align*}
0
&= (f*g)(n)-(f*h)(n) \\
&= \sum_{d\mid n} f(d)g(n/d)-\sum_{d\mid n} f(d)h(n/d) \\
&= \sum_{d\mid n} f(d)\bigl(g(n/d)-h(n/d)\bigr) \\
&= f(1)\bigl(g(n)-h(n)\bigr)
+\sum_{\substack{d\mid n\\ d>1}} f(d)\bigl(g(n/d)-h(n/d)\bigr).
\end{align*}
If $d\mid n$ and $d>1$, then $n/d<n$, so the induction hypothesis gives $g(n/d)=h(n/d)$. Therefore the remaining sum is $0$, and
\begin{align*}
f(1)\bigl(g(n)-h(n)\bigr)=0.
\end{align*}
Since $f(1)\neq 0$, cancellation in $\mathbb{C}$ gives $g(n)=h(n)$. By strong induction, $g=h$. Therefore any Dirichlet inverse of $f$ is unique.
[/step]
[step:Show that invertibility forces $f(1)$ to be nonzero]
Assume $f$ has a Dirichlet inverse $g: \mathbb{N} \to \mathbb{C}$, so $f*g=\varepsilon$. Evaluating at $1$ gives
\begin{align*}
1
= \varepsilon(1)
= (f*g)(1)
= \sum_{d \mid 1} f(d)g(1/d)
= f(1)g(1).
\end{align*}
Hence $f(1)$ has multiplicative inverse $g(1)$ in $\mathbb{C}$, so $f(1)\neq 0$.
[/step]
[step:Construct the inverse recursively when $f(1)\neq 0$]
Assume $f(1)\neq 0$. Define an arithmetic function $g: \mathbb{N} \to \mathbb{C}$ recursively as follows. First set
\begin{align*}
g(1):=\frac{1}{f(1)}.
\end{align*}
Proceed by strong recursion over the usual well-ordering of $\mathbb{N}$. For each $n \geq 2$, after $g(m)$ has been defined for every $m<n$, define
\begin{align*}
g(n):=
-\frac{1}{f(1)}
\sum_{\substack{d \mid n\\ d>1}} f(d)g(n/d).
\end{align*}
This is well-defined because if $d \mid n$ and $d>1$, then $n/d<n$, so every value $g(n/d)$ appearing in the finite divisor sum has already been defined.
[guided]
Assume $f(1)\neq 0$. The inverse equation we want is $f*g=\varepsilon$. At $n=1$, this equation says
\begin{align*}
(f*g)(1)=f(1)g(1)=1,
\end{align*}
so there is only one possible choice:
\begin{align*}
g(1):=\frac{1}{f(1)}.
\end{align*}
Now fix $n \geq 2$. If we require $(f*g)(n)=0$, then
\begin{align*}
0
&= (f*g)(n) \\
&= \sum_{d \mid n} f(d)g(n/d) \\
&= f(1)g(n)+\sum_{\substack{d \mid n\\ d>1}} f(d)g(n/d).
\end{align*}
The key point is that every divisor $d>1$ satisfies $n/d<n$, so the values $g(n/d)$ in the remaining sum are already known if we define $g$ by strong recursion. Since $f(1)\neq 0$, we can solve uniquely for $g(n)$:
\begin{align*}
g(n):=
-\frac{1}{f(1)}
\sum_{\substack{d \mid n\\ d>1}} f(d)g(n/d).
\end{align*}
Thus the recursion defines exactly one value of $g(n)$ at each positive integer $n$.
[/guided]
[/step]
[step:Verify that the recursively constructed function is a Dirichlet inverse]
We prove that $f*g=\varepsilon$. At $n=1$,
\begin{align*}
(f*g)(1)=f(1)g(1)=f(1)\frac{1}{f(1)}=1=\varepsilon(1).
\end{align*}
For $n\geq 2$, the recursive definition gives
\begin{align*}
f(1)g(n)
&=
-\sum_{\substack{d \mid n\\ d>1}} f(d)g(n/d).
\end{align*}
Therefore
\begin{align*}
(f*g)(n)
&= \sum_{d \mid n} f(d)g(n/d) \\
&= f(1)g(n)+\sum_{\substack{d \mid n\\ d>1}} f(d)g(n/d) \\
&= 0 \\
&= \varepsilon(n).
\end{align*}
Thus $f*g=\varepsilon$, so $f$ has a Dirichlet inverse whenever $f(1)\neq 0$.
Combining this existence result with the necessity of $f(1)\neq 0$ and the uniqueness argument proves the theorem.
[/step]