[guided]We need to show that two $k$-forms on $U$ agree. By the previous step, this is equivalent to showing that for every $x \in U$ and every $k$-tuple $(v_1, \ldots, v_k) \in (\mathbb{R}^m)^k$ the two scalar evaluations $\bigl(f^*(g^*\omega)\bigr)_x(v_1, \ldots, v_k)$ and $\bigl((g \circ f)^*\omega\bigr)_x(v_1, \ldots, v_k)$ are equal.
We compute each side by mechanically applying the pullback definition.
For $f^*(g^*\omega)$: the outer pullback is along $f$, so by definition
\begin{align*}
\bigl(f^*(g^*\omega)\bigr)_x(v_1, \ldots, v_k) = (g^*\omega)_{f(x)}\bigl(Df_x(v_1), \ldots, Df_x(v_k)\bigr).
\end{align*}
Now $(g^*\omega)_{f(x)}$ is itself the pullback of $\omega$ along $g$, evaluated at the point $f(x) \in V$, so by definition again
\begin{align*}
(g^*\omega)_{f(x)}\bigl(w_1, \ldots, w_k\bigr) = \omega_{g(f(x))}\bigl(Dg_{f(x)}(w_1), \ldots, Dg_{f(x)}(w_k)\bigr)
\end{align*}
for any $w_1, \ldots, w_k \in \mathbb{R}^n$. Substituting $w_i = Df_x(v_i)$ and gathering the nested compositions yields
\begin{align*}
\bigl(f^*(g^*\omega)\bigr)_x(v_1, \ldots, v_k) = \omega_{g(f(x))}\Bigl((Dg_{f(x)} \circ Df_x)(v_1), \ldots, (Dg_{f(x)} \circ Df_x)(v_k)\Bigr).
\end{align*}
For $(g \circ f)^*\omega$: the pullback is along the single map $g \circ f: U \to W$, so by definition
\begin{align*}
\bigl((g \circ f)^*\omega\bigr)_x(v_1, \ldots, v_k) = \omega_{(g \circ f)(x)}\bigl(D(g \circ f)_x(v_1), \ldots, D(g \circ f)_x(v_k)\bigr),
\end{align*}
and $(g \circ f)(x) = g(f(x))$ by definition of composition, so the base point matches.
The base points $g(f(x))$ are equal on both sides, and we have reduced the equality to comparing the tuples of vectors $\bigl((Dg_{f(x)} \circ Df_x)(v_i)\bigr)_{i=1}^k$ and $\bigl(D(g \circ f)_x(v_i)\bigr)_{i=1}^k$ inside the argument of the same alternating form $\omega_{g(f(x))}$. This is exactly the content of the chain rule, handled in the next step.[/guided]