[proofplan]
Both identities are pointwise statements about alternating $k$-multilinear forms on tangent vectors, so it suffices to verify them at an arbitrary point $x$ on an arbitrary $k$-tuple of vectors $(v_1, \ldots, v_k) \in (\mathbb{R}^m)^k$. Expanding the definition of the pullback collapses each side into a single evaluation of $\omega$ on tangent vectors transported by total derivatives. The composition identity then reduces to the chain rule $D(g \circ f)_x = Dg_{f(x)} \circ Df_x$, while the identity-map case reduces to $D(\operatorname{id}_U)_x = \operatorname{id}_{\mathbb{R}^m}$.
[/proofplan]
[step:Recall the pointwise definition of the pullback]
Fix a smooth map $h: A \to B$ between open subsets $A \subseteq \mathbb{R}^a$ and $B \subseteq \mathbb{R}^b$, and let $\eta \in \Omega^\ell(B)$. The pullback $h^*\eta \in \Omega^\ell(A)$ is the differential $\ell$-form defined pointwise by
\begin{align*}
(h^*\eta)_x: (\mathbb{R}^a)^\ell &\to \mathbb{R} \\
(v_1, \ldots, v_\ell) &\mapsto \eta_{h(x)}\bigl(Dh_x(v_1), \ldots, Dh_x(v_\ell)\bigr),
\end{align*}
for each $x \in A$, where $Dh_x: \mathbb{R}^a \to \mathbb{R}^b$ denotes the total derivative of $h$ at $x$. Since $\eta_{h(x)}$ is an alternating $\ell$-multilinear form on $\mathbb{R}^b$ and $Dh_x$ is linear, $(h^*\eta)_x$ is an alternating $\ell$-multilinear form on $\mathbb{R}^a$, and smoothness of $h$ and $\eta$ ensures $h^*\eta \in \Omega^\ell(A)$.
Two differential forms on $A$ coincide if and only if their values at every point on every tuple of tangent vectors agree. We therefore prove each identity pointwise.
[/step]
[step:Expand $f^*(g^*\omega)$ and $(g \circ f)^*\omega$ at an arbitrary point]
Fix $x \in U$ and $(v_1, \ldots, v_k) \in (\mathbb{R}^m)^k$. Applying the pullback definition twice — first to $f$, then to $g$ — gives
\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) \\
&= \omega_{g(f(x))}\Bigl(Dg_{f(x)}\bigl(Df_x(v_1)\bigr), \ldots, Dg_{f(x)}\bigl(Df_x(v_k)\bigr)\Bigr) \\
&= \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*}
A single application of the pullback definition to the composite $g \circ f: U \to W$ gives
\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) \\
&= \omega_{g(f(x))}\bigl(D(g \circ f)_x(v_1), \ldots, D(g \circ f)_x(v_k)\bigr),
\end{align*}
using $(g \circ f)(x) = g(f(x))$.
[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]
[/step]
[step:Apply the chain rule to identify the two arguments]
By the [Chain Rule for Maps Between Euclidean Spaces](/theorems/323), applied to the smooth composition $g \circ f: U \to W$ at the point $x \in U$, the total derivative of the composite equals the composite of the total derivatives:
\begin{align*}
D(g \circ f)_x = Dg_{f(x)} \circ Df_x \qquad \text{as linear maps } \mathbb{R}^m \to \mathbb{R}^p.
\end{align*}
The hypotheses of the chain rule are met: $f$ is differentiable at $x \in U$ (since $f$ is smooth), $f(x) \in V$ (since $f: U \to V$), and $g$ is differentiable at $f(x)$ (since $g$ is smooth).
Substituting this identity into the expansion of $(g \circ f)^*\omega$ from the previous step,
\begin{align*}
\bigl((g \circ f)^*\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) \\
&= \bigl(f^*(g^*\omega)\bigr)_x(v_1, \ldots, v_k).
\end{align*}
Since $x \in U$ and $(v_1, \ldots, v_k) \in (\mathbb{R}^m)^k$ were arbitrary, $f^*(g^*\omega) = (g \circ f)^*\omega$ as elements of $\Omega^k(U)$.
[/step]
[step:Verify the identity-map case]
Let $\eta \in \Omega^k(U)$, fix $x \in U$, and let $(v_1, \ldots, v_k) \in (\mathbb{R}^m)^k$. The total derivative of the identity map $\operatorname{id}_U: U \to U$ at $x$ is the identity [linear map](/page/Linear%20Map) $\operatorname{id}_{\mathbb{R}^m}: \mathbb{R}^m \to \mathbb{R}^m$ — this is immediate from the definition of the total derivative, since $\operatorname{id}_U(x + h) = x + h = \operatorname{id}_U(x) + \operatorname{id}_{\mathbb{R}^m}(h)$ with zero error. Hence by the definition of the pullback,
\begin{align*}
(\operatorname{id}_U^*\,\eta)_x(v_1, \ldots, v_k)
&= \eta_{\operatorname{id}_U(x)}\bigl(D(\operatorname{id}_U)_x(v_1), \ldots, D(\operatorname{id}_U)_x(v_k)\bigr) \\
&= \eta_x(v_1, \ldots, v_k).
\end{align*}
Since $x$ and $(v_1, \ldots, v_k)$ were arbitrary, $\operatorname{id}_U^*\,\eta = \eta$ in $\Omega^k(U)$. Combined with the composition identity from the previous step, this completes the proof.
[/step]