Bott & Tu use what they call the "Cech-de Rahm complex" a lot, which is a double complex that uses the Cech differential horizontally and the de rahm differential vertically, with cochains being the algebras of differential forms on finite intersections of opens, for some cover of the manifold. They also prove that every row of the double complex is exact using a partition of unity
I understand most of the theoretical stuff relating to the double complex, including how the rows are exact. But I'm having a lot of trouble with using it practically. One of the exercises has stumped me for weeks:
12.10) compute $H^n(\mathbb{C}P^n)$ from the cohomology of the double complex, using the cover $U_i = \{[z_0,\dots,z_n] | z_i \ne 0\}$.
It's not hard to compute the cohomology of the columns, since the intersection $U_{\alpha_0\dots\alpha_p}$ is diffeomorphic to $\mathbb{R}^{2n - 2p - 2}\times(\mathbb{R}^2-\{0\})^p$ you can use Leray-Hirsch to get $H^q(U_{\alpha_0\dots\alpha_p}) = \displaystyle\bigoplus_{i_0 + \dots + i_p = q} \bigotimes_{k = 0}^p H^{i_k}(S^1)$. For $p < q$ this has to be zero, so columns are exact above the diagonal. Concretely the de rahm cohomology is generated by angular forms going around the points where different complex coordinates are 0.
From here I'm stuck... I know that every closed k-chain has a representative that is only in $C^{\frac{k}{2},\frac{k}{2}}$ or $C^{\frac{k + 1}{2},\frac{k - 1}{2}}$, but I don't know how to turn that into a meaningful conclusion.