Mi cohomology es un poco oxidado, así que lo siento por los errores o por estar incompletos. También puede ser que mi sugerencia es demasiado cerca de la singular cohomology solución que usted desea evitar, aunque voy a estar usando Cech cohomology lugar.
Primero vamos a hacer una cubierta $\mathcal{U}=(U_j)_{j\in I}$ $M$ donde todos los $U_j$, así como el $U_J=\cap_{j\in J} U_j$$J\subset I$, son contráctiles (o vacío).
La idea básica es utilizar el doble de complejo
$$
\begin{array}{ccccccccc}
&&0&\rightarrow&C^0(\mathbb{R})&\rightarrow&C^1(\mathbb{R})
&\rightarrow&\cdots\\
&&\downarrow&&\downarrow&&\downarrow&&\downarrow\\
0&\rightarrow&\Omega^0&\rightarrow&C^0(\Omega^0)&\rightarrow&C^1(\Omega^0)
&\rightarrow&\cdots\\
&&\downarrow&&\downarrow&&\downarrow&&\downarrow\\
0&\rightarrow&\Omega^1&\rightarrow&C^0(\Omega^1)&\rightarrow&C^1(\Omega^1)
&\rightarrow&\cdots\\
&&\downarrow&&\downarrow&&\downarrow&&\downarrow\\
\end{array}
$$
donde $C^q(\Omega^p)=C^q(\mathcal{U},\Omega^p)$ se compone de $(\omega_J)_{J\in I_p}$ donde $I_p$ es el conjunto de tamaño $p+1$ subconjuntos de a$I$$\omega_J\in\Omega^p(U_J)$: es decir, el programa de instalación para la definición de la Cech cohomology.
Luego tenemos los mapas de $\delta:C^q(\Omega^p)\rightarrow C^{q+1}(\Omega^p)$,
y $d:C^q(\Omega^p)\rightarrow C^q(\Omega^q)$.
Para mayor comodidad, yo voy a pretender $C^q(\Omega^{-1})=C^q(\mathbb{R})$ $C^{-1}(\Omega^p)=\Omega^p$ (es decir, global $p$-forma que habría denotado $\Gamma(\Omega^p)$, en lugar de sólo $\Omega^p$).
Tenga en cuenta que $H^p(C^q(\Omega^\bullet))=0$ $p\ge 0$ desde formas cerradas son exactas en todos los contráctiles conjuntos de $U_J$.
La prueba de que $H^k(M)=H^k(\Omega^\bullet)$ es igual a $H^k(M;\mathbb{R})=H^k(C^k(\mathbb{R}))$ se realiza por el diagrama de perseguirla.
Empezar con $\omega\in\Omega^k$$d\omega=0$. Esto se asigna a $(\omega^{(0)}_J)_{J\in I_0}\in C^0(\Omega^k)$ por restricción de $\omega$ a cada uno $U_J$, $J\in I_0$. Desde $d\omega^{(0)}_J=0$, $\omega^{(0)}_J=d\upsilon^{(0)}_J$ algunos $\upsilon^{(0)}_J\in\Omega^{k-1}(U_J)$. Esta $(\upsilon^{(0)}_J)$ a continuación, se asigna a $\omega^{(1)}\in C^1(\omega^{k-1})$. Y así vamos, en la hilera que se mueve arriba y a la derecha, hasta llegar a un elemento de $C^k(\mathbb{R})$.
Similar diagrama persiguiendo se usa para mostrar que esta asignación es uno-a-uno el módulo de imágenes $d\Omega^{k-1}$$\delta C^{k-1}(\mathbb{R})$. (Suponiendo que no he mezclado las cosas aquí).
Un $k$forma $\omega$ es integral en $H^k(M)\equiv H^k(M;\mathbb{R})$ si puede ser asignada por el procedimiento anterior para un elemento en $C^k(\mathbb{Z})$.
Así que, aquí está el truco. Deje $\omega$ $\nu$ cerrarse $p$ - $q$- formas resp. correspondiente a la integral cohomology clases. A continuación, podemos replicar todo el diagrama persiguiendo para $\omega$, pero se aplica a $\omega\wedge\nu$ donde a través de cada paso dejamos $\nu$ sin cambios, finalmente, la asignación de $\omega$ a un elemento de $\omega^{(-1)}\in C^p(\mathbb{Z})$. Esto debe resultar en un elemento de $C^p(\Omega^q)$ donde $nu$ restringido a $U_J$ conjuntos se multiplican por los valores enteros de a $\omega^{(q)}_J$.
Después, continuamos haciendo lo mismo con $\nu$:
el $\omega^{(p)}=(\omega^{(p)}_J)_{J\in I_p}$ parte ahora consiste en constantes por el cual las formas se multiplican.
Como he advertido, mi cohomoloogy es un poco oxidados, así que muy probablemente han perdido una serie de problemas técnicos. Sin embargo, creo que este enfoque básico que debe trabajar. Y debe ser un buen ejercicio en el diagrama de perseguirla.