We state the theorem in full generality and then prove it. The strategy of the proof is the one that has served the
development so far. We verify the claim first in a single coordinate model, where it reduces to the fundamental
theorem of calculus applied one variable at a time. The general case is then assembled from coordinate pieces using
a partition of unity. The model is the upper half-space, and the boundary signs that emerged when its boundary
orientation was computed are exactly the signs that will make the two sides agree.
The degrees match by design. The derivative \(d\omega\) is an \(n\)-form, of exactly the degree integrable over the
\(n\)-manifold \(M\), while \(\omega\) has degree \(n-1\), exactly the degree integrable over the
\((n-1)\)-dimensional boundary. Differentiation raises degree by one and passing to the boundary lowers dimension
by one, so the two operations meet at a single equality. Compact support makes both sides defined even when \(M\)
is noncompact. The support of \(d\omega\) is a closed subset of the compact set \(\operatorname{supp}\omega\),
hence compact. The support of the pullback \(\iota_{\partial M}^*\omega\) is closed in \(\partial M\) and contained
in \(\operatorname{supp}\omega \cap \partial M\), which is compact because \(\partial M\) is closed in \(M\), so
\(\iota_{\partial M}^*\omega\) is compactly supported on \(\partial M\). When \(n = 1\) the boundary is a
\(0\)-manifold, a discrete space whose compact subsets are finite, and the right-hand side is the finite signed sum
fixed by the zero-dimensional convention. When \(\partial M = \varnothing\) the right-hand side is zero, so the
theorem then asserts that the exterior derivative of a compactly supported \((n-1)\)-form integrates to zero over a
boundaryless manifold. That degenerate case will turn out to carry real content.
Proof.
The proof proceeds in three steps of increasing generality: the half-space \(\mathbb{H}^n\) itself, then a form
supported in a single chart, then an arbitrary form patched together from charts. The first step carries all
the analytic content. The later steps are bookkeeping.
Step 1: The upper half-space.
Suppose first that \(M\) is the upper half-space \(\mathbb{H}^n = \{x^n \geq 0\}\) itself, with its standard
orientation. Because \(\omega\) is compactly supported, there is a number \(R \gt 0\) for which the support of
\(\omega\) lies in \((-R, R) \times \cdots \times (-R, R) \times [0, R)\), inside the box
\(A = [-R, R] \times \cdots \times [-R, R] \times [0, R]\). In particular \(\omega\) vanishes on the faces
\(x^i = \pm R\) for \(i \lt n\) and on the face \(x^n = R\). Write \(\omega\) in standard coordinates, using the
hat to mark the omitted factor:
\[
\omega = \sum_{i=1}^{n} \omega_i\, dx^1 \wedge \cdots \wedge \widehat{dx^i} \wedge \cdots \wedge dx^n.
\]
Each \(\omega_i\) is a smooth function vanishing outside \(A\). We compute \(d\omega\) term by term. The
exterior derivative of \(\omega_i\) is \(\sum_j (\partial \omega_i / \partial x^j)\, dx^j\), so
\[
d\omega = \sum_{i, j} \frac{\partial \omega_i}{\partial x^j}\, dx^j \wedge dx^1 \wedge \cdots \wedge \widehat{dx^i}
\wedge \cdots \wedge dx^n.
\]
In the wedge \(dx^j \wedge dx^1 \wedge \cdots \wedge \widehat{dx^i} \wedge \cdots \wedge dx^n\), every
coordinate factor except \(dx^i\) already appears, so the term vanishes unless \(j = i\). When \(j = i\), the
factor \(dx^i\) sits at the front and must be moved into its natural position, passing the \(i - 1\) factors
\(dx^1, \dots, dx^{i-1}\) ahead of it. Each transposition contributes a sign, for a total of \((-1)^{i-1}\).
Hence
\[
d\omega = \sum_{i=1}^{n} (-1)^{i-1}\, \frac{\partial \omega_i}{\partial x^i}\, dx^1 \wedge \cdots \wedge dx^n.
\]
Integrating over \(\mathbb{H}^n\) means erasing the wedges and integrating over the box \(A\). The integrand is
continuous on \(A\), so its integral may be computed as an iterated integral in any order, and for each term we
carry out the \(x^i\)-integration first. The fundamental theorem of calculus turns
the inner integral of \(\partial \omega_i / \partial x^i\) into a difference of boundary values of
\(\omega_i\):
\[
\int_{\mathbb{H}^n} d\omega = \sum_{i=1}^{n} (-1)^{i-1} \int \cdots \int
\Bigl[\, \omega_i\, \Bigr]_{x^i = (\text{lower})}^{x^i = (\text{upper})} \, dx^1 \cdots \widehat{dx^i} \cdots dx^n.
\]
Now the support condition does the pruning. For an index \(i \neq n\), the variable \(x^i\) ranges over the
full interval \([-R, R]\), and \(\omega_i\) vanishes at both endpoints \(x^i = \pm R\). The bracketed
difference is zero, and the entire term drops out. The only surviving term is \(i = n\), where \(x^n\) ranges
over \([0, R]\). At the upper limit \(x^n = R\) the coefficient \(\omega_n\) vanishes, but at the lower limit
\(x^n = 0\) it need not, so the difference of boundary values reduces to
\(-\,\omega_n(x^1, \dots, x^{n-1}, 0)\). Therefore
\[
\int_{\mathbb{H}^n} d\omega = (-1)^{n-1} \cdot (-1) \int_{\mathbb{R}^{n-1}} \omega_n(x^1, \dots, x^{n-1}, 0)\,
dx^1 \cdots dx^{n-1} = (-1)^{n} \int_{\mathbb{R}^{n-1}} \omega_n(\cdot, 0)\, dx^1 \cdots dx^{n-1},
\]
the factor \((-1)\) coming from the lower limit of integration.
It remains to evaluate the other side, \(\int_{\partial \mathbb{H}^n} \omega\). The boundary is
\(\{x^n = 0\}\), identified with \(\mathbb{R}^{n-1}\) through \((x^1, \dots, x^{n-1})\). Pulling \(\omega\)
back to the boundary kills every term but one. For \(i \neq n\), the factor \(dx^n\) survives in the wedge, and
the pullback of \(dx^n\) to the slice \(x^n = 0\) is zero, since \(x^n\) is constant there. Only the \(i = n\)
term survives, since its wedge \(dx^1 \wedge \cdots \wedge dx^{n-1}\) contains no \(dx^n\). So the pullback is
\(\omega_n(x^1, \dots, x^{n-1}, 0)\, dx^1 \wedge \cdots \wedge dx^{n-1}\), and the boundary integral is the
integral of \(\omega_n(\cdot, 0)\) over \(\mathbb{R}^{n-1}\). That integral is taken with the
Stokes orientation of the half-space boundary,
which differs from the standard orientation of \(\mathbb{R}^{n-1}\) by precisely the factor \((-1)^n\).
Inserting it, we obtain
\[
\int_{\partial \mathbb{H}^n} \omega = (-1)^{n} \int_{\mathbb{R}^{n-1}} \omega_n(\cdot, 0)\, dx^1 \cdots dx^{n-1}.
\]
The two computations agree, and the theorem holds on \(\mathbb{H}^n\). For \(n = 1\) the integrals over
\(\mathbb{R}^{n-1}\) degenerate, and the computation reads as follows. The form \(\omega = \omega_1\) is a function,
\(\int_{\mathbb{H}^1} d\omega = -\omega_1(0)\), and \(\partial\mathbb{H}^1 = \{0\}\) is a single point, which the Stokes
orientation marks with the sign \((-1)^1 = -1\), so the signed sum on the right is also \(-\omega_1(0)\).
Replacing \(\mathbb{H}^n\) by \(\mathbb{R}^n\) repeats the computation with one change. The variable \(x^n\)
now also ranges over the full interval \([-R, R]\), so the \(i = n\) term vanishes along with the rest. Both
sides are then zero. The left side vanishes because every boundary difference does, and the right side because
\(\mathbb{R}^n\) has no boundary, so the equality holds trivially.
Step 2: A form supported in one chart.
Let \(M\) now be an arbitrary oriented smooth manifold with boundary, and suppose \(\omega\) is compactly
supported in the domain of a single smooth chart \((U, \varphi)\) that is positively or negatively oriented.
Write \(\varepsilon = \pm 1\) for its sign, with \(\varepsilon = 1\) for a positively oriented chart. We cannot
simply assume \(\varepsilon = 1\), because when \(n = 1\) the right endpoint of \([0, 1]\), with its standard
orientation, admits no positively oriented boundary chart. Suppose first that \((U, \varphi)\) is a boundary chart. The
coordinate form \((\varphi^{-1})^*\omega\) is compactly supported in the open subset \(\varphi(U)\) of \(\mathbb{H}^n\),
so extending it by zero outside \(\varphi(U)\) gives a smooth compactly supported \((n-1)\)-form on \(\mathbb{H}^n\), to
which Step 1 applies. Pushing the form to coordinates, the definition of the integral over a chart gives
\[
\begin{align*}
\int_M d\omega &= \varepsilon \int_{\varphi(U)} \bigl(\varphi^{-1}\bigr)^* d\omega\\\\
&= \varepsilon \int_{\mathbb{H}^n} d\Bigl( \bigl(\varphi^{-1}\bigr)^*\omega \Bigr),
\end{align*}
\]
where the second equality uses the
commutation of
pullback with the exterior derivative, together with the locality of \(d\): the exterior
derivative of the extended form agrees with \(d\bigl((\varphi^{-1})^*\omega\bigr)\) on \(\varphi(U)\) and
vanishes off its compact support. Step 1 equates the last integral with the integral of \((\varphi^{-1})^*\omega\) over
\(\partial \mathbb{H}^n\), taken with its Stokes orientation.
It remains to match that boundary integral with \(\int_{\partial M}\omega\). By
invariance of the boundary,
\[
\partial M \cap U = \varphi^{-1}(\partial\mathbb{H}^n),
\]
and \(\varphi\) restricts to a diffeomorphism \(\varphi_\partial\) of \(\partial M \cap U\) onto the open subset
\(\varphi(U) \cap \partial\mathbb{H}^n\) of \(\partial\mathbb{H}^n\). We claim that, when both boundaries carry
their Stokes orientations, \(\varphi_\partial\) is orientation-preserving if \(\varepsilon = 1\) and
orientation-reversing if \(\varepsilon = -1\). Fix \(p \in \partial M \cap U\). The differential \(d\varphi_p\)
carries positively oriented bases of \(T_pM\) to bases of \(T_{\varphi(p)}\mathbb{H}^n = \mathbb{R}^n\) that are
positively oriented if \(\varepsilon = 1\) and negatively oriented if \(\varepsilon = -1\). Tangency to the
boundary and pointing outward are both
read off from the last component
in the coordinates \((x^i)\), on \(M\) as on \(\mathbb{H}^n\), and \(d\varphi_p\) preserves components.
Hence it carries \(T_p\partial M\) onto \(T_{\varphi(p)}\partial\mathbb{H}^n\) and outward-pointing vectors
to outward-pointing vectors. Now a basis \((E_1, \dots, E_{n-1})\) of \(T_p\partial M\) is positively
oriented for the
Stokes orientation
exactly when \((N_p, E_1, \dots, E_{n-1})\) is a positively oriented basis of \(T_pM\) for an outward-pointing
vector \(N_p\). Any such vector serves equally. Two outward-pointing vectors at \(p\) have negative last
components, so they differ by a positive multiple plus a vector tangent to \(\partial M\), and this change
multiplies the determinant of the enlarged basis by that positive multiple. Applying \(d\varphi_p\) to this
enlarged basis, the condition holds exactly when \((d\varphi_p N_p, d\varphi_p E_1, \dots, d\varphi_p E_{n-1})\)
is positively oriented in \(\mathbb{R}^n\) if \(\varepsilon = 1\), and negatively oriented if
\(\varepsilon = -1\). Since \(d\varphi_p N_p\) is outward-pointing for \(\mathbb{H}^n\), this is exactly the
statement that \((d\varphi_p E_1, \dots, d\varphi_p E_{n-1})\) is positively, respectively negatively, oriented
for the Stokes orientation of \(\partial\mathbb{H}^n\). When \(n = 1\) the bases \((E_i)\) are empty and the same
comparison is made through signs. If \(\mu\) is an orientation form of \(M\), the orientation form
\(\iota^*(N \lrcorner\, \mu)\) given by the proposition on the induced orientation is then the function
\(\mu(N)\), so the sign of a boundary point is \(+\) exactly when an outward vector there is positively oriented,
and \(d\varphi_p\) matches these signs if \(\varepsilon = 1\) and exchanges them if \(\varepsilon = -1\). This
proves the claim.
The form \(\iota_{\partial M}^*\omega\) is supported in \(\partial M \cap U\), and its pullback through
\(\varphi_\partial^{-1}\) is the restriction of \((\varphi^{-1})^*\omega\) to \(\partial\mathbb{H}^n\), because
\[
\varphi^{-1} \circ \iota_{\partial\mathbb{H}^n} = \iota_{\partial M} \circ \varphi_\partial^{-1}
\]
on
\(\varphi(U) \cap \partial\mathbb{H}^n\). Both forms are compactly supported in these open subsets, so their
integrals over the open subsets and over the whole boundaries agree, since charts inside the open subsets
compute both. By part (d) of the
properties of the integral,
diffeomorphism invariance, applied to \(\varphi_\partial^{-1}\), the boundary integral computed over
\(\partial\mathbb{H}^n\) in Step 1 therefore equals \(\varepsilon \int_{\partial M}\omega\). That compatibility
is exactly what the Stokes orientation was defined to secure. Tracing the equalities back, and using
\(\varepsilon^2 = 1\),
\[
\int_M d\omega = \varepsilon \cdot \varepsilon \int_{\partial M} \omega = \int_{\partial M} \omega
\]
for any form supported in a single boundary chart. When \((U, \varphi)\) is an interior chart, \(U\) lies in
\(\operatorname{Int} M\), so \(\operatorname{supp}\omega\) does not meet \(\partial M\) and the right-hand side
is zero. The left-hand side is \(\varepsilon\) times the integral of \(d\bigl((\varphi^{-1})^*\omega\bigr)\), the
coordinate form extended by zero to \(\mathbb{R}^n\), and it vanishes by the \(\mathbb{R}^n\) version of
Step 1.
Step 3: Patching with a partition of unity.
Finally let \(\omega\) be an arbitrary compactly supported \((n-1)\)-form. As in the
definition of the integral,
cover its support by finitely many domains \(U_1, \dots, U_m\) of positively or negatively oriented charts,
and choose a smooth
partition of unity
\(\{\psi_0, \psi_1, \dots, \psi_m\}\) subordinate to the open cover
\(\{M \setminus \operatorname{supp}\omega, U_1, \dots, U_m\}\) of \(M\). Since \(\psi_0\) vanishes on
\(\operatorname{supp}\omega\), we have \(\omega = \sum_{k=1}^{m} \psi_k\,\omega\), and the sums below run over
\(k \geq 1\). Each \(\psi_k \omega\) is a compactly supported \((n-1)\)-form lying inside a single chart, so
Step 2 applies to it. Summing over \(k\),
\[
\begin{align*}
\int_M d\omega
&= \int_M d\!\left( \sum_k \psi_k\, \omega \right)
= \sum_k \int_M d(\psi_k\, \omega)\\\\
&= \sum_k \int_{\partial M} \psi_k\, \omega
= \int_{\partial M} \left( \sum_k \psi_k \right) \omega
= \int_{\partial M} \omega.
\end{align*}
\]
The interchange of \(d\) with the finite sum is the linearity of the exterior derivative, and the interchange
of each integral with the sum is the linearity of the integral. Since the sums are finite, no convergence
question arises. This proves the theorem in general.