[proofplan]
Since there are no $(-1)$-forms, no $0$-form is exact, so $H^0_{\mathrm{dR}}(M)$ coincides with the kernel of $d$ on $\Omega^0(M) = C^\infty(M;\mathbb{R})$. The whole argument is therefore the identification of closed smooth $0$-forms with locally constant functions, and then with functions that are constant on each connected component. The crucial geometric input is that a smooth manifold is locally Euclidean and hence locally path-connected, so its connected components are path-connected — indeed, smoothly path-connected. The map $\Psi$ sending a closed $0$-form to its tuple of component-values is then shown to be linear, injective, and surjective.
[/proofplan]
[step:Identify $H^0_{\mathrm{dR}}(M)$ with the kernel of $d$ on $C^\infty(M;\mathbb{R})$]
By convention $\Omega^k(M) = \{0\}$ for $k < 0$, so the space of exact $0$-forms is $d\bigl(\Omega^{-1}(M)\bigr) = \{0\}$. Hence
\begin{align*}
H^0_{\mathrm{dR}}(M) \;=\; \frac{\ker\bigl(d:\Omega^0(M)\to\Omega^1(M)\bigr)}{\{0\}} \;=\; \ker\bigl(d:\Omega^0(M)\to\Omega^1(M)\bigr).
\end{align*}
Recalling that $\Omega^0(M) = C^\infty(M;\mathbb{R})$, the [Exterior Derivative](/theorems/1525) on a $0$-form $f \in C^\infty(M;\mathbb{R})$ is the smooth $1$-form $df \in \Omega^1(M)$ characterised in any chart $(U,\varphi)$ with coordinates $(x_1,\dots,x_n)$ by
\begin{align*}
df|_U \;=\; \sum_{i=1}^n (\partial_{x_i}f)\, dx_i.
\end{align*}
Thus
\begin{align*}
Z^0(M) \;:=\; \ker\bigl(d:\Omega^0(M)\to\Omega^1(M)\bigr) \;=\; \bigl\{\, f \in C^\infty(M;\mathbb{R}) \;:\; df = 0 \,\bigr\},
\end{align*}
and $H^0_{\mathrm{dR}}(M) = Z^0(M)$ as real vector spaces.
[guided]
The starting observation is purely formal: cohomology is a quotient of cocycles by coboundaries, and at degree zero there are no coboundaries to quotient by. There are no smooth $(-1)$-forms — by convention, $\Omega^k(M) = \{0\}$ for $k < 0$ — so the image of $d:\Omega^{-1}(M)\to\Omega^0(M)$ is the zero subspace. Consequently the cohomology group simplifies to its numerator:
\begin{align*}
H^0_{\mathrm{dR}}(M) \;=\; \frac{\ker\bigl(d:\Omega^0(M)\to\Omega^1(M)\bigr)}{\operatorname{im}\bigl(d:\Omega^{-1}(M)\to\Omega^0(M)\bigr)} \;=\; \ker\bigl(d:\Omega^0(M)\to\Omega^1(M)\bigr).
\end{align*}
A $0$-form is, by definition, a smooth section of the product line bundle $M\times\mathbb{R}\to M$, i.e., a smooth function $f:M\to\mathbb{R}$, so $\Omega^0(M) = C^\infty(M;\mathbb{R})$. The [Exterior Derivative](/theorems/1525) reduces in this degree to the ordinary differential: in any chart $(U,\varphi)$ with coordinates $(x_1,\dots,x_n)$,
\begin{align*}
df|_U \;=\; \sum_{i=1}^n (\partial_{x_i}f)\, dx_i.
\end{align*}
The closed $0$-forms are therefore the smooth functions whose differential vanishes everywhere:
\begin{align*}
Z^0(M) \;=\; \bigl\{\, f \in C^\infty(M;\mathbb{R}) \;:\; df = 0 \,\bigr\}.
\end{align*}
The entire proof has now been reduced to a single question: which smooth functions on $M$ satisfy $df = 0$?
[/guided]
[/step]
[step:Show that $df = 0$ is equivalent to $f$ being locally constant]
Let $f \in C^\infty(M;\mathbb{R})$. We claim $df = 0$ on $M$ if and only if $f$ is locally constant, i.e., every point $p \in M$ has an open neighbourhood on which $f$ is constant.
Assume $df = 0$. Fix $p \in M$ and choose a chart $(U,\varphi)$ with $p \in U$, $\varphi:U\to \varphi(U)\subseteq\mathbb{R}^n$ a diffeomorphism, and $\varphi(U)$ an open ball $B(\varphi(p),r)\subseteq\mathbb{R}^n$ for some $r > 0$ (such a chart exists because $M$ is locally Euclidean and open balls form a basis of $\mathbb{R}^n$). Set $\tilde f := f\circ\varphi^{-1} \in C^\infty(\varphi(U);\mathbb{R})$. In these coordinates the hypothesis $df = 0$ reads $\partial_{x_i}\tilde f \equiv 0$ on $\varphi(U)$ for every $i \in \{1,\dots,n\}$. For any $y \in \varphi(U)$, the straight-line path $\gamma:[0,1]\to\varphi(U)$, $\gamma(t) = (1-t)\varphi(p) + t\, y$, lies in the convex set $\varphi(U)$, and the [Fundamental Theorem of Calculus](/theorems/632) applied to $g := \tilde f\circ\gamma \in C^\infty([0,1];\mathbb{R})$ gives
\begin{align*}
\tilde f(y) - \tilde f(\varphi(p)) \;=\; g(1) - g(0) \;=\; \int_0^1 g'(t)\,d\mathcal{L}^1(t) \;=\; \int_0^1 \sum_{i=1}^n (\partial_{x_i}\tilde f)(\gamma(t))\,(y_i - \varphi(p)_i)\,d\mathcal{L}^1(t) \;=\; 0.
\end{align*}
Hence $\tilde f$ is constant on $\varphi(U)$, so $f$ is constant on $U$. As $p$ was arbitrary, $f$ is locally constant.
Conversely, if $f$ is locally constant then each point has a neighbourhood on which all partial derivatives in any chart vanish identically, so $df = 0$ on $M$.
[guided]
We want to translate the global condition "$df = 0$" into a structural property of $f$. The natural intermediate is being **locally constant**, since vanishing differential is itself a local condition.
Assume $df = 0$. Pick $p \in M$. By the definition of a smooth manifold, $p$ lies in some chart, and we may shrink the chart to a chart $(U,\varphi)$ with $\varphi(U) = B(\varphi(p),r)$ for some $r > 0$ — this is possible because open balls form a basis for the topology of $\mathbb{R}^n$, so we can replace $U$ by $\varphi^{-1}(B(\varphi(p),r))$ for $r$ small enough. Quantifying the shrinking is essential: we need the image $\varphi(U)$ to be **convex** so that straight-line paths stay inside it.
Set $\tilde f := f\circ\varphi^{-1}:\varphi(U)\to\mathbb{R}$, which is smooth. The hypothesis $df = 0$ pulls back to $\partial_{x_i}\tilde f \equiv 0$ on $\varphi(U)$ for every $i$. (This is the coordinate expression of $df$: $df|_U = \sum_i (\partial_{x_i}\tilde f)\circ\varphi\, dx_i$, and a $1$-form vanishes iff all its coefficients vanish.)
To deduce that $\tilde f$ is constant on the ball $\varphi(U) = B(\varphi(p),r)$, we use that the ball is path-connected by straight segments. For $y \in \varphi(U)$, the straight line $\gamma:[0,1]\to\varphi(U)$, $\gamma(t) = (1-t)\varphi(p) + t\, y$, stays in $\varphi(U)$ by convexity. The composite $g := \tilde f\circ\gamma$ is smooth on $[0,1]$ with derivative
\begin{align*}
g'(t) \;=\; \sum_{i=1}^n (\partial_{x_i}\tilde f)(\gamma(t))\,(y_i - \varphi(p)_i) \;=\; 0
\end{align*}
by the chain rule and the vanishing of the partials. The [Fundamental Theorem of Calculus](/theorems/632) (applied to $g$ on $[0,1]$, valid because $g'$ is continuous on $[0,1]$) gives
\begin{align*}
\tilde f(y) - \tilde f(\varphi(p)) \;=\; g(1) - g(0) \;=\; \int_0^1 g'(t)\,d\mathcal{L}^1(t) \;=\; 0,
\end{align*}
so $\tilde f \equiv \tilde f(\varphi(p))$ on $\varphi(U)$. Pulling back to $M$, $f$ is constant on $U$. As $p$ was arbitrary, $f$ is locally constant.
The converse is automatic: if $f$ is constant on a neighbourhood $U$ of $p$, then in any chart its partial derivatives vanish at $p$, so $df_p = 0$; this holds at every $p$, so $df \equiv 0$ on $M$.
Note how the local Euclidean structure is consumed twice here: once to talk about partial derivatives, and once to invoke convexity of small balls so the FTC argument runs.
[/guided]
[/step]
[step:Show locally constant on $M$ equals constant on each connected component]
We claim that for $f \in C^\infty(M;\mathbb{R})$, $f$ is locally constant if and only if $f$ is constant on each connected component of $M$.
The "if" direction is immediate: if $f$ is constant on each component $C \in \pi_0(M)$ and $p \in M$ lies in the component $C_p$, then since each component of a manifold is open (manifolds are locally Euclidean, hence locally connected), $C_p$ is an open neighbourhood of $p$ on which $f$ is constant.
For "only if", suppose $f$ is locally constant. Fix a component $C \in \pi_0(M)$ and any value $c \in \mathbb{R}$ attained by $f$ on $C$; we show $f \equiv c$ on $C$. The set
\begin{align*}
A := \{\, p \in C : f(p) = c \,\}
\end{align*}
is non-empty by choice of $c$. It is open in $C$: for $p \in A$ there is, by local constancy, an open neighbourhood $U_p \subseteq M$ of $p$ on which $f \equiv f(p) = c$, and $U_p \cap C$ is an open neighbourhood of $p$ in $C$ contained in $A$. It is closed in $C$: for $p \in C\setminus A$, local constancy provides an open neighbourhood $V_p \subseteq M$ of $p$ on which $f \equiv f(p) \neq c$, so $V_p \cap C \subseteq C\setminus A$ is an open neighbourhood of $p$ in $C\setminus A$, exhibiting $C\setminus A$ as open in $C$. Since $C$ is connected and $A \subseteq C$ is non-empty, open, and closed, $A = C$. Hence $f \equiv c$ on $C$.
[guided]
We have reduced the problem to a topological statement: locally constant smooth functions on $M$ are exactly the functions constant on each connected component. Neither direction uses smoothness — only connectedness — but smoothness has already done its job in the previous step.
For "if": let $C$ be the connected component containing $p$, and assume $f$ is constant on $C$. Why is $C$ a neighbourhood of $p$? Because $M$ is locally Euclidean: every point of $M$ has a Euclidean (hence connected) neighbourhood. In a topological space where every point has a connected neighbourhood — a **locally connected** space — the connected components are open. Manifolds are locally connected, so $C$ is open in $M$, hence is a neighbourhood of every one of its points. Therefore $f$ is constant on the [open set](/page/Open%20Set) $C \ni p$, so $f$ is locally constant.
For "only if": fix a component $C$ and a value $c$ attained by $f$ on $C$ (pick any $q \in C$ and let $c := f(q)$). We want to show every point of $C$ takes the value $c$. The standard technique for "a property holds on all of a connected space" is the **clopen argument**: show the set where the property holds is non-empty, open, and closed; connectedness then forces it to be the whole component.
Let $A := \{p \in C : f(p) = c\}$.
- **Non-empty.** $q \in A$ by construction.
- **Open in $C$.** Given $p \in A$, by local constancy there is an open $U_p\subseteq M$ with $p \in U_p$ and $f \equiv f(p) = c$ on $U_p$. Then $U_p \cap C$ is open in $C$ (as the trace of an [open set](/page/Open%20Set) of $M$) and is contained in $A$.
- **Closed in $C$.** We show the complement $C\setminus A$ is open in $C$. Given $p \in C\setminus A$, $f(p) \neq c$. By local constancy, there is an open $V_p\subseteq M$ with $f \equiv f(p)$ on $V_p$, so $V_p \cap C$ is an open neighbourhood of $p$ in $C$ on which $f \neq c$, i.e., $V_p\cap C \subseteq C\setminus A$.
Since $C$ is connected and $A$ is a non-empty clopen subset of $C$, $A = C$, so $f \equiv c$ on $C$.
(One can also derive this from the fact that the connected components of a manifold are path-connected — by the [Locally Path-Connected $\implies$ Connectedness Equals Path Connectedness](/theorems/1058) result, since manifolds are locally path-connected as $\mathbb{R}^n$ is — and then transport $f$ along a path. The clopen argument we gave is more elementary and self-contained.)
[/guided]
[/step]
[step:Assemble the isomorphism $\Psi: H^0_{\mathrm{dR}}(M) \to \mathbb{R}^{\pi_0(M)}$]
Combining the previous two steps, the closed $0$-forms are exactly the smooth functions that are constant on each connected component of $M$:
\begin{align*}
H^0_{\mathrm{dR}}(M) \;=\; \bigl\{\, f \in C^\infty(M;\mathbb{R}) \;:\; f \text{ is constant on each } C \in \pi_0(M) \,\bigr\}.
\end{align*}
For each $f \in H^0_{\mathrm{dR}}(M)$ and each $C \in \pi_0(M)$, let $f|_C \in \mathbb{R}$ denote the common value of $f$ on $C$. Define
\begin{align*}
\Psi: H^0_{\mathrm{dR}}(M) &\to \mathbb{R}^{\pi_0(M)} \\
f &\mapsto \bigl(f|_C\bigr)_{C\in\pi_0(M)}.
\end{align*}
$\Psi$ is $\mathbb{R}$-linear because for $f,g \in H^0_{\mathrm{dR}}(M)$, $\lambda,\mu \in \mathbb{R}$, and $C \in \pi_0(M)$ we have $(\lambda f + \mu g)|_C = \lambda f|_C + \mu g|_C$. It is injective: if $\Psi(f) = 0$ then $f|_C = 0$ for every $C \in \pi_0(M)$, and since $M = \bigsqcup_{C\in\pi_0(M)} C$, $f \equiv 0$ on $M$.
For surjectivity, fix any tuple $(a_C)_{C\in\pi_0(M)} \in \mathbb{R}^{\pi_0(M)}$ and define
\begin{align*}
f: M &\to \mathbb{R}, & f(p) &= a_{C_p},
\end{align*}
where $C_p \in \pi_0(M)$ is the unique component containing $p$. Smoothness: each component $C \in \pi_0(M)$ is open in $M$ (since $M$ is locally connected, as noted in the previous step), and $f|_C \equiv a_C$ is constant, hence smooth, on the [open set](/page/Open%20Set) $C$. Since $M = \bigsqcup C$ is the disjoint union of the open sets $C$, smoothness is a local property, and $f$ is constant on a neighbourhood of every point, $f$ is smooth on $M$. By construction $f$ is constant on each component, so $f \in H^0_{\mathrm{dR}}(M)$ and $\Psi(f) = (a_C)_{C\in\pi_0(M)}$.
Therefore $\Psi$ is an isomorphism of real vector spaces, completing the proof. If $|\pi_0(M)| = r$ then $\mathbb{R}^{\pi_0(M)} \cong \mathbb{R}^r$.
[guided]
We now glue Steps 2 and 3: a $0$-form is closed iff it is locally constant iff it is constant on each component. So
\begin{align*}
H^0_{\mathrm{dR}}(M) \;=\; \bigl\{\, f \in C^\infty(M;\mathbb{R}) \;:\; f \text{ is constant on each } C \in \pi_0(M) \,\bigr\}.
\end{align*}
The natural map to record such an $f$ is the tuple of its component values. Define
\begin{align*}
\Psi: H^0_{\mathrm{dR}}(M) &\to \mathbb{R}^{\pi_0(M)} \\
f &\mapsto \bigl(f|_C\bigr)_{C\in\pi_0(M)}.
\end{align*}
This is well-defined precisely because, on a closed $0$-form, $f|_C$ is unambiguous — it is the single value $f$ takes on the component $C$.
**Linearity.** Both $H^0_{\mathrm{dR}}(M)$ and $\mathbb{R}^{\pi_0(M)}$ are $\mathbb{R}$-vector spaces (the latter under pointwise operations). For $f,g \in H^0_{\mathrm{dR}}(M)$, $\lambda,\mu \in \mathbb{R}$, and $C \in \pi_0(M)$: on $C$, $f \equiv f|_C$ and $g \equiv g|_C$, so $\lambda f + \mu g \equiv \lambda f|_C + \mu g|_C$. The component value of $\lambda f + \mu g$ on $C$ is $\lambda f|_C + \mu g|_C$, giving $\Psi(\lambda f + \mu g) = \lambda\Psi(f) + \mu\Psi(g)$.
**Injectivity.** If $\Psi(f) = 0$, then $f|_C = 0$ for every $C$. The components $\{C\}_{C\in\pi_0(M)}$ partition $M$ (this is the definition of $\pi_0$), so every $p \in M$ lies in some $C$, and $f(p) = f|_C = 0$. Hence $f \equiv 0$.
**Surjectivity.** Given a target tuple $(a_C) \in \mathbb{R}^{\pi_0(M)}$, we want to build a closed $0$-form $f$ realising it. Define $f$ by $f(p) := a_{C_p}$, where $C_p$ is the (unique) component containing $p$. This is unambiguous because every point lies in exactly one component. The only nontrivial check is **smoothness**:
- Each component $C \in \pi_0(M)$ is open in $M$, because $M$ is locally connected (every point has a Euclidean neighbourhood, which is connected).
- Therefore $M = \bigsqcup_{C\in\pi_0(M)} C$ as a disjoint union of open sets.
- On each [open set](/page/Open%20Set) $C$, $f|_C \equiv a_C$ is the constant function, which is smooth.
- Smoothness is local: a function on $M$ is smooth iff it is smooth in a neighbourhood of every point. Since each $p \in M$ has the open neighbourhood $C_p$ on which $f$ is constant, $f$ is smooth on $M$.
By construction $f$ is constant on each component, hence $f \in H^0_{\mathrm{dR}}(M)$, and $\Psi(f) = (a_C)$.
So $\Psi$ is an $\mathbb{R}$-linear bijection, i.e., an isomorphism of $\mathbb{R}$-vector spaces. When $|\pi_0(M)| = r$ is finite, $\mathbb{R}^{\pi_0(M)}$ is canonically the product $\mathbb{R}^r$ once we choose an ordering of the components, recovering the form stated in the theorem.
A small final remark: this proof shows the isomorphism is **canonical** — it does not depend on choosing a basepoint in each component, only on labelling the components. The components themselves are intrinsic invariants of $M$, so the isomorphism is genuinely natural.
[/guided]
[/step]