[proofplan]
We prove the identity by translating the Lie bracket into commutators of adjoint endomorphisms. The Jacobi identity gives $\operatorname{ad}_{[x,y]} = \operatorname{ad}_x \circ \operatorname{ad}_y - \operatorname{ad}_y \circ \operatorname{ad}_x$. After substituting this into the definition of the Killing form, the result follows from the cyclicity of the trace for finite-dimensional endomorphisms.
[/proofplan]
[step:Rewrite the adjoint of a bracket as a commutator of adjoint maps]
Fix $x,y,z \in \mathfrak g$. For every $u \in \mathfrak g$, the Jacobi identity gives
\begin{align*}
[[x,y],u] = [x,[y,u]] - [y,[x,u]].
\end{align*}
By the definition of the adjoint endomorphisms, this says
\begin{align*}
\operatorname{ad}_{[x,y]}(u)
= (\operatorname{ad}_x \circ \operatorname{ad}_y)(u) - (\operatorname{ad}_y \circ \operatorname{ad}_x)(u).
\end{align*}
Since this holds for every $u \in \mathfrak g$,
\begin{align*}
\operatorname{ad}_{[x,y]}
= \operatorname{ad}_x \circ \operatorname{ad}_y - \operatorname{ad}_y \circ \operatorname{ad}_x.
\end{align*}
[/step]
[step:Record cyclicity of trace for finite-dimensional endomorphisms]
Let $V$ be a finite-dimensional [vector space](/page/Vector%20Space) over $k$. For any $A,B \in \operatorname{End}_k(V)$,
\begin{align*}
\operatorname{tr}(A \circ B)=\operatorname{tr}(B \circ A).
\end{align*}
Indeed, choosing a basis of $V$ and writing the matrices of $A$ and $B$ as $(A_{ij})$ and $(B_{ij})$, respectively, we compute
\begin{align*}
\operatorname{tr}(AB)
&= \sum_i (AB)_{ii} \\
&= \sum_i \sum_j A_{ij}B_{ji} \\
&= \sum_j \sum_i B_{ji}A_{ij} \\
&= \sum_j (BA)_{jj} \\
&= \operatorname{tr}(BA).
\end{align*}
Thus the trace is cyclic for products of two endomorphisms, and therefore also allows cyclic rotation inside longer finite products, for example
\begin{align*}
\operatorname{tr}(A \circ B \circ C)
= \operatorname{tr}(B \circ C \circ A)
= \operatorname{tr}(C \circ A \circ B).
\end{align*}
[/step]
[step:Apply cyclicity to the trace expression for the Killing form]
Using the definition of $\kappa$ and the commutator identity from the first step, we obtain
\begin{align*}
\kappa([x,y],z)
&= \operatorname{tr}(\operatorname{ad}_{[x,y]} \circ \operatorname{ad}_z) \\
&= \operatorname{tr}\left((\operatorname{ad}_x \circ \operatorname{ad}_y - \operatorname{ad}_y \circ \operatorname{ad}_x) \circ \operatorname{ad}_z\right) \\
&= \operatorname{tr}(\operatorname{ad}_x \circ \operatorname{ad}_y \circ \operatorname{ad}_z)
- \operatorname{tr}(\operatorname{ad}_y \circ \operatorname{ad}_x \circ \operatorname{ad}_z).
\end{align*}
By cyclicity of trace applied to the second term,
\begin{align*}
\operatorname{tr}(\operatorname{ad}_y \circ \operatorname{ad}_x \circ \operatorname{ad}_z)
= \operatorname{tr}(\operatorname{ad}_x \circ \operatorname{ad}_z \circ \operatorname{ad}_y).
\end{align*}
Therefore
\begin{align*}
\kappa([x,y],z)
&= \operatorname{tr}(\operatorname{ad}_x \circ \operatorname{ad}_y \circ \operatorname{ad}_z)
- \operatorname{tr}(\operatorname{ad}_x \circ \operatorname{ad}_z \circ \operatorname{ad}_y) \\
&= \operatorname{tr}\left(\operatorname{ad}_x \circ
(\operatorname{ad}_y \circ \operatorname{ad}_z - \operatorname{ad}_z \circ \operatorname{ad}_y)\right).
\end{align*}
[guided]
The goal is to transform the left-hand side into an expression involving $\operatorname{ad}_{[y,z]}$. From the first step, the adjoint representation converts Lie brackets into commutators of endomorphisms:
\begin{align*}
\operatorname{ad}_{[x,y]}
= \operatorname{ad}_x \circ \operatorname{ad}_y - \operatorname{ad}_y \circ \operatorname{ad}_x.
\end{align*}
Substituting this into the Killing form gives
\begin{align*}
\kappa([x,y],z)
&= \operatorname{tr}(\operatorname{ad}_{[x,y]} \circ \operatorname{ad}_z) \\
&= \operatorname{tr}\left((\operatorname{ad}_x \circ \operatorname{ad}_y - \operatorname{ad}_y \circ \operatorname{ad}_x) \circ \operatorname{ad}_z\right) \\
&= \operatorname{tr}(\operatorname{ad}_x \circ \operatorname{ad}_y \circ \operatorname{ad}_z)
- \operatorname{tr}(\operatorname{ad}_y \circ \operatorname{ad}_x \circ \operatorname{ad}_z).
\end{align*}
The second trace has the factors in the wrong order. Since $\mathfrak g$ is finite-dimensional, trace is cyclic for endomorphisms of $\mathfrak g$, so
\begin{align*}
\operatorname{tr}(\operatorname{ad}_y \circ \operatorname{ad}_x \circ \operatorname{ad}_z)
= \operatorname{tr}(\operatorname{ad}_x \circ \operatorname{ad}_z \circ \operatorname{ad}_y).
\end{align*}
Now both terms begin with $\operatorname{ad}_x$, so they can be combined:
\begin{align*}
\kappa([x,y],z)
&= \operatorname{tr}(\operatorname{ad}_x \circ \operatorname{ad}_y \circ \operatorname{ad}_z)
- \operatorname{tr}(\operatorname{ad}_x \circ \operatorname{ad}_z \circ \operatorname{ad}_y) \\
&= \operatorname{tr}\left(\operatorname{ad}_x \circ
(\operatorname{ad}_y \circ \operatorname{ad}_z - \operatorname{ad}_z \circ \operatorname{ad}_y)\right).
\end{align*}
This is exactly the form needed, because the parenthesized commutator is $\operatorname{ad}_{[y,z]}$.
[/guided]
[/step]
[step:Identify the remaining commutator and conclude invariance]
Applying the commutator identity from the first step with $y$ and $z$ in place of $x$ and $y$ gives
\begin{align*}
\operatorname{ad}_{[y,z]}
= \operatorname{ad}_y \circ \operatorname{ad}_z - \operatorname{ad}_z \circ \operatorname{ad}_y.
\end{align*}
Substituting this into the final trace expression from the previous step yields
\begin{align*}
\kappa([x,y],z)
&= \operatorname{tr}(\operatorname{ad}_x \circ \operatorname{ad}_{[y,z]}) \\
&= \kappa(x,[y,z]).
\end{align*}
Since $x,y,z \in \mathfrak g$ were arbitrary, the Killing form is invariant:
\begin{align*}
\kappa([x,y],z)=\kappa(x,[y,z])
\end{align*}
for all $x,y,z \in \mathfrak g$.
[/step]