[proofplan]
We prove that pullback sends closed $k$-forms on $N$ to closed $k$-forms on $M$, using the naturality identity $d(\varphi^*\omega)=\varphi^*(d\omega)$. Then we check that changing a representative by an exact form changes the pullback by an exact form, so the assignment on cohomology classes is independent of the representative. Finally, linearity follows from linearity of pullback on differential forms and the [vector space](/page/Vector%20Space) structure on the quotient defining de Rham cohomology.
[/proofplan]
[step:Send closed forms to closed forms by commuting pullback with exterior derivative]
Let $\Omega^k(N)$ and $\Omega^k(M)$ denote the vector spaces of smooth differential $k$-forms on $N$ and $M$, respectively. Define the spaces of closed $k$-forms
\begin{align*}
Z^k(N) &:= \{\omega \in \Omega^k(N) : d\omega = 0\}, \\
Z^k(M) &:= \{\alpha \in \Omega^k(M) : d\alpha = 0\}.
\end{align*}
The pullback of $k$-forms is the [linear map](/page/Linear%20Map)
\begin{align*}
\varphi^*: \Omega^k(N) &\to \Omega^k(M).
\end{align*}
If $\omega \in Z^k(N)$, then $d\omega = 0$. By naturality of the [exterior derivative](/theorems/1525) under pullback,
\begin{align*}
d(\varphi^*\omega) = \varphi^*(d\omega) = \varphi^*(0) = 0.
\end{align*}
Thus $\varphi^*\omega \in Z^k(M)$, so pullback restricts to a linear map
\begin{align*}
\varphi^*: Z^k(N) &\to Z^k(M).
\end{align*}
[guided]
We first need the assignment $[\omega] \mapsto [\varphi^*\omega]$ to make sense: if $[\omega]$ is a de Rham cohomology class, then $\omega$ must be closed, and its pullback must also be closed.
Let $\Omega^k(N)$ be the vector space of smooth differential $k$-forms on $N$, and let $\Omega^k(M)$ be the vector space of smooth differential $k$-forms on $M$. The closed $k$-forms are
\begin{align*}
Z^k(N) &:= \{\omega \in \Omega^k(N) : d\omega = 0\}, \\
Z^k(M) &:= \{\alpha \in \Omega^k(M) : d\alpha = 0\}.
\end{align*}
The pullback of forms associated to the smooth map $\varphi: M \to N$ is a linear map
\begin{align*}
\varphi^*: \Omega^k(N) &\to \Omega^k(M).
\end{align*}
Take $\omega \in Z^k(N)$. By definition of $Z^k(N)$, this means $d\omega = 0$. The essential identity is the naturality of the exterior derivative:
\begin{align*}
d(\varphi^*\omega) = \varphi^*(d\omega).
\end{align*}
Substituting $d\omega = 0$ gives
\begin{align*}
d(\varphi^*\omega) = \varphi^*(0) = 0,
\end{align*}
where the last equality uses linearity of pullback. Hence $\varphi^*\omega$ is closed on $M$, so $\varphi^*\omega \in Z^k(M)$. Therefore pullback restricts from all $k$-forms to closed $k$-forms:
\begin{align*}
\varphi^*: Z^k(N) &\to Z^k(M).
\end{align*}
[/guided]
[/step]
[step:Show the cohomology class of the pullback is independent of the representative]
Define the spaces of exact $k$-forms by
\begin{align*}
B^k(N) &:= d\Omega^{k-1}(N) \subset Z^k(N), \\
B^k(M) &:= d\Omega^{k-1}(M) \subset Z^k(M)
\end{align*}
for $k \ge 1$, and set $B^0(N):=\{0\}$ and $B^0(M):=\{0\}$. Suppose $\omega,\omega' \in Z^k(N)$ represent the same class in $H^k_{\mathrm{dR}}(N)$, so $\omega'-\omega \in B^k(N)$.
If $k=0$, then $B^0(N)=\{0\}$, so $\omega'=\omega$ and hence $\varphi^*\omega'=\varphi^*\omega$. If $k \ge 1$, there exists $\eta \in \Omega^{k-1}(N)$ such that
\begin{align*}
\omega' - \omega = d\eta.
\end{align*}
Using linearity of pullback and naturality of $d$,
\begin{align*}
\varphi^*\omega' - \varphi^*\omega
= \varphi^*(\omega' - \omega)
= \varphi^*(d\eta)
= d(\varphi^*\eta).
\end{align*}
Since $\varphi^*\eta \in \Omega^{k-1}(M)$, the difference $\varphi^*\omega' - \varphi^*\omega$ belongs to $B^k(M)$. Therefore $[\varphi^*\omega'] = [\varphi^*\omega]$ in $H^k_{\mathrm{dR}}(M)$.
[guided]
The next issue is well-definedness. A cohomology class $[\omega]$ is not a single form; it is an equivalence class of closed forms modulo exact forms. Therefore we must prove that if $\omega$ and $\omega'$ differ by an exact form on $N$, then their pullbacks differ by an exact form on $M$.
For $k \ge 1$, define
\begin{align*}
B^k(N) &:= d\Omega^{k-1}(N) \subset Z^k(N), \\
B^k(M) &:= d\Omega^{k-1}(M) \subset Z^k(M).
\end{align*}
For $k=0$, define $B^0(N):=\{0\}$ and $B^0(M):=\{0\}$, since there are no $(-1)$-forms in the usual de Rham complex.
Assume $\omega,\omega' \in Z^k(N)$ represent the same de Rham cohomology class. By definition of the quotient
\begin{align*}
H^k_{\mathrm{dR}}(N) := Z^k(N)/B^k(N),
\end{align*}
this means
\begin{align*}
\omega' - \omega \in B^k(N).
\end{align*}
If $k=0$, then $B^0(N)=\{0\}$, so $\omega'-\omega=0$. Hence $\omega'=\omega$, and applying pullback gives $\varphi^*\omega'=\varphi^*\omega$.
Now assume $k \ge 1$. Since $\omega'-\omega \in B^k(N)$, there exists a smooth $(k-1)$-form $\eta \in \Omega^{k-1}(N)$ such that
\begin{align*}
\omega' - \omega = d\eta.
\end{align*}
Pulling this identity back to $M$ and using linearity of pullback gives
\begin{align*}
\varphi^*\omega' - \varphi^*\omega
= \varphi^*(\omega' - \omega).
\end{align*}
Substituting $\omega'-\omega=d\eta$ gives
\begin{align*}
\varphi^*\omega' - \varphi^*\omega
= \varphi^*(d\eta).
\end{align*}
By naturality of the exterior derivative,
\begin{align*}
\varphi^*(d\eta) = d(\varphi^*\eta).
\end{align*}
Since $\eta \in \Omega^{k-1}(N)$, its pullback satisfies $\varphi^*\eta \in \Omega^{k-1}(M)$. Therefore $d(\varphi^*\eta)$ is an exact $k$-form on $M$, so
\begin{align*}
\varphi^*\omega' - \varphi^*\omega \in B^k(M).
\end{align*}
Thus $\varphi^*\omega'$ and $\varphi^*\omega$ define the same class in $H^k_{\mathrm{dR}}(M)$:
\begin{align*}
[\varphi^*\omega'] = [\varphi^*\omega].
\end{align*}
[/guided]
[/step]
[step:Define the induced map and verify linearity]
Define
\begin{align*}
\Phi_k: H^k_{\mathrm{dR}}(N) &\to H^k_{\mathrm{dR}}(M) \\
[\omega] &\mapsto [\varphi^*\omega].
\end{align*}
The previous step proves that $\Phi_k$ is well-defined. Let $a,b \in \mathbb{R}$ and let $[\omega],[\theta] \in H^k_{\mathrm{dR}}(N)$, with $\omega,\theta \in Z^k(N)$. Since pullback is linear on differential forms,
\begin{align*}
\Phi_k(a[\omega]+b[\theta])
&= \Phi_k([a\omega+b\theta]) \\
&= [\varphi^*(a\omega+b\theta)] \\
&= [a\varphi^*\omega+b\varphi^*\theta] \\
&= a[\varphi^*\omega]+b[\varphi^*\theta] \\
&= a\Phi_k([\omega])+b\Phi_k([\theta]).
\end{align*}
Thus $\Phi_k$ is linear. Renaming $\Phi_k$ as $\varphi^*$ gives the asserted induced map on de Rham cohomology:
\begin{align*}
\varphi^*: H^k_{\mathrm{dR}}(N) &\to H^k_{\mathrm{dR}}(M), \qquad
[\omega] \mapsto [\varphi^*\omega].
\end{align*}
[/step]