My proof has a hole there, wonder if anyone can help me fill it in?
$$f^*(w \wedge \theta) = (f^*w) \wedge (f^* \theta)$$
By definition,
$$f^*w(x) = (df_x)^*w[f(x)].$$
So I understand $w[f(x)]$ as the $p$-tensor eats a $p$-vector $f(x)$.
The main problem is, that I don't think the function $f$ whose range is a $p$-dimensional vector space can distribute into $w$ and $\theta$ respectively, as what I hope to reach after the question marks.
In order to make $w \otimes \theta$ makes sense on the left hand side, we want $w$ to eat an $m$-vector and $\theta$ to eat an $n$-vector, where $m+n=p$. Hence, how can each $w$ and $\theta$ eats a $p$-vector $f$?
\begin{eqnarray} f^*(w \wedge \theta) & = &(df_x)^* (w \wedge \theta) (f)\\ & = &(df_x)^* \operatorname{Alt}(w \otimes \theta) (f)\\ & = &(df_x)^* \frac{1}{p!}\sum_{\pi \in S_p}(-1)^\pi(w \otimes \theta)^\pi (f)\\ & = & ???\\ & = &\frac{1}{p!}\sum_{\pi \in S_p}(-1)^\pi((df_x)^*w(f) \otimes (df_x)^*\theta(f))^\pi\\ & = & \operatorname{Alt}[(df_x)^*w(f) \otimes (df_x)^*\theta(f)]\\ & = &(df_x)^*w(f) \wedge (df_x)^*\theta(f)\\ & = &(f^*w) \wedge (f^* \theta). \end{eqnarray}