[proofplan]
We construct an explicit chain homotopy between the pullback maps $f_0^*$ and $f_1^*$ on the de Rham complexes. The operator is obtained by pulling a form on $N$ back to $[0,1]\times M$, inserting the time-direction vector field, and integrating the resulting family of forms over $[0,1]$. The chain homotopy identity shows that the difference $f_1^*\omega-f_0^*\omega$ is exact whenever $\omega$ is closed, so the two pullbacks induce the same map on cohomology.
[/proofplan]
[step:Define the homotopy operator by integrating contraction in the time direction]
Since $f_0$ and $f_1$ are smoothly homotopic, choose a smooth homotopy
\begin{align*}
F: [0,1]\times M &\to N
\end{align*}
from $f_0$ to $f_1$, where $[0,1]$ is regarded as a smooth manifold with boundary. Let $\mathcal{L}^1$ denote one-dimensional Lebesgue measure on $[0,1]$. Thus, for each $t\in[0,1]$, the time-slice map
\begin{align*}
f_t: M &\to N \\
p &\mapsto F(t,p)
\end{align*}
is smooth, with $f_t=F\circ\iota_t$ for the inclusion
\begin{align*}
\iota_t: M &\to [0,1]\times M \\
p &\mapsto (t,p).
\end{align*}
In particular $f_0 = F\circ \iota_0$ and $f_1 = F\circ \iota_1$.
Let $T \in \mathfrak{X}([0,1]\times M)$ denote the smooth vector field tangent to the $[0,1]$ factor, defined by
\begin{align*}
T_{(t,p)}=\frac{\partial}{\partial t}\bigg|_{(t,p)}.
\end{align*}
For each integer $k\geq 1$, define a [linear map](/page/Linear%20Map)
\begin{align*}
I_k: \Omega^k([0,1]\times M) \to \Omega^{k-1}(M)
\end{align*}
as follows. If $\eta \in \Omega^k([0,1]\times M)$, $p \in M$, and $v_1,\dots,v_{k-1}\in T_pM$, then
\begin{align*}
(I_k\eta)_p(v_1,\dots,v_{k-1})
=
\int_0^1
\eta_{(t,p)}
\bigl(
T_{(t,p)},
(d\iota_t)_p(v_1),
\dots,
(d\iota_t)_p(v_{k-1})
\bigr)
\, d\mathcal{L}^1(t).
\end{align*}
For $k=0$, set $I_0=0$, where $\Omega^{-1}(M)$ is interpreted as the zero [vector space](/page/Vector%20Space).
Now define, for every integer $k\geq 0$, the homotopy operator
\begin{align*}
K_k: \Omega^k(N) \to \Omega^{k-1}(M)
\end{align*}
by
\begin{align*}
K_k\omega = I_k(F^*\omega).
\end{align*}
When $k=0$, this means $K_0=0$.
[/step]
[step:Prove the chain homotopy identity on the product cylinder]
We claim that for every integer $k\geq 0$ and every $\eta \in \Omega^k([0,1]\times M)$,
\begin{align*}
\iota_1^*\eta-\iota_0^*\eta
=
d(I_k\eta)+I_{k+1}(d\eta).
\end{align*}
[guided]
The point of this step is to isolate the calculation on the cylinder $[0,1]\times M$. Once it is proved there, applying it to $\eta=F^*\omega$ will give the desired formula for $f_1^*\omega-f_0^*\omega$.
We use the product coordinate $t: [0,1]\times M \to [0,1]$ and write $dt$ for its differential. Every $k$-form $\eta\in\Omega^k([0,1]\times M)$ decomposes uniquely as
\begin{align*}
\eta=\alpha_t+dt\wedge \beta_t,
\end{align*}
where, for each $t\in[0,1]$, $\alpha_t\in\Omega^k(M)$ and $\beta_t\in\Omega^{k-1}(M)$ depend smoothly on $t$. In this notation,
\begin{align*}
I_k\eta=\int_0^1 \beta_t\,d\mathcal{L}^1(t),
\end{align*}
meaning that for $p\in M$ and $v_1,\dots,v_{k-1}\in T_pM$,
\begin{align*}
(I_k\eta)_p(v_1,\dots,v_{k-1})
=
\int_0^1
(\beta_t)_p(v_1,\dots,v_{k-1})
\,d\mathcal{L}^1(t).
\end{align*}
The [exterior derivative](/page/Exterior%20Derivative) on the product separates into the derivative in the $M$ variables and the derivative in the $t$ variable by the product formula for differential forms. Therefore
\begin{align*}
d\eta
&=
d_M\alpha_t
+
dt\wedge \frac{\partial \alpha_t}{\partial t}
-
dt\wedge d_M\beta_t \\
&=
d_M\alpha_t
+
dt\wedge
\left(
\frac{\partial \alpha_t}{\partial t}
-
d_M\beta_t
\right),
\end{align*}
where $d_M$ denotes the [exterior derivative](/theorems/1525) on $M$ applied at fixed $t$. Hence
\begin{align*}
I_{k+1}(d\eta)
=
\int_0^1
\left(
\frac{\partial \alpha_t}{\partial t}
-
d_M\beta_t
\right)
\,d\mathcal{L}^1(t).
\end{align*}
Also, since [exterior differentiation](/page/Exterior%20Derivative) on $M$ is computed coefficientwise in local coordinates, it commutes with integration over the compact interval $[0,1]$ of the smooth family of forms $\beta_t$:
\begin{align*}
d(I_k\eta)
=
d_M\left(\int_0^1 \beta_t\,d\mathcal{L}^1(t)\right)
=
\int_0^1 d_M\beta_t\,d\mathcal{L}^1(t).
\end{align*}
Adding the two identities gives
\begin{align*}
d(I_k\eta)+I_{k+1}(d\eta)
&=
\int_0^1
\frac{\partial \alpha_t}{\partial t}
\,d\mathcal{L}^1(t) \\
&=
\alpha_1-\alpha_0.
\end{align*}
The last equality is the one-dimensional [Fundamental Theorem of Calculus](/theorems/632) applied coefficientwise to the smooth family of forms $\alpha_t$. Since $\iota_t^*dt=0$ and $\iota_t^*\alpha_t=\alpha_t$, we have
\begin{align*}
\iota_t^*\eta=\alpha_t.
\end{align*}
Thus
\begin{align*}
d(I_k\eta)+I_{k+1}(d\eta)
=
\iota_1^*\eta-\iota_0^*\eta.
\end{align*}
This proves the chain homotopy identity.
[/guided]
Indeed, write the unique product decomposition
\begin{align*}
\eta=\alpha_t+dt\wedge\beta_t,
\end{align*}
where $\alpha_t\in\Omega^k(M)$ and $\beta_t\in\Omega^{k-1}(M)$ are smooth families of forms on $M$. Then
\begin{align*}
I_k\eta=\int_0^1\beta_t\,d\mathcal{L}^1(t).
\end{align*}
Using the product formula for the [exterior derivative](/page/Exterior%20Derivative),
\begin{align*}
d\eta
=
d_M\alpha_t
+
dt\wedge
\left(
\frac{\partial \alpha_t}{\partial t}
-
d_M\beta_t
\right).
\end{align*}
Therefore
\begin{align*}
d(I_k\eta)+I_{k+1}(d\eta)
&=
\int_0^1 d_M\beta_t\,d\mathcal{L}^1(t)
+
\int_0^1
\left(
\frac{\partial \alpha_t}{\partial t}
-
d_M\beta_t
\right)
\,d\mathcal{L}^1(t) \\
&=
\int_0^1
\frac{\partial \alpha_t}{\partial t}
\,d\mathcal{L}^1(t) \\
&=
\alpha_1-\alpha_0.
\end{align*}
Since $\iota_t^*dt=0$, we have $\iota_t^*\eta=\alpha_t$, and hence
\begin{align*}
d(I_k\eta)+I_{k+1}(d\eta)
=
\iota_1^*\eta-\iota_0^*\eta.
\end{align*}
[/step]
[step:Apply the chain homotopy identity to the pulled back form]
Let $k\geq 0$ and let $\omega\in\Omega^k(N)$. Apply the identity from the previous step to the form $\eta=F^*\omega\in\Omega^k([0,1]\times M)$. Since [exterior differentiation](/page/Exterior%20Derivative) commutes with [pullback](/page/Pullback) by a smooth map,
\begin{align*}
d(F^*\omega)=F^*(d\omega).
\end{align*}
Also,
\begin{align*}
\iota_1^*(F^*\omega)
=
(F\circ\iota_1)^*\omega
=
f_1^*\omega,
\end{align*}
and
\begin{align*}
\iota_0^*(F^*\omega)
=
(F\circ\iota_0)^*\omega
=
f_0^*\omega.
\end{align*}
Substituting into the cylinder identity gives
\begin{align*}
f_1^*\omega-f_0^*\omega
&=
d(I_k(F^*\omega))+I_{k+1}(d(F^*\omega)) \\
&=
d(K_k\omega)+K_{k+1}(d\omega).
\end{align*}
Thus the pullback chain maps $f_0^*$ and $f_1^*$ are chain homotopic.
[/step]
[step:Pass from the chain homotopy identity to de Rham cohomology]
Let $k\geq 0$ and let $[\omega]\in H_{\mathrm{dR}}^k(N)$ be a de Rham cohomology class represented by a closed form $\omega\in\Omega^k(N)$, so $d\omega=0$. We use the convention already implicit in $K_0=0$ that $\Omega^{-1}(M)$ is the zero vector space and that the differential out of this zero space is the zero map. The identity from the previous step gives
\begin{align*}
f_1^*\omega-f_0^*\omega
=
d(K_k\omega)+K_{k+1}(d\omega)
=
d(K_k\omega).
\end{align*}
Thus $f_1^*\omega-f_0^*\omega$ is exact on $M$. Therefore the two closed forms $f_0^*\omega$ and $f_1^*\omega$ represent the same cohomology class in $H_{\mathrm{dR}}^k(M)$:
\begin{align*}
[f_1^*\omega]=[f_0^*\omega].
\end{align*}
Since this holds for every closed representative $\omega\in\Omega^k(N)$ and every integer $k\geq 0$, the induced maps on de Rham cohomology agree:
\begin{align*}
f_0^*=f_1^*:H_{\mathrm{dR}}^k(N)\to H_{\mathrm{dR}}^k(M).
\end{align*}
[/step]