[step:Show that embeddings preserve the interpretation of terms]
Let $M \models T$ and $N \models T$, and let
\begin{align*}
f: M \to N
\end{align*}
be an $L$-embedding. For a nonnegative integer $n$, let $a = (a_1,\dots,a_n) \in M^n$ be a tuple, and write
\begin{align*}
f(a) := (f(a_1),\dots,f(a_n)) \in N^n.
\end{align*}
We claim that for every $L$-term $t(x_1,\dots,x_n)$,
\begin{align*}
f\bigl(t^M(a)\bigr) = t^N(f(a)).
\end{align*}
This is proved by induction on the construction of $t$. If $t$ is the variable $x_i$, then
\begin{align*}
f\bigl(t^M(a)\bigr) = f(a_i) = t^N(f(a)).
\end{align*}
If $t$ is a constant symbol $c$, then the definition of $L$-embedding gives
\begin{align*}
f(c^M) = c^N.
\end{align*}
Finally, suppose
\begin{align*}
t = F(t_1,\dots,t_m),
\end{align*}
where $F$ is an $m$-ary function symbol of $L$ and $t_1,\dots,t_m$ are $L$-terms. By the induction hypothesis,
\begin{align*}
f\bigl(t_j^M(a)\bigr) = t_j^N(f(a))
\end{align*}
for every $j \in \{1,\dots,m\}$. Since $f$ is an $L$-embedding, it preserves the interpretation of $F$, so
\begin{align*}
f\bigl(t^M(a)\bigr)
&= f\bigl(F^M(t_1^M(a),\dots,t_m^M(a))\bigr) \\
&= F^N\bigl(f(t_1^M(a)),\dots,f(t_m^M(a))\bigr) \\
&= F^N\bigl(t_1^N(f(a)),\dots,t_m^N(f(a))\bigr) \\
&= t^N(f(a)).
\end{align*}
Thus embeddings preserve term interpretation.
[/step]