Direct proof that the wedge product preserves integral cohomology classes? Let $H^k(M,\mathbb R)$ be the De Rham cohomology of a manifold $M$.

There is a canonical map $H^k(M;\mathbb Z) \to H^k(M;\mathbb R)$ from the integral cohomology to the cohomology with coefficients in $\mathbb R$, which is isomorphic to the De Rham cohomology. As a previous question already revealed, the images of this map are precisely the classes of differential $k$-forms $[\omega]$ that yield integers when integrated over a $k$-cycle $\sigma$,

$$ \int_{\sigma} \omega \in \mathbb{Z}  \quad\text{ whenever } d\sigma = 0$$

Let us call them "integral forms".

Motivated by the cup product on cohomology, my question/request is the following:


  Give a direct proof that the wedge product $[\omega\wedge\eta]\in H^{k+l}(M,\mathbb R)$ of two integral forms $\omega\in \Omega^k(M)$ and $\eta\in \Omega^l(M)$ is again an integral form.


This should be true because the cup product is mapped to the wedge product, but the point of the exercise is to prove this statement directly, without constructing the singular cohomology $H^k(M,\mathbb Z)$ or homology first.

Maybe I also have to make sure that the condition of being an integral form is something that can be "checked effectively" without singular homology; this might be subject to a new question.
$\def\ZZ{\mathbb{Z}}\def\RR{\mathbb{R}}$I'm not sure if this is an answer to the question, since it does refer to $H_{\ast}(M, \ZZ)$, but I think it sheds some interesting light on why the problem is hard.

We begin with a flawed proof attempt. Write $\delta$ for the diagonal map $M \to M \times M$, and $\pi_1$ and $\pi_2$ for the projections from $M \times M$ onto its first and second factor. Let $\rho$ be an integer $k+\ell$-cycle and let $\alpha$ and $\beta$ be a $k$-form and an $\ell$-form on $M$. Then $\int_{\rho} \alpha \wedge \beta = \int_{\delta(\sigma)} \pi_1^{\ast}(\alpha) \wedge \pi_2^{\ast}(\beta)$. Suppose $\rho$ were homologous in $M \times M$ to $\sum \sigma_i \times \tau_i$, for various cycles $\sigma_i$ and $\tau_i$ in $H_{\ast}(M)$, with $\dim \sigma_i + \dim \tau_i=k+\ell$. Then we would have 
$$\int_{\rho} \alpha \wedge \beta = \sum \int_{\sigma_i \times \tau_i} \pi_1^{\ast}(\alpha) \wedge \pi_2^{\ast}(\beta) =\sum_{(\dim \sigma_i, \dim \tau_i) = (k, \ell)} \int_{\sigma_i} \alpha \int_{\tau_i} \beta.$$
This would prove the result. (The integrals over terms where $\dim \sigma_i \neq k$ would drop out. If $\dim \sigma_i&lt;k$, then $\pi_1^{\ast}(\alpha)|_{\sigma_i \times \tau_i}=0$ so $\int_{\sigma_i \times \tau_i} \pi_1^{\ast}(\alpha) \wedge \pi_2^{\ast}(\beta)=0$, and likewise if $\dim \tau_i &lt; \ell$.)

Unfortunately, this need not be true. Saying that $\delta(\rho)$ should always be homologous to such a class is saying that $\delta_{\ast} H_m(M)$ should lie in the image of $\bigoplus_{i+j=m} H_i(M, \ZZ) \otimes H_j(M, \ZZ) \to H_{m}(M \times M, \ZZ)$. But the map $\bigoplus_{i+j=m} H_i(M, \ZZ) \otimes H_j(M, \ZZ) \to H_{m}(M \times M, \ZZ)$ need not be surjective -- the cokernel is $\bigoplus_{i+j=m-1} \mathrm{Tor}_1(H_i(M, \ZZ), H_j(M, \ZZ))$ by the Kunneth theorem. There is no reason that $\delta_{\ast}$ needs to land in the image of $\bigoplus H_i \otimes H_j$; I give an example where it doesn't in this Mathoverflow thread, 

So we have to work harder. The good news is that the full statement of Kunneth's theorem includes the statement that
$$0 \to \bigoplus_{i+j=m} H_i(M, \ZZ) \otimes H_j(M, \ZZ) \to H_{m}(M \times M, \ZZ) \to \bigoplus_{i+j=m-1} \mathrm{Tor}_1(H_i(M, \ZZ), H_j(M, \ZZ)) \to 0$$
is (noncanonically) split. Choose such a splitting 
$$\iota: \bigoplus_{i+j=m-1} \mathrm{Tor}_1(H_i(M, \ZZ), H_j(M, \ZZ)) \to H_m(M, \ZZ).$$ 
Then we can write $\delta(\rho) = \sum \sigma_i \times \tau_i + \iota(\sum \phi_j)$ for some $\phi_j$ in Tor groups. But the good news is that Tor groups are torsion, so an integer multiple of $\phi_j$ is homologous to zero. This means that $\int_{\iota(\phi_j)} \pi_1^{\ast}(\alpha) \wedge \pi_2^{\ast}(\beta)$ must be zero. So we still have $\int_{\rho} \alpha \wedge \beta = \sum \int_{\sigma_i \times \tau_i} \pi_1^{\ast}(\alpha) \wedge \pi_2^{\ast}(\beta)$ and now the proof concludes as before. $\square$.

What I find interesting about this argument is two things:

(1) We never had to build cup product in $H^{\ast}(M, \ZZ)$, or prove its compatability with de Rham cohomology, we just tried to shove cycles around naively.

(2) Proving Kunneth with the full statement that the sequence is split is not hard. But I have only ever seen it done in a very algebraic way, not by explicitly writing a cycle on $X \times Y$ as $\sum \sigma_i \times \tau_j + \phi$ for some torsion $\phi$. Moreover, there is no canonical choice of splitting. This may explain why no one seems to be able to prove this in a natural way.
I mostly use cohomology as a blackbox so I may be overlooking technical difficulties but here's how I'd try to prove your statement.

First I would note that being integral is a local property: the class $[\omega]$ of a closed form is integral iff its restrictions $[\omega|_{U_i}]$ to a covering $M = \bigcup U_i$ is integral. One way is obvious: if $\sigma \subset U_i$, then $\int_\sigma \omega|_{U_i} = \int_\sigma \omega$. For the other, we can chose a (finite) triangulation $\sigma = \bigcup \sigma_\alpha$ such that each $\sigma_\alpha$ is included in one of the $U_i$ so that we can write $\int_\sigma \omega = \sum_\alpha \int_{\sigma_{\alpha}} \omega|_{U_{i(\alpha)}}$.  

The point is that you can check integrality by using the triangulation you like.

Then I would write the cup product as $H^i_{dR}(X) \otimes H^j_{dR}(X) \to H^{i+j}_{dR}(X\times X) \to H^{i+j}_{dR}(X)$ the external product followed by restriction to the diagonal. And I'd check that each map sends integral integral classes to integral classes using triangulations.