[proofplan]
We compare the derived series of $\mathfrak g$ with the derived series of its image under $\varphi$. A Lie algebra homomorphism sends brackets to brackets, so it sends each derived subalgebra of $\mathfrak g$ onto the corresponding derived subalgebra of $\varphi(\mathfrak g)$. This proves that solvability descends to homomorphic images. Conversely, if the image is solvable, then a sufficiently deep derived algebra of $\mathfrak g$ lies in $\ker\varphi$; the assumed solvability of the kernel then kills the remaining derived series.
[/proofplan]
[step:Define the derived series used to test solvability]
For any Lie algebra $\mathfrak a$ over $k$, define its derived series $(\mathfrak a^{(m)})_{m \geq 0}$ by
\begin{align*}
\mathfrak a^{(0)} &= \mathfrak a, \\
\mathfrak a^{(m+1)} &= [\mathfrak a^{(m)}, \mathfrak a^{(m)}]
\end{align*}
for every integer $m \geq 0$. Thus $\mathfrak a$ is solvable exactly when there exists an integer $N \geq 0$ such that $\mathfrak a^{(N)} = 0$.
[/step]
[step:Show that the homomorphism identifies the derived series of the image]
Let $\mathfrak i := \varphi(\mathfrak g) \subseteq \mathfrak h$. We prove by induction on $m \geq 0$ that
\begin{align*}
\varphi(\mathfrak g^{(m)}) = \mathfrak i^{(m)}.
\end{align*}
For $m = 0$, this is the definition of $\mathfrak i$:
\begin{align*}
\varphi(\mathfrak g^{(0)}) = \varphi(\mathfrak g) = \mathfrak i = \mathfrak i^{(0)}.
\end{align*}
Assume now that $\varphi(\mathfrak g^{(m)}) = \mathfrak i^{(m)}$. Since $\varphi$ is a Lie algebra homomorphism, for all $x,y \in \mathfrak g^{(m)}$,
\begin{align*}
\varphi([x,y]) = [\varphi(x),\varphi(y)].
\end{align*}
Therefore
\begin{align*}
\varphi(\mathfrak g^{(m+1)})
&= \varphi([\mathfrak g^{(m)},\mathfrak g^{(m)}]) \\
&= [\varphi(\mathfrak g^{(m)}),\varphi(\mathfrak g^{(m)})] \\
&= [\mathfrak i^{(m)},\mathfrak i^{(m)}] \\
&= \mathfrak i^{(m+1)}.
\end{align*}
The induction proves the identity for every $m \geq 0$.
[guided]
Let $\mathfrak i := \varphi(\mathfrak g)$ denote the image Lie subalgebra of $\mathfrak h$. The point of this step is to make precise the principle that taking commutators commutes with passing to the image of a Lie algebra homomorphism.
We prove that for every integer $m \geq 0$,
\begin{align*}
\varphi(\mathfrak g^{(m)}) = \mathfrak i^{(m)}.
\end{align*}
For $m=0$, this is exactly the definition of $\mathfrak i$:
\begin{align*}
\varphi(\mathfrak g^{(0)}) = \varphi(\mathfrak g) = \mathfrak i = \mathfrak i^{(0)}.
\end{align*}
Now assume the equality is known for some $m \geq 0$. The next derived algebra of $\mathfrak g$ is generated by brackets of elements of $\mathfrak g^{(m)}$:
\begin{align*}
\mathfrak g^{(m+1)} = [\mathfrak g^{(m)},\mathfrak g^{(m)}].
\end{align*}
Because $\varphi$ is a Lie algebra homomorphism, it preserves the Lie bracket:
\begin{align*}
\varphi([x,y]) = [\varphi(x),\varphi(y)]
\end{align*}
for all $x,y \in \mathfrak g$. Applying this to elements $x,y \in \mathfrak g^{(m)}$, and then using the induction hypothesis, gives
\begin{align*}
\varphi(\mathfrak g^{(m+1)})
&= \varphi([\mathfrak g^{(m)},\mathfrak g^{(m)}]) \\
&= [\varphi(\mathfrak g^{(m)}),\varphi(\mathfrak g^{(m)})] \\
&= [\mathfrak i^{(m)},\mathfrak i^{(m)}] \\
&= \mathfrak i^{(m+1)}.
\end{align*}
Thus the equality holds at level $m+1$. By induction, it holds for every $m \geq 0$.
[/guided]
[/step]
[step:Deduce that solvability descends from $\mathfrak g$ to its image]
Assume $\mathfrak g$ is solvable. Then there exists an integer $r \geq 0$ such that $\mathfrak g^{(r)} = 0$. Using the derived-series identity from the previous step,
\begin{align*}
\mathfrak i^{(r)} = \varphi(\mathfrak g^{(r)}) = \varphi(0) = 0.
\end{align*}
Hence $\mathfrak i = \varphi(\mathfrak g)$ is solvable.
[/step]
[step:Use solvability of the image to force a derived algebra into the kernel]
Assume conversely that $\mathfrak i = \varphi(\mathfrak g)$ is solvable. Then there exists an integer $r \geq 0$ such that $\mathfrak i^{(r)} = 0$. By the derived-series identity,
\begin{align*}
\varphi(\mathfrak g^{(r)}) = \mathfrak i^{(r)} = 0.
\end{align*}
Therefore every element of $\mathfrak g^{(r)}$ lies in $\ker\varphi$, and hence
\begin{align*}
\mathfrak g^{(r)} \subseteq \ker\varphi.
\end{align*}
[/step]
[step:Apply the solvability of the kernel to finish the converse]
Let $\mathfrak k := \ker\varphi$. By hypothesis, $\mathfrak k$ is solvable, so there exists an integer $s \geq 0$ such that $\mathfrak k^{(s)} = 0$.
We prove by induction on $j \geq 0$ that
\begin{align*}
\mathfrak g^{(r+j)} \subseteq \mathfrak k^{(j)}.
\end{align*}
For $j=0$, this is the inclusion $\mathfrak g^{(r)} \subseteq \mathfrak k$ proved in the previous step. If $\mathfrak g^{(r+j)} \subseteq \mathfrak k^{(j)}$, then taking Lie brackets on both sides gives
\begin{align*}
\mathfrak g^{(r+j+1)}
&= [\mathfrak g^{(r+j)},\mathfrak g^{(r+j)}] \\
&\subseteq [\mathfrak k^{(j)},\mathfrak k^{(j)}] \\
&= \mathfrak k^{(j+1)}.
\end{align*}
Thus $\mathfrak g^{(r+j)} \subseteq \mathfrak k^{(j)}$ for all $j \geq 0$. Taking $j=s$ yields
\begin{align*}
\mathfrak g^{(r+s)} \subseteq \mathfrak k^{(s)} = 0.
\end{align*}
Hence $\mathfrak g^{(r+s)} = 0$, so $\mathfrak g$ is solvable. Combining this with the forward implication proves the equivalence.
[/step]