[proofplan]
We let the nilpotent Lie algebra $H$ act on $L$ by the adjoint representation and use [Lie's theorem](/theorems/3754) to decompose $L$ into generalized weight spaces. The zero generalized weight space is exactly $H$, by the Fitting-null-space characterization of Cartan subalgebras. For $u \in [H,H]$, the operator $\operatorname{ad}_L u$ is nilpotent on every generalized weight space, which forces $\operatorname{Tr}(\operatorname{ad}_L u \operatorname{ad}_L v)=0$ for every $v \in L$. Thus $u$ lies in the radical of the Killing form, and semisimplicity of $L$ forces $u=0$.
[/proofplan]
[step:Decompose $L$ into generalized weight spaces for the adjoint action of $H$]
Define the adjoint representation of $H$ on $L$ by
\begin{align*}
\rho: H &\to \mathfrak{gl}(L) \\
h &\mapsto \operatorname{ad}_L h,
\end{align*}
where $\operatorname{ad}_L h: L \to L$ is the $k$-[linear map](/page/Linear%20Map) $x \mapsto [h,x]$. Since $H$ is a [Cartan subalgebra](/page/Cartan%20Subalgebra), $H$ is nilpotent, hence solvable. Because $k$ is algebraically closed and $\operatorname{char} k=0$, [Lie's Theorem](/page/Lie's%20Theorem) applies to the finite-dimensional representation $\rho$ of the solvable Lie algebra $H$. Therefore the operators $\rho(h)$ are simultaneously upper triangular after choosing a suitable basis of $L$.
Let $\Phi \subset H^*$ denote the finite set of weights occurring in this triangular representation. For each $\alpha \in \Phi$, define the [generalized weight space](/page/Generalized%20Weight%20Space)
\begin{align*}
L_\alpha
:=
\left\{
x \in L :
\text{for every } h \in H,\text{ there exists } N=N(h,x)\in \mathbb N
\text{ such that }(\operatorname{ad}_L h-\alpha(h)\operatorname{id}_L)^N x=0
\right\}.
\end{align*}
The [primary decomposition theorem](/page/Primary%20Decomposition%20Theorem), applied to the simultaneous triangular form of the solvable action $\rho(H)$, gives the simultaneous generalized eigenspace decomposition
\begin{align*}
L=\bigoplus_{\alpha\in\Phi} L_\alpha.
\end{align*}
By the [Fitting-null-space characterization of Cartan subalgebras](/page/Fitting%20Null%20Component%20of%20a%20Cartan%20Subalgebra), applied to the adjoint action of the nilpotent subalgebra $H$ on $L$, the zero generalized weight space is exactly the Cartan subalgebra:
\begin{align*}
L_0=H
\end{align*}
(citing a result not yet in the wiki: Cartan subalgebra equals the Fitting null component of its adjoint action).
[guided]
We use the adjoint action because the theorem is about brackets inside $L$. Define
\begin{align*}
\rho: H &\to \mathfrak{gl}(L) \\
h &\mapsto \operatorname{ad}_L h,
\end{align*}
where $\operatorname{ad}_L h: L \to L$ is the $k$-linear map $x \mapsto [h,x]$. Since $H$ is a Cartan subalgebra, it is nilpotent by definition. Every nilpotent Lie algebra is solvable, so $H$ is solvable. The representation space $L$ is finite-dimensional over the algebraically closed field $k$, and $\operatorname{char} k=0$. These are exactly the hypotheses needed for [Lie's Theorem](/page/Lie's%20Theorem), so [Lie's theorem](/theorems/3802) gives a basis of $L$ in which all operators $\operatorname{ad}_L h$, with $h\in H$, are upper triangular.
The diagonal entries in this simultaneous triangular form define linear functionals on $H$. Let $\Phi \subset H^*$ be the finite set of those functionals. For $\alpha \in \Phi$, define
\begin{align*}
L_\alpha
:=
\left\{
x \in L :
\text{for every } h \in H,\text{ there exists } N=N(h,x)\in \mathbb N
\text{ such that }(\operatorname{ad}_L h-\alpha(h)\operatorname{id}_L)^N x=0
\right\}.
\end{align*}
Thus $L_\alpha$ consists of the vectors on which every $\operatorname{ad}_L h$ acts with generalized eigenvalue $\alpha(h)$. The [primary decomposition theorem](/page/Primary%20Decomposition%20Theorem), applied after simultaneous triangularization of the solvable action $\rho(H)$, gives the direct sum
\begin{align*}
L=\bigoplus_{\alpha\in\Phi} L_\alpha.
\end{align*}
The zero weight space is the part of $L$ on which every $h\in H$ acts nilpotently. For a Cartan subalgebra, this Fitting null component is precisely $H$ itself:
\begin{align*}
L_0=H.
\end{align*}
This uses the self-normalizing condition in the definition of a Cartan subalgebra together with the [Fitting decomposition for nilpotent Lie algebra actions](/page/Fitting%20Decomposition) and the [Fitting-null-space characterization of Cartan subalgebras](/page/Fitting%20Null%20Component%20of%20a%20Cartan%20Subalgebra).
[/guided]
[/step]
[step:Show that commutators in $H$ act nilpotently on every weight space]
Let $u\in [H,H]$. We prove that $\operatorname{ad}_L u|_{L_\alpha}:L_\alpha\to L_\alpha$ is nilpotent for every $\alpha\in\Phi$.
First let $\alpha=0$. Since $L_0=H$, the restriction $\operatorname{ad}_L u|_{L_0}$ is the map
\begin{align*}
\operatorname{ad}_H u: H &\to H \\
h &\mapsto [u,h].
\end{align*}
Because $H$ is nilpotent, every inner derivation $\operatorname{ad}_H u$ is nilpotent.
Now let $\alpha\in\Phi$ be nonzero. Since the representation of $H$ on $L_\alpha$ is triangular with diagonal character $\alpha$, the trace of the commutator
\begin{align*}
[\operatorname{ad}_L h_1|_{L_\alpha},\operatorname{ad}_L h_2|_{L_\alpha}]
\end{align*}
has diagonal entries all equal to $\alpha([h_1,h_2])$ for $h_1,h_2\in H$. But the trace of a commutator of finite-dimensional endomorphisms is $0$, so $\alpha([h_1,h_2])=0$ for all $h_1,h_2\in H$. Hence $\alpha(u)=0$ for every $u\in[H,H]$. By the definition of $L_\alpha$, the operator
\begin{align*}
\operatorname{ad}_L u|_{L_\alpha}-\alpha(u)\operatorname{id}_{L_\alpha}
=
\operatorname{ad}_L u|_{L_\alpha}
\end{align*}
is nilpotent.
[guided]
Fix $u\in[H,H]$. We want to prove that $\operatorname{ad}_L u$ is nilpotent on each generalized weight space $L_\alpha$.
For the zero weight space, the previous step gives $L_0=H$. Therefore the restriction of $\operatorname{ad}_L u$ to $L_0$ is exactly
\begin{align*}
\operatorname{ad}_H u: H &\to H \\
h &\mapsto [u,h].
\end{align*}
Since $H$ is nilpotent, [Engel's Theorem](/page/Engel's%20Theorem) applied to the adjoint representation of $H$ on itself gives that $\operatorname{ad}_H u$ is nilpotent.
Now let $\alpha\in\Phi$ be nonzero. On $L_\alpha$, every operator $\operatorname{ad}_L h$ is upper triangular with diagonal entries all equal to $\alpha(h)$. Take $h_1,h_2\in H$. The Lie algebra representation property gives
\begin{align*}
[\operatorname{ad}_L h_1|_{L_\alpha},\operatorname{ad}_L h_2|_{L_\alpha}]
=
\operatorname{ad}_L [h_1,h_2]|_{L_\alpha}.
\end{align*}
The left-hand side is a commutator of finite-dimensional endomorphisms, so its trace is $0$. The right-hand side is upper triangular with every diagonal entry equal to $\alpha([h_1,h_2])$. If $d_\alpha:=\dim_k L_\alpha$, then
\begin{align*}
0
=
\operatorname{Tr}(\operatorname{ad}_L [h_1,h_2]|_{L_\alpha})
=
d_\alpha\,\alpha([h_1,h_2]).
\end{align*}
Since $d_\alpha\ge 1$ and $\operatorname{char} k=0$, we get $\alpha([h_1,h_2])=0$. By linearity, $\alpha(u)=0$ for every $u\in[H,H]$.
Finally, by the definition of the generalized weight space $L_\alpha$, the operator
\begin{align*}
\operatorname{ad}_L u|_{L_\alpha}-\alpha(u)\operatorname{id}_{L_\alpha}
\end{align*}
is nilpotent. Since $\alpha(u)=0$, this operator is just $\operatorname{ad}_L u|_{L_\alpha}$. Hence $\operatorname{ad}_L u$ is nilpotent on $L_\alpha$.
[/guided]
[/step]
[step:Use the Killing form to force every element of $[H,H]$ to vanish]
Define the [Killing form](/page/Killing%20Form) of $L$ by
\begin{align*}
K: L\times L &\to k \\
(x,y) &\mapsto \operatorname{Tr}(\operatorname{ad}_L x\operatorname{ad}_L y).
\end{align*}
Fix $u\in[H,H]$ and $v\in L$. Write $v=\sum_{\beta\in\Phi}v_\beta$ with $v_\beta\in L_\beta$.
[claim:The bracket shifts generalized weight spaces by adding weights]
For $\beta,\gamma\in\Phi$, define $\beta+\gamma\in H^*$ by $(\beta+\gamma)(h)=\beta(h)+\gamma(h)$ for $h\in H$, and set $L_{\beta+\gamma}=0$ if $\beta+\gamma\notin\Phi$. Then
\begin{align*}
[L_\beta,L_\gamma]\subset L_{\beta+\gamma}.
\end{align*}
[/claim]
[proof]
Fix $x\in L_\beta$ and $y\in L_\gamma$. For $h\in H$, the derivation identity for $\operatorname{ad}_L h$ gives
\begin{align*}
(\operatorname{ad}_L h-(\beta+\gamma)(h)\operatorname{id}_L)[x,y]
=
[(\operatorname{ad}_L h-\beta(h)\operatorname{id}_L)x,y]
+
[x,(\operatorname{ad}_L h-\gamma(h)\operatorname{id}_L)y].
\end{align*}
Since $x\in L_\beta$ and $y\in L_\gamma$, repeated application of this identity and the binomial expansion for the derivation acting on brackets show that a sufficiently high power of $\operatorname{ad}_L h-(\beta+\gamma)(h)\operatorname{id}_L$ annihilates $[x,y]$. This holds for every $h\in H$, so $[x,y]\in L_{\beta+\gamma}$ by the definition of generalized weight space. If $\beta+\gamma\notin\Phi$, the direct-sum decomposition of $L$ has no such summand, so this means $[x,y]=0$.
[/proof]
For $\beta\ne0$, the claim implies that the operator $\operatorname{ad}_L v_\beta$ sends each $L_\gamma$ into $L_{\gamma+\beta}$, with the convention that $L_{\gamma+\beta}=0$ when $\gamma+\beta\notin\Phi$. Thus $\operatorname{ad}_L u\,\operatorname{ad}_L v_\beta$ has no diagonal block with respect to the direct sum $\bigoplus_{\gamma\in\Phi}L_\gamma$, and therefore
\begin{align*}
\operatorname{Tr}(\operatorname{ad}_L u\,\operatorname{ad}_L v_\beta)=0.
\end{align*}
For $\beta=0$, we have $v_0\in L_0=H$. On each $L_\gamma$, the operators $\operatorname{ad}_L u$ and $\operatorname{ad}_L v_0$ are simultaneously upper triangular; by the previous step, $\operatorname{ad}_L u|_{L_\gamma}$ has only zero diagonal entries. Hence the product $\operatorname{ad}_L u\,\operatorname{ad}_L v_0$ has trace $0$ on every $L_\gamma$, so
\begin{align*}
\operatorname{Tr}(\operatorname{ad}_L u\,\operatorname{ad}_L v_0)=0.
\end{align*}
By linearity of trace,
\begin{align*}
K(u,v)
=
\operatorname{Tr}(\operatorname{ad}_L u\operatorname{ad}_L v)
=
\sum_{\beta\in\Phi}
\operatorname{Tr}(\operatorname{ad}_L u\operatorname{ad}_L v_\beta)
=
0.
\end{align*}
Thus $K(u,v)=0$ for every $v\in L$.
Since $L$ is [semisimple](/page/Semisimple%20Lie%20Algebra) and finite-dimensional over a field of characteristic $0$, the Killing form $K$ is nondegenerate by [Cartan's Criterion](/page/Cartan's%20Criterion). Therefore $u=0$. Since $u\in[H,H]$ was arbitrary, $[H,H]=0$, and hence $H$ is abelian.
[guided]
Define the Killing form of $L$ by
\begin{align*}
K: L\times L &\to k \\
(x,y) &\mapsto \operatorname{Tr}(\operatorname{ad}_L x\operatorname{ad}_L y).
\end{align*}
We fix $u\in[H,H]$ and prove that $K(u,v)=0$ for every $v\in L$. Since the previous steps gave the direct-sum decomposition $L=\bigoplus_{\beta\in\Phi}L_\beta$, write
\begin{align*}
v=\sum_{\beta\in\Phi}v_\beta,
\end{align*}
with $v_\beta\in L_\beta$.
The point of the weight decomposition is that brackets move between weight spaces in a controlled way. For $\beta,\gamma\in\Phi$, define $\beta+\gamma\in H^*$ by $(\beta+\gamma)(h)=\beta(h)+\gamma(h)$ for $h\in H$, and set $L_{\beta+\gamma}=0$ if $\beta+\gamma\notin\Phi$. If $x\in L_\beta$ and $y\in L_\gamma$, then the derivation identity for $\operatorname{ad}_L h$ gives
\begin{align*}
(\operatorname{ad}_L h-(\beta+\gamma)(h)\operatorname{id}_L)[x,y]
=
[(\operatorname{ad}_L h-\beta(h)\operatorname{id}_L)x,y]
+
[x,(\operatorname{ad}_L h-\gamma(h)\operatorname{id}_L)y].
\end{align*}
Because $x$ and $y$ are generalized weight vectors, a sufficiently high power of the operator on the left annihilates $[x,y]$ for every $h\in H$. Hence $[L_\beta,L_\gamma]\subset L_{\beta+\gamma}$.
Now take $\beta\ne0$. The inclusion just proved shows that $\operatorname{ad}_L v_\beta$ maps each $L_\gamma$ into $L_{\gamma+\beta}$. Thus $\operatorname{ad}_L u\,\operatorname{ad}_L v_\beta$ has no diagonal block with respect to the direct sum $\bigoplus_{\gamma\in\Phi}L_\gamma$, so its trace is zero:
\begin{align*}
\operatorname{Tr}(\operatorname{ad}_L u\,\operatorname{ad}_L v_\beta)=0.
\end{align*}
For the zero-weight component, $v_0\in L_0=H$. On each $L_\gamma$, the operators $\operatorname{ad}_L u$ and $\operatorname{ad}_L v_0$ are simultaneously upper triangular because they belong to the triangular action of $H$. The previous step proved that $\operatorname{ad}_L u|_{L_\gamma}$ is nilpotent, hence has only zero diagonal entries. Therefore the product $\operatorname{ad}_L u\,\operatorname{ad}_L v_0$ has trace zero on each $L_\gamma$, and summing over the direct-sum decomposition gives
\begin{align*}
\operatorname{Tr}(\operatorname{ad}_L u\,\operatorname{ad}_L v_0)=0.
\end{align*}
By linearity of trace,
\begin{align*}
K(u,v)
&=
\operatorname{Tr}(\operatorname{ad}_L u\operatorname{ad}_L v) \\
&=
\sum_{\beta\in\Phi}
\operatorname{Tr}(\operatorname{ad}_L u\operatorname{ad}_L v_\beta) \\
&=0.
\end{align*}
Thus $u$ is orthogonal to every element of $L$ with respect to the Killing form. Since $L$ is semisimple and finite-dimensional over a field of characteristic $0$, [Cartan's Criterion](/page/Cartan's%20Criterion) says that the Killing form is nondegenerate. Therefore $u=0$. Since the element $u\in[H,H]$ was arbitrary, $[H,H]=0$, which is exactly the statement that $H$ is abelian.
[/guided]
[/step]