[step:Show that term evaluation commutes with the isomorphism]We prove that for every $L$-term $\tau$ and every assignment $s: \operatorname{Var} \to |M|$,
\begin{align*}
\tau^N(h_\ast s) = h(\tau^M(s)),
\end{align*}
where $\tau^M(s) \in |M|$ and $\tau^N(h_\ast s) \in |N|$ denote the interpretations of $\tau$ in $M$ and $N$ under the indicated assignments.
We argue by induction on the construction of $\tau$.
If $\tau$ is a variable $x$, then
\begin{align*}
\tau^N(h_\ast s) = (h_\ast s)(x) = h(s(x)) = h(\tau^M(s)).
\end{align*}
If $\tau$ is a constant symbol $c$ of $L$, then, because $h$ is an $L$-isomorphism, it preserves constants:
\begin{align*}
h(c^M) = c^N.
\end{align*}
Therefore
\begin{align*}
\tau^N(h_\ast s) = c^N = h(c^M) = h(\tau^M(s)).
\end{align*}
Now suppose $\tau$ has the form $f(\tau_1,\dots,\tau_m)$, where $f$ is an $m$-ary function symbol of $L$ and $\tau_1,\dots,\tau_m$ are $L$-terms. By the induction hypothesis, for each $j \in \{1,\dots,m\}$,
\begin{align*}
\tau_j^N(h_\ast s) = h(\tau_j^M(s)).
\end{align*}
Since $h$ is an $L$-isomorphism, it preserves the interpretation of $f$:
\begin{align*}
h\bigl(f^M(b_1,\dots,b_m)\bigr)
=
f^N(h(b_1),\dots,h(b_m))
\end{align*}
for all $b_1,\dots,b_m \in |M|$. Applying this with $b_j := \tau_j^M(s)$ gives
\begin{align*}
\tau^N(h_\ast s)
&= f^N(\tau_1^N(h_\ast s),\dots,\tau_m^N(h_\ast s)) \\
&= f^N(h(\tau_1^M(s)),\dots,h(\tau_m^M(s))) \\
&= h\bigl(f^M(\tau_1^M(s),\dots,\tau_m^M(s))\bigr) \\
&= h(\tau^M(s)).
\end{align*}
This completes the induction on terms.[/step]