[step:Identify forms on $\mathbb{R}P^n$ with antipodal-invariant forms on $S^n$]Let
\begin{align*}
q:S^n &\to \mathbb{R}P^n
\end{align*}
be the smooth quotient map sending a point $x \in S^n$ to the line $[x] \in \mathbb{R}P^n$. We use the standard smooth structure on $\mathbb{R}P^n$ for which $q$ is a smooth two-sheeted covering map. In particular, every evenly covered [open set](/page/Open%20Set) admits smooth local sections of $q$. Let
\begin{align*}
a:S^n &\to S^n,\\
x &\mapsto -x
\end{align*}
be the antipodal map. The deck transformation group of $q$ is
\begin{align*}
G:=\{\operatorname{id}_{S^n},a\}.
\end{align*}
For each $k \in \{0,\dots,n\}$, define the invariant subspace
\begin{align*}
\Omega^k(S^n)^G:=\{\alpha \in \Omega^k(S^n): a^*\alpha=\alpha\}.
\end{align*}
We claim that pullback by $q$ gives an isomorphism of cochain complexes
\begin{align*}
q^*:\Omega^\bullet(\mathbb{R}P^n) &\longrightarrow \Omega^\bullet(S^n)^G.
\end{align*}
First, if $\omega \in \Omega^k(\mathbb{R}P^n)$, then
\begin{align*}
a^*q^*\omega=(q\circ a)^*\omega=q^*\omega,
\end{align*}
because $q\circ a=q$. Hence $q^*\omega$ is $G$-invariant.
Conversely, let $\alpha \in \Omega^k(S^n)^G$. For each point $p \in \mathbb{R}P^n$, choose an open neighbourhood $U_p \subset \mathbb{R}P^n$ evenly covered by $q$, and choose one sheet
\begin{align*}
s_p:U_p &\to S^n
\end{align*}
of the covering map, so that $q\circ s_p=\operatorname{id}_{U_p}$. Define a local $k$-form
\begin{align*}
\omega_p \in \Omega^k(U_p)
\end{align*}
by
\begin{align*}
\omega_p:=s_p^*\alpha.
\end{align*}
If $s_p'$ is the other local sheet over $U_p$, then $s_p'=a\circ s_p$, and therefore
\begin{align*}
(s_p')^*\alpha=s_p^*a^*\alpha=s_p^*\alpha,
\end{align*}
because $\alpha$ is $G$-invariant. Thus the definition is independent of the chosen sheet. On an overlap $U_p\cap U_r$, let $y\in U_p\cap U_r$. The two points $s_p(y)$ and $s_r(y)$ lie in the fibre $q^{-1}(y)$, so either $s_r(y)=s_p(y)$ or $s_r(y)=a(s_p(y))$. Since $U_p\cap U_r$ is open and the two sheets over it are disjoint open subsets of $q^{-1}(U_p\cap U_r)$, this alternative is locally constant. Therefore on each connected component $V$ of $U_p\cap U_r$ we have either $s_r|_V=s_p|_V$ or $s_r|_V=a\circ s_p|_V$. In the first case $s_r^*\alpha=s_p^*\alpha$ on $V$, and in the second case
\begin{align*}
s_r^*\alpha=s_p^*a^*\alpha=s_p^*\alpha
\end{align*}
on $V$. Hence $\omega_p$ and $\omega_r$ agree on $U_p\cap U_r$, so the local forms glue to a unique form
\begin{align*}
\omega \in \Omega^k(\mathbb{R}P^n)
\end{align*}
with $q^*\omega=\alpha$. This proves surjectivity. Injectivity follows because $q$ is surjective: if $q^*\omega=0$, then for every local section $s_p:U_p\to S^n$,
\begin{align*}
\omega|_{U_p}=s_p^*q^*\omega=0.
\end{align*}
Hence $\omega=0$.
Finally, pullback commutes with exterior differentiation:
\begin{align*}
d(q^*\omega)=q^*(d\omega)
\end{align*}
for every $\omega \in \Omega^\bullet(\mathbb{R}P^n)$. Therefore $q^*$ is an isomorphism of cochain complexes, and hence
\begin{align*}
H^k_{\mathrm{dR}}(\mathbb{R}P^n)\cong H^k(\Omega^\bullet(S^n)^G,d)
\end{align*}
for every $k$.[/step]