[proofplan]
We apply [Euler's Criterion](/theorems/1715) to each of $ab$, $a$, and $b$, then use exponent rules modulo $p$ to match the two sides. The resulting congruence mod $p$ between integers in $\{-1, 0, 1\}$ upgrades to an equality because these three values are pairwise distinct mod $p$ (here we use $p \ge 3$, i.e., $p$ is an odd prime).
[/proofplan]
[step:Apply Euler's Criterion to each Legendre symbol]
By [Euler's Criterion](/theorems/1715), for any $c \in \mathbb{Z}$ and odd prime $p$,
\begin{align*}
\left(\tfrac{c}{p}\right) \equiv c^{\frac{p-1}{2}} \pmod p.
\end{align*}
Applying this to $c = ab$, $c = a$, and $c = b$ respectively:
\begin{align*}
\left(\tfrac{ab}{p}\right) &\equiv (ab)^{\frac{p-1}{2}} \pmod p, \\
\left(\tfrac{a}{p}\right) &\equiv a^{\frac{p-1}{2}} \pmod p, \\
\left(\tfrac{b}{p}\right) &\equiv b^{\frac{p-1}{2}} \pmod p.
\end{align*}
[/step]
[step:Combine using multiplicativity of powers]
Since $\mathbb{Z}/p\mathbb{Z}$ is a commutative ring, $(ab)^k = a^k b^k$ for every $k \ge 0$, and in particular for $k = (p-1)/2$:
\begin{align*}
(ab)^{\frac{p-1}{2}} = a^{\frac{p-1}{2}} b^{\frac{p-1}{2}}.
\end{align*}
Chaining congruences from the previous step,
\begin{align*}
\left(\tfrac{ab}{p}\right) \equiv (ab)^{\frac{p-1}{2}} = a^{\frac{p-1}{2}} b^{\frac{p-1}{2}} \equiv \left(\tfrac{a}{p}\right)\left(\tfrac{b}{p}\right) \pmod p.
\end{align*}
[/step]
[step:Upgrade the congruence mod $p$ to equality in $\mathbb{Z}$]
Both sides of the congruence
\begin{align*}
\left(\tfrac{ab}{p}\right) \equiv \left(\tfrac{a}{p}\right)\left(\tfrac{b}{p}\right) \pmod p
\end{align*}
lie in $\{-1, 0, 1\} \subset \mathbb{Z}$. We claim these three values are pairwise distinct modulo $p$. The differences between any two are $\pm 1$ or $\pm 2$; none of these is divisible by $p$ because $p \ge 3$: indeed $p \mid 1$ is impossible for $p > 1$, and $p \mid 2$ would force $p = 2$, contradicting $p$ odd. Hence the residue classes of $-1, 0, 1$ modulo $p$ are distinct, and two elements of $\{-1, 0, 1\}$ are congruent mod $p$ iff they are equal as integers. Consequently
\begin{align*}
\left(\tfrac{ab}{p}\right) = \left(\tfrac{a}{p}\right)\left(\tfrac{b}{p}\right),
\end{align*}
completing the proof.
[guided]
We have the congruence
\begin{align*}
\left(\tfrac{ab}{p}\right) \equiv \left(\tfrac{a}{p}\right)\left(\tfrac{b}{p}\right) \pmod p
\end{align*}
from Step 2, but the theorem asserts **equality** in $\mathbb{Z}$, not merely congruence. The bridge is that both sides are elements of $\{-1, 0, 1\}$ by definition of the Legendre symbol. So we need: if $u, v \in \{-1, 0, 1\}$ with $u \equiv v \pmod p$, then $u = v$.
Equivalently: the three integers $-1, 0, 1$ represent distinct residue classes in $\mathbb{Z}/p\mathbb{Z}$. The pairwise differences are
\begin{align*}
0 - (-1) = 1, \qquad 1 - 0 = 1, \qquad 1 - (-1) = 2.
\end{align*}
For these differences to be divisible by $p$, we would need $p \mid 1$ (impossible for any prime) or $p \mid 2$. The second forces $p = 2$, which contradicts the standing hypothesis that $p$ is odd. So all three differences are non-zero mod $p$, and the three residue classes are distinct.
This is a delicate but essential point: **oddness of $p$** is used here in the upgrade from congruence to equality. For $p = 2$, the Legendre symbol is not usually defined (and when extended, multiplicativity would require separate checking). The case $p$ odd is the full content of the theorem.
It is worth noting that if either $p \mid a$ or $p \mid b$, then both sides of the conclusion vanish: $\left(\tfrac{a}{p}\right) = 0$ (say) forces the right-hand side to be $0$, and $p \mid ab$ forces the left-hand side to be $0$. The nontrivial content is when $(a, p) = (b, p) = 1$, where both sides lie in $\{\pm 1\}$ and the argument above reduces to the simpler fact that $1 \not\equiv -1 \pmod p$ (again because $p \ne 2$).
[/guided]
[/step]