[proofplan]
The proof reduces the problem from differential topology to algebraic topology via the [de Rham theorem](/theorems/3596), which identifies $H^k_{\mathrm{dR}}$ with singular cohomology with real coefficients — an invariant of the underlying topological space alone. Since a homeomorphism induces an isomorphism on singular cohomology by functoriality, transporting the identification through both manifolds delivers the desired isomorphism on de Rham cohomology. The diffeomorphism statement is then a naturality statement: the de Rham isomorphism intertwines pullback of forms with pullback of singular cochains, so when $f$ is smooth the abstract isomorphism produced is exactly $[f^*]$. Two background results invoked are not yet in the Androma database; they are flagged at first use.
[/proofplan]
[step:Invoke the de Rham theorem to translate to singular cohomology]
For a smooth manifold $X$, write $H^k_{\mathrm{sing}}(X; \mathbb{R})$ for the $k$-th singular cohomology group of the underlying topological space of $X$ with real coefficients. By the **[de Rham theorem](/theorems/3596)** (citing a result not yet in the wiki: de Rham's theorem; see, e.g., Lee, *Introduction to Smooth Manifolds*, Theorem 18.14), for every smooth manifold $X$ and every $k \geq 0$ there is a natural isomorphism of real vector spaces
\begin{align*}
\Phi_X: H^k_{\mathrm{dR}}(X) &\xrightarrow{\ \cong\ } H^k_{\mathrm{sing}}(X; \mathbb{R}) \\
[\omega] &\mapsto \left( \sigma \mapsto \int_\sigma \omega \right),
\end{align*}
where $\sigma$ ranges over smooth singular $k$-simplices and the right-hand side is identified with $H^k_{\mathrm{sing}}(X; \mathbb{R})$ via the smooth-singular comparison isomorphism. Applying this to both $M$ and $N$ produces vector-space isomorphisms
\begin{align*}
\Phi_M: H^k_{\mathrm{dR}}(M) \xrightarrow{\ \cong\ } H^k_{\mathrm{sing}}(M; \mathbb{R}), \qquad
\Phi_N: H^k_{\mathrm{dR}}(N) \xrightarrow{\ \cong\ } H^k_{\mathrm{sing}}(N; \mathbb{R}).
\end{align*}
[guided]
The strategic move is to convert a question about *smooth* invariants into a question about *topological* invariants. De Rham cohomology is, on the face of it, deeply tied to the smooth structure: it is defined using differential forms, which require partial derivatives, which require charts. Two homeomorphic smooth manifolds could in principle have wildly different exotic smooth structures (Milnor's exotic $7$-spheres are the classical example), so it is not obvious that their de Rham cohomologies must agree.
The resolution is the [de Rham theorem](/theorems/3596), which asserts that the smooth invariant $H^k_{\mathrm{dR}}$ is canonically isomorphic to the purely topological invariant $H^k_{\mathrm{sing}}(\,\cdot\,;\mathbb{R})$. The isomorphism $\Phi_X$ is given on a closed form $\omega \in \Omega^k(X)$ by integration over smooth singular simplices: the cohomology class $[\omega]$ is sent to the cochain $\sigma \mapsto \int_\sigma \omega$. [Stokes' theorem](/theorems/1530) implies that this descends to cohomology (closed forms give cocycles, exact forms give coboundaries). The smooth-singular comparison theorem says that smooth singular cohomology coincides with continuous singular cohomology, which is what justifies regarding the target as $H^k_{\mathrm{sing}}(X; \mathbb{R})$.
Applying this theorem separately to $M$ and to $N$ produces two isomorphisms $\Phi_M, \Phi_N$. The de Rham cohomologies are now identified with topological invariants of the underlying spaces — and homeomorphic spaces share their topological invariants, which is the next step.
[/guided]
[/step]
[step:Transport along the homeomorphism via functoriality of singular cohomology]
Singular cohomology is a contravariant functor from the category of topological spaces and continuous maps to the category of graded real vector spaces: a continuous map $g: X \to Y$ induces a [linear map](/page/Linear%20Map) $g^\#: H^k_{\mathrm{sing}}(Y; \mathbb{R}) \to H^k_{\mathrm{sing}}(X; \mathbb{R})$ for each $k$, with $(\mathrm{id}_X)^\# = \mathrm{id}$ and $(g_1 \circ g_2)^\# = g_2^\# \circ g_1^\#$ (citing a result not yet in the wiki: functoriality of singular cohomology; see Hatcher, *Algebraic Topology*, §3.1).
Apply this to the homeomorphism $f: M \to N$ and its continuous inverse $f^{-1}: N \to M$. Functoriality gives
\begin{align*}
(f^{-1})^\# \circ f^\# = (f \circ f^{-1})^\# = (\mathrm{id}_N)^\# = \mathrm{id}_{H^k_{\mathrm{sing}}(N; \mathbb{R})},
\end{align*}
and symmetrically $f^\# \circ (f^{-1})^\# = \mathrm{id}_{H^k_{\mathrm{sing}}(M; \mathbb{R})}$. Hence
\begin{align*}
f^\#: H^k_{\mathrm{sing}}(N; \mathbb{R}) \xrightarrow{\ \cong\ } H^k_{\mathrm{sing}}(M; \mathbb{R})
\end{align*}
is a vector-space isomorphism with inverse $(f^{-1})^\#$.
[guided]
This step is the topological half of the argument and is purely formal: any contravariant functor sends isomorphisms in its source category to isomorphisms in its target category. The source category here is $\mathbf{Top}$ — topological spaces and continuous maps — and the isomorphisms in $\mathbf{Top}$ are precisely the homeomorphisms. So the moment we know that $H^k_{\mathrm{sing}}(\,\cdot\,; \mathbb{R})$ is a functor on $\mathbf{Top}$, we automatically know that homeomorphic spaces have isomorphic singular cohomology.
The verification is the standard categorical one: from $f^{-1} \circ f = \mathrm{id}_M$ and the contravariant functor laws,
\begin{align*}
\mathrm{id}_{H^k_{\mathrm{sing}}(M; \mathbb{R})} = (\mathrm{id}_M)^\# = (f^{-1} \circ f)^\# = f^\# \circ (f^{-1})^\#,
\end{align*}
and similarly the other composition is the identity on $H^k_{\mathrm{sing}}(N; \mathbb{R})$. So $f^\#$ and $(f^{-1})^\#$ are mutually inverse linear maps.
Note that we did **not** need $f$ to be smooth here — only continuous. This is why the theorem is about homeomorphisms, not just diffeomorphisms: the topological invariance is genuinely topological.
[/guided]
[/step]
[step:Compose the three isomorphisms to obtain $H^k_{\mathrm{dR}}(M) \cong H^k_{\mathrm{dR}}(N)$]
Define the [linear map](/page/Linear%20Map)
\begin{align*}
\Psi: H^k_{\mathrm{dR}}(N) &\to H^k_{\mathrm{dR}}(M), \\
\Psi &:= \Phi_M^{-1} \circ f^\# \circ \Phi_N.
\end{align*}
Each factor is a vector-space isomorphism: $\Phi_N$ by the [de Rham theorem](/theorems/3596) applied to $N$, $f^\#$ by Step 2, and $\Phi_M^{-1}$ by the [de Rham theorem](/theorems/3596) applied to $M$. A composition of vector-space isomorphisms is a vector-space isomorphism, so
\begin{align*}
\Psi: H^k_{\mathrm{dR}}(N) \xrightarrow{\ \cong\ } H^k_{\mathrm{dR}}(M).
\end{align*}
This establishes the first claim of the theorem for arbitrary $k \geq 0$.
[/step]
[step:Identify $\Psi$ with the form-pullback in the diffeomorphism case]
Now assume $f: M \to N$ is a diffeomorphism. Then $f$ is in particular smooth, so the pullback of differential forms
\begin{align*}
f^*: \Omega^\bullet(N) &\to \Omega^\bullet(M), \\
\omega &\mapsto f^*\omega
\end{align*}
is a well-defined map of graded algebras commuting with the [exterior derivative](/theorems/1525): $d_M \circ f^* = f^* \circ d_N$. Consequently $f^*$ sends closed forms to closed forms and exact forms to exact forms, hence descends to a [linear map](/page/Linear%20Map)
\begin{align*}
[f^*]: H^k_{\mathrm{dR}}(N) &\to H^k_{\mathrm{dR}}(M), \\
[\omega] &\mapsto [f^*\omega].
\end{align*}
Symmetrically, $[(f^{-1})^*]: H^k_{\mathrm{dR}}(M) \to H^k_{\mathrm{dR}}(N)$ is well defined because $f^{-1}$ is smooth (as $f$ is a diffeomorphism). The chain-rule identity $(f \circ f^{-1})^* = (f^{-1})^* \circ f^* = \mathrm{id}^* = \mathrm{id}$ on $\Omega^\bullet(N)$ (and symmetrically on $\Omega^\bullet(M)$) descends to cohomology, so $[(f^{-1})^*]$ is a two-sided inverse to $[f^*]$. Thus $[f^*]$ is a vector-space isomorphism.
It remains to verify that $[f^*] = \Psi$, so that the abstract isomorphism produced in Step 3 is genuinely realised by the form-pullback. By the naturality clause of the [de Rham theorem](/theorems/3596) (the same citation as Step 1), for every smooth map $g: X \to Y$ between smooth manifolds the diagram
\begin{align*}
\begin{array}{ccc}
H^k_{\mathrm{dR}}(Y) & \xrightarrow{\ [g^*]\ } & H^k_{\mathrm{dR}}(X) \\
\Phi_Y \downarrow & & \downarrow \Phi_X \\
H^k_{\mathrm{sing}}(Y; \mathbb{R}) & \xrightarrow{\ g^\#\ } & H^k_{\mathrm{sing}}(X; \mathbb{R})
\end{array}
\end{align*}
commutes. Applying this to $g = f$ gives $\Phi_M \circ [f^*] = f^\# \circ \Phi_N$, i.e.
\begin{align*}
[f^*] = \Phi_M^{-1} \circ f^\# \circ \Phi_N = \Psi.
\end{align*}
Hence in the diffeomorphism case the isomorphism is the pullback of forms, completing the proof.
[guided]
Two things need to be checked when $f$ is a diffeomorphism. First, that the pullback $f^*$ defines a map on cohomology at all. This requires $f$ to be smooth (so that $f^*$ makes sense as a map on differential forms — the pullback of a form along a merely continuous map is not defined) and uses the standard identity $d \circ f^* = f^* \circ d$ from differential topology: if $\omega$ is closed, $d(f^*\omega) = f^*(d\omega) = 0$, so $f^*\omega$ is closed; if $\omega = d\eta$ is exact, $f^*\omega = f^*d\eta = d(f^*\eta)$ is exact. Hence $f^*$ descends.
That $[f^*]$ is an isomorphism follows from $f$ being a diffeomorphism (not just smooth): we need a smooth inverse to pull back the other way. The chain rule on forms says $(g \circ h)^* = h^* \circ g^*$, so $f^*$ and $(f^{-1})^*$ are mutually inverse on $\Omega^\bullet$, hence on $H^\bullet_{\mathrm{dR}}$.
Second — and this is the substantive content — we want to know that this concrete isomorphism $[f^*]$ is the *same* isomorphism as the abstract $\Psi$ produced in Step 3 by going through singular cohomology. This is where naturality of de Rham's theorem matters. The de Rham isomorphism $\Phi_X$ was defined by integration: $\Phi_X([\omega])(\sigma) = \int_\sigma \omega$ for a smooth singular simplex $\sigma$. Pulling back along a smooth $g$ on the differential-form side corresponds to precomposing with $g$ on the singular-simplex side, because
\begin{align*}
\int_\sigma g^*\omega = \int_{g \circ \sigma} \omega
\end{align*}
by the change-of-variables formula for forms. This is precisely the assertion that the square above commutes. Reading the commutation as $[f^*] = \Phi_M^{-1} \circ f^\# \circ \Phi_N$ identifies the form-pullback with $\Psi$.
The combined statement is that de Rham cohomology is not only a topological invariant abstractly, but that when a smooth model for the homeomorphism is available, the abstract isomorphism is realised by the most natural concrete map one could write down — integration against pulled-back forms.
[/guided]
[/step]