Calculus without global coordinates
The surface of the Earth is a sphere, and no single map of it is faithful everywhere: Mercator's projection sends the poles to infinity, and every flat map tears the sphere somewhere. Yet navigators have always worked happily with local maps that overlap, and so does every GPS receiver today. Wherever two maps overlap, there is a rule converting one set of coordinates into the other.
The same situation appears all over mathematics and physics. The positions of a double pendulum form a torus (two angles); the orientations of a rigid body — a satellite, a drone, a molecule — form the group of rotations, which is not a subset of any in any natural way; the solutions of form a hyperboloid; and in general relativity spacetime is a four-dimensional manifold with no preferred coordinates at all. In each case we want to differentiate (velocities, forces, gradients) and integrate (work, flux, volume), but there are no global coordinates in which to do it.
A smooth manifold is the minimal structure that makes this possible: a space covered by overlapping coordinate charts whose changes of coordinates are smooth. Everything in this lesson — tangent vectors, vector fields, differential forms, Stokes's theorem and de Rham cohomology — is calculus made independent of the chart. The payoff is two-fold: calculus on curved and abstract spaces, and a bridge from calculus to topology, since de Rham cohomology uses derivatives to count holes.
This lesson builds on point-set topology, multivariable calculus (the inverse function theorem in particular), dual spaces and multilinear algebra, and it upgrades the calculus of differential forms on open subsets of ℝⁿ to manifolds.
An atlas of the Earth
An atlas of the Earth is a book of maps. Each page shows a region; neighbouring pages overlap; and in the overlap a point has two pairs of coordinates, related by a conversion formula. Three observations drive the whole theory.
- Local questions are chart questions. Whether a curve on the Earth is smooth, how fast a ship is moving, whether a function has a maximum — these can be decided on any single page that contains the point.
- The answer must not depend on the page. This is guaranteed if the conversion formulas are smooth: a curve that is smooth on one page is then smooth on the other, by the chain rule. That is the entire content of the definition of a smooth atlas.
- Global questions are not chart questions. Whether every closed curve can be shrunk to a point, or whether the wind can blow everywhere at once without a calm spot (the hairy ball theorem), depends on how the pages fit together.
Stereographic projection gives an atlas of the sphere with just two pages: project from the North Pole onto the equatorial plane, and from the South Pole.
On the overlap (everything except the poles) the conversion from north-chart coordinates to south-chart coordinates is , an inversion in the unit circle. It is smooth away from , so the two charts form a smooth atlas. We will prove this, and Lean will check it.
Charts, atlases and smooth structures
Definition— topological manifold
A topological -manifold is a topological space that is Hausdorff, second countable (its topology has a countable base) and locally Euclidean of dimension : every point has an open neighbourhood homeomorphic to an open subset of .
Definition— chart, atlas, smooth structure
A chart on is a pair with open and a homeomorphism onto an open subset of ; the components are local coordinates. Two charts and are smoothly compatible if the transition map
is (its inverse is then too, by symmetry, so it is a diffeomorphism). A smooth atlas is a collection of pairwise compatible charts whose domains cover . Every smooth atlas is contained in a unique maximal one (add every chart compatible with all charts of the atlas). A smooth structure is a maximal smooth atlas, and a smooth manifold is a topological manifold together with a smooth structure.
Definition— smooth map, diffeomorphism
A map between smooth manifolds is smooth if for every there are charts at and at with such that the local representative is . By the chain rule and the smoothness of transition maps this does not depend on the charts chosen. A diffeomorphism is a smooth bijection with smooth inverse. Write for the algebra of smooth functions .
Definition— manifold with boundary
Let be the closed upper half-space. A smooth manifold with boundary is defined in the same way, but with charts onto open subsets of ; a map on a subset of is smooth if it extends locally to a smooth map on an open subset of . The points sent to by some (equivalently, every) chart form the boundary , a smooth -manifold without boundary. The closed disc is a manifold with boundary .
Why Hausdorff and second countable? Hausdorffness makes limits and integral curves unique; second countability guarantees partitions of unity — smooth functions with locally finite supports, each inside a chart, summing to . Partitions of unity are how local constructions (integrals, Riemannian metrics, embeddings) are glued into global ones, and they are why both axioms appear in the definition.
Examples, non-examples and boundary cases
Example— Euclidean space, open subsets and graphs
with the single chart is a smooth manifold. Any open subset of a smooth manifold is one, by restricting charts. So , an open subset of the space of matrices, is a smooth manifold of dimension . The graph of a smooth function ( open) is a smooth -manifold with the single chart .
Example— The sphere, with two stereographic charts
On write points as with , . Stereographic projection from the north pole is , with inverse
and from the south pole it is . With ,
The inversion is smooth on and is its own inverse, so is a smooth atlas of . Its Jacobian determinant is , which is negative: the two charts induce opposite orientations, a fact we return to below.
Example— Real projective space
is the set of lines through in , i.e. , with the quotient topology (it is Hausdorff and second countable). Write for the line through . For each , the set is open and
is a chart (the hat means "omit"). The transition maps divide by one coordinate and are smooth where that coordinate is non-zero. For : and on , and is diffeomorphic to a circle.
Example— Products, tori and configuration spaces
If and are smooth manifolds, products of charts form an atlas of , of dimension . The torus is the configuration space of independent rotors; the double pendulum lives on , and its phase space (positions and momenta) is the -manifold .
Example— Non-examples
- A cross. The union of the two coordinate axes in is not a topological manifold: a small connected neighbourhood of the origin falls into four pieces when the origin is removed, while a connected open subset of falls into two and one of () stays connected. The double cone fails at its apex for the same reason (two pieces).
- The line with two origins. Glue two copies of along . Every point has a neighbourhood homeomorphic to , and the space is second countable, but the two origins cannot be separated by open sets: it is not Hausdorff, and the sequence converges to both origins.
- The cone (one nappe) is a topological manifold, homeomorphic to by vertical projection, and it can be given a smooth structure by declaring that projection a chart. But it is not a smooth embedded submanifold of : no plane is tangent at the apex. A manifold is not "a nice subset of "; smoothness is extra structure.
Example— Different smooth structures, same manifold
On , the single chart is a smooth atlas. It is not compatible with the identity chart, since the transition map is not smooth at ; so it defines a different maximal atlas. Nevertheless is a diffeomorphism from to : its local representative is smooth with smooth inverse. "Different smooth structures" and "non-diffeomorphic smooth manifolds" are different statements. Genuinely exotic structures exist — Milnor's exotic -spheres (1956), and uncountably many smooth structures on — but every topological manifold of dimension at most has a smooth structure, unique up to diffeomorphism (Radó, Moise). See differential topology.
Tangent vectors, differentials and vector fields
There is no ambient space in which to draw arrows, so we define a tangent vector by what it does: it differentiates functions.
Definition— tangent space
A derivation at is a linear map satisfying the Leibniz rule . The derivations at form a vector space, the tangent space .
Two consequences of the Leibniz rule: , so kills constants; and is local — if near then (take a bump function with supported where ; then , so ). By locality, depends only on a neighbourhood of , and a chart with coordinates gives derivations
Theorem— Theorem 1 (dimension of the tangent space)
If , the derivations form a basis of . Every equals .
Proof
By locality we may work in the chart and assume , with smooth on a ball around . Hadamard's lemma: for ,
and the are smooth with . Apply , using that it kills constants and the Leibniz rule:
So : the span. They are independent because . ∎
∎
Definition— differential
The differential of a smooth map at is the linear map , .
The chain rule is now a one-line computation: , so , and . In coordinates on and on , : the matrix of is the Jacobian of the local representative .
Vectors under a change of chart. If and are two coordinate systems at , the chain rule gives . So if , then
The tangent bundle is a smooth -manifold, with charts ; the transition maps are , which are smooth. A vector field is a smooth section . Equivalently, it is a derivation of the algebra , acting by . The Lie bracket is again a vector field (the second derivatives cancel), with in coordinates; it makes the vector fields a Lie algebra.
Theorem— Theorem 2 (fundamental theorem on flows; stated)
Every smooth vector field on has a unique maximal flow: a smooth map , defined on an open subset of containing , such that is the maximal integral curve of starting at . If is compact (or has compact support), the flow is defined on all of , and is a one-parameter group of diffeomorphisms: , .
This is the existence and uniqueness theorem for ODEs, applied in charts and glued using uniqueness (and Hausdorffness); see Lee, Introduction to Smooth Manifolds, Chapter 9. Example: on the field is tangent to the sphere, its flow rotates the sphere about the vertical axis, and it vanishes at the two poles. On the field vanishes nowhere; its flow is the Hopf flow.
Covectors and differential forms
Definition— cotangent space, differential of a function
The cotangent space is the dual . A smooth function has a differential , . In a chart, the form the basis dual to the , and .
Covectors under a change of chart. From , a covector has , that is
Vectors transform by , covectors by the inverse transpose, and the pairing is the same in both charts. This is why the classical literature calls vectors "contravariant" and covectors "covariant", and it is why the gradient of a function is not a vector until a metric is chosen: is a covector, and turning it into a vector needs an inner product on each tangent space (see Riemannian geometry).
Definition— differential forms
A differential -form is a smooth section of the bundle of alternating -linear forms on tangent spaces. In a chart, with smooth coefficients. Write for the space of -forms. The wedge product is graded commutative: for , .
Definition— exterior derivative and pullback
The exterior derivative is the unique family of linear maps such that is the differential of on functions, , and . In a chart, . For smooth the pullback is .
Three facts do most of the work: ; ; and . The identity is the symmetry of second derivatives meeting the antisymmetry of .
Example— Polar coordinates
Let . Then and , so (the Jacobian appears automatically) and
The form on is closed () and is locally of an angle function — but there is no global angle function, and we will see that is not exact.
Definition— orientation and integration
An atlas is oriented if all its transition maps have positive Jacobian determinant; is orientable if it has one (equivalently, a nowhere-vanishing -form). For an -form with compact support in an oriented chart , write and set . In general, for a partition of unity subordinate to an oriented atlas.
This is well defined because, under a change of chart, the form's coefficient changes by while the change-of-variables formula for integrals uses ; the two agree exactly when . That is why we need an oriented atlas to integrate forms. The sphere is orientable: the stereographic charts have , so compose one of them with a reflection. is not orientable, since it contains a Möbius band; in general is orientable exactly when is odd.
The regular value theorem and embeddings
Definition— regular value
Let be smooth. A point is a regular point if is surjective; is a regular value if every point of is regular (in particular if ). A subset is an embedded -dimensional submanifold if each has a chart of with (a slice chart).
Theorem— Theorem 3 (regular value theorem)
Let be smooth, , , and let be a regular value. Then is an embedded submanifold of of dimension (or empty), and .
Proof
The statement is local. Fix and charts centred at and at ; in them becomes a smooth map on an open of , with and of rank (so ). After reordering coordinates, write with invertible. Define . Its Jacobian at is block lower-triangular,
hence invertible, so by the inverse function theorem is a diffeomorphism from a neighbourhood of onto a neighbourhood of . In the new chart (composed with the old one) the map reads , a linear projection, and corresponds to the slice . So has a slice chart of dimension at every point. Finally is constant on , so vanishes on ; thus , and both have dimension (rank–nullity), so they are equal. ∎
∎
Theorem— Corollary 4 (spheres and matrix groups are manifolds)
- is an embedded -dimensional submanifold of , and .
- is an embedded submanifold of of dimension , and is the space of skew-symmetric matrices.
- is an embedded submanifold of dimension , and is the space of trace-zero matrices.
Proof
(1) has , which is onto whenever ; so is a regular value, and .
(2) Let be the space of symmetric matrices, of dimension , and , . Expanding,
so . If and , then satisfies . So is a regular value, , and .
(3) For , , so and is onto . Hence is a regular value and . Expanding shows , so consists of the trace-zero matrices. ∎
∎
Note the codomain in (2): is always symmetric, so as a map into all of the differential is never surjective, and the theorem would not apply. These tangent spaces at the identity are the Lie algebras and of Lie groups.
Theorem— Theorem 5 (Whitney embedding, compact case)
Every compact smooth manifold admits a smooth embedding into some .
Proof
For each choose a chart and a smooth bump function supported in and equal to on an open . By compactness finitely many cover . Let , where is extended by outside (it is smooth). Injective: if and , then , so , and , so . Immersion: near the component equals the chart , whose differential is injective, so is injective. An injective continuous map from a compact space to a Hausdorff space is a homeomorphism onto its image, so is an embedding. ∎
∎
Whitney (1936, 1944) proved much more: every smooth -manifold (second countable and Hausdorff, compact or not) embeds in , and cannot be lowered in general ( does not embed in ). But no embedding is canonical, and nothing intrinsic depends on one.
Stokes's theorem
Let be an oriented -manifold with boundary. Give the Stokes orientation: a basis of is positive when is positive in for an outward-pointing . For the outward vector is , and since has orientation sign , the Stokes orientation of is times the standard one.
Theorem— Theorem 6 (Stokes's theorem)
Let be an oriented smooth -manifold with boundary, with carrying the Stokes orientation, and let be a compactly supported smooth -form on . Then
where the right-hand side is if .
Proof
Step 1: the half-space. Let and , supported in . Then , so
For , integrate first in over (Fubini): by the fundamental theorem of calculus the result is . For , since vanishes at . Hence
On the form restricts to , so only the term survives: . Integrating with the Stokes orientation, which is times the standard one, gives exactly the same number. The same computation with in place of gives , because now every term vanishes.
Step 2: gluing. Cover the compact set by finitely many oriented charts, each onto an open subset of or of , and let be a subordinate partition of unity. Since near , we have there, so
Each is supported in a single chart. Pulling back by that chart preserves integrals (the chart is orientation-preserving), commutes with , and carries to with matching Stokes orientations, so Step 1 gives . Summing over proves the theorem. ∎
∎
For and this is the fundamental theorem of calculus (the boundary is with sign and with sign ). For domains in and it contains Green's theorem, the classical Stokes theorem and the divergence theorem. On a closed manifold (, compact), every exact -form integrates to ; so a volume form on a closed oriented manifold is never exact.
de Rham cohomology
Since , every exact form () is closed (). The failure of the converse measures topology.
Definition— de Rham cohomology
. A smooth induces , since commutes with ; and the wedge product makes a graded-commutative algebra.
is the space of locally constant functions ( means is constant on each component), so is the number of connected components.
Theorem— Theorem 7 (the circle)
Integration over the circle induces an isomorphism , . In particular (the form restricted to ) is closed but not exact.
Proof
Let , ; it is a local diffeomorphism. Every -form on the -manifold is closed, and with smooth and -periodic; for some exactly when for the -periodic function (a smooth periodic descends to a smooth on , because is a local diffeomorphism). Also .
Exact forms integrate to zero: if with periodic, then .
Forms with zero integral are exact: if , let . Then , and , because the integral of a periodic function over a full period does not depend on where the period starts. So is periodic and .
Thus the linear map has kernel exactly the exact forms. It is onto, since , so it induces an isomorphism . ∎
∎
The same argument applied to on shows it is not exact: its integral round the unit circle is , whereas an exact form integrates to round every closed curve. More generally (proofs in Bott–Tu or Lee, Chapters 17–18):
- Poincaré lemma and homotopy invariance: homotopic maps induce the same map on ; hence for , and every closed form is locally exact.
- Computations (by Mayer–Vietoris): for and otherwise; ; , detected by the periods around the punctures.
- Top degree: for a compact connected oriented -manifold without boundary, is an isomorphism (Stokes gives well-definedness; surjectivity is clear; injectivity is the real content).
Theorem— Theorem 8 (de Rham's theorem; stated)
For every smooth manifold , integration of forms over smooth singular chains induces an isomorphism with singular cohomology with real coefficients, compatible with products.
Stokes's theorem, , is precisely the statement that integration is a chain map from the de Rham complex to the singular cochain complex; the theorem (de Rham, 1931) says it is a quasi-isomorphism. So de Rham cohomology is a topological invariant, even though it is defined with derivatives. See algebraic topology.
Smooth manifolds in Lean and Mathlib
Mathlib's manifolds follow the definitions above, with one generalisation: a manifold is modelled on a model with corners , which lets the same definitions cover manifolds without boundary (𝓡 n, modelled on ), with boundary (𝓡∂ n, on a half-space) and with corners. ChartedSpace H M is an atlas, IsManifold I n M says the transition maps are (with ω meaning analytic), ContMDiff is smoothness of maps, and mfderiv is the differential.
First, the stereographic charts. We define the inverse projection from the north pole and the projection from the south pole on for any real inner product space , check that the first lands on the sphere, and prove that the transition map is the inversion, which is smooth on and its own inverse. These are the computations of the sphere example, line by line:
/-- **Inverse stereographic projection from the north pole.** The point `u` of the equatorial
space `E` is sent to the point `(x, t) ∈ E × ℝ` where the line from the north pole `(0, 1)`
through `(u, 0)` meets the unit sphere again:
`x = 2u / (‖u‖² + 1)`, `t = (‖u‖² - 1) / (‖u‖² + 1)`. -/
noncomputable def stereoInvNorth (u : E) : E × ℝ :=
((2 / (‖u‖ ^ 2 + 1)) • u, (‖u‖ ^ 2 - 1) / (‖u‖ ^ 2 + 1))/-- The inverse stereographic projection really lands on the unit sphere `‖x‖² + t² = 1`.
With `r = ‖u‖²` the claim is `4r + (r - 1)² = (r + 1)²`, an identity of polynomials. -/
theorem stereoInvNorth_mem_sphere (u : E) :
‖(stereoInvNorth u).1‖ ^ 2 + (stereoInvNorth u).2 ^ 2 = 1 := by
have hpos : (0 : ℝ) < ‖u‖ ^ 2 + 1 := by positivity
simp only [stereoInvNorth, norm_smul, Real.norm_eq_abs, abs_div, abs_two,
abs_of_pos hpos, mul_pow, div_pow]
field_simp
ring/-- **Stereographic projection from the south pole** `(0, -1)`: the point `(x, t)` of the sphere
(with `t ≠ -1`) is sent to `x / (1 + t)`, where the line from the south pole through `(x, t)`
meets the equatorial space. -/
noncomputable def stereoSouth (p : E × ℝ) : E :=
(1 / (1 + p.2)) • p.1/-- The **inversion** `u ↦ u / ‖u‖²` in the unit sphere of `E`, defined on `E ∖ {0}`. -/
noncomputable def inversion (u : E) : E :=
(‖u‖ ^ 2)⁻¹ • u/-- **The transition map between the two stereographic charts is the inversion.** For `u ≠ 0`,
going up to the sphere by the north chart and down again by the south chart gives
`u / ‖u‖²`. This is the computation in the lesson:
`(2u/(r+1)) / (1 + (r-1)/(r+1)) = (2u/(r+1)) / (2r/(r+1)) = u/r`, with `r = ‖u‖²`. -/
theorem transition_map {u : E} (hu : u ≠ 0) :
stereoSouth (stereoInvNorth u) = inversion u := by
have hr : ‖u‖ ^ 2 ≠ 0 := by positivity
have hpos : ‖u‖ ^ 2 + 1 ≠ 0 := by positivity
simp only [stereoSouth, stereoInvNorth, inversion, smul_smul]
congr 1
field_simp
ring/-- The inversion is its own inverse on `E ∖ {0}`: `‖u / ‖u‖²‖ = 1/‖u‖`, so inverting again
multiplies by `‖u‖²` and returns `u`. So the transition map is a bijection of `E ∖ {0}`, as the
transition map between two charts must be. -/
theorem inversion_inversion {u : E} (hu : u ≠ 0) : inversion (inversion u) = u := by
have hn : ‖u‖ ≠ 0 := norm_ne_zero_iff.mpr hu
have key : ((‖(‖u‖ ^ 2)⁻¹ • u‖ ^ 2)⁻¹ * (‖u‖ ^ 2)⁻¹ : ℝ) = 1 := by
rw [norm_smul, norm_inv, norm_pow, norm_norm]
field_simp
simp only [inversion, smul_smul, key, one_smul]/-- The transition map is **smooth** (`C^∞`) on `E ∖ {0}`: it is the product of the smooth
function `u ↦ (‖u‖²)⁻¹` (smooth where `‖u‖² ≠ 0`) and the identity. Together with
`transition_map` this is what makes the two stereographic charts a smooth atlas. -/
theorem inversion_smooth : ContDiffOn ℝ ∞ (inversion (E := E)) {u | u ≠ 0} := by
have h1 : ContDiffOn ℝ ∞ (fun u : E => (‖u‖ ^ 2)⁻¹) {u | u ≠ 0} :=
(contDiff_norm_sq ℝ).contDiffOn.inv fun u hu => by
have : u ≠ 0 := hu
positivity
exact h1.smul contDiffOn_idMathlib uses exactly these charts to make the unit sphere of a manifold, and we cite its instance:
/-- **The `n`-sphere is a smooth manifold** (indeed analytic: `ω`), modelled on `ℝⁿ`, with the
stereographic charts. This is Mathlib's instance `EuclideanSpace.instIsManifoldSphere`. -/
theorem sphere_is_manifold (n : ℕ) :
IsManifold (𝓡 n) ω (Metric.sphere (0 : EuclideanSpace ℝ (Fin (n + 1))) 1) :=
inferInstanceNext, the two algebraic facts behind Corollary 4(2): the expansion of , whose linear term is , and the surjectivity of onto symmetric matrices at an orthogonal :
/-- Expanding `F(A) = AᵀA` along the line `A + tH`:
`(A + tH)ᵀ(A + tH) = AᵀA + t(AᵀH + HᵀA) + t²HᵀH`. The coefficient of `t` is the derivative
`dF_A(H) = AᵀH + HᵀA`. -/
theorem gram_expansion (A H : Matrix n n ℝ) (t : ℝ) :
(A + t • H)ᵀ * (A + t • H) = Aᵀ * A + t • (Aᵀ * H + Hᵀ * A) + t ^ 2 • (Hᵀ * H) := by
simp only [Matrix.transpose_add, Matrix.transpose_smul, Matrix.add_mul, Matrix.mul_add,
Matrix.smul_mul, Matrix.mul_smul, smul_add, smul_smul, pow_two]
abel/-- **The identity is a regular value of `A ↦ AᵀA`.** At an orthogonal matrix `A`, the derivative
`H ↦ AᵀH + HᵀA` maps onto the symmetric matrices: for symmetric `S`, the matrix `H = ½ A S` is a
preimage, because `Aᵀ(½AS) + (½AS)ᵀA = ½S + ½SᵀAᵀA = S`. By the regular value theorem,
`O(n) = F⁻¹(I)` is a manifold of dimension `n² - n(n+1)/2 = n(n-1)/2`. -/
theorem orthogonal_regular_value [DecidableEq n] {A S : Matrix n n ℝ} (hA : Aᵀ * A = 1) (hS : Sᵀ = S) :
Aᵀ * ((1 / 2 : ℝ) • (A * S)) + ((1 / 2 : ℝ) • (A * S))ᵀ * A = S := by
rw [Matrix.transpose_smul, Matrix.transpose_mul, hS, Matrix.mul_smul, Matrix.smul_mul,
← Matrix.mul_assoc, hA, Matrix.mul_assoc, hA, Matrix.one_mul, Matrix.mul_one, ← add_smul]
norm_numThe chain rule for manifolds, i.e. functoriality of the tangent map:
/-- **The chain rule on manifolds**: the tangent map of a composite is the composite of the
tangent maps, `T(g ∘ f) = Tg ∘ Tf`. In the language of categories, `T` is a functor. This is
Mathlib's `mfderiv_comp`. -/
theorem chain_rule {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type*} [TopologicalSpace H] {I : ModelWithCorners ℝ E H}
{M : Type*} [TopologicalSpace M] [ChartedSpace H M]
{E' : Type*} [NormedAddCommGroup E'] [NormedSpace ℝ E']
{H' : Type*} [TopologicalSpace H'] {I' : ModelWithCorners ℝ E' H'}
{M' : Type*} [TopologicalSpace M'] [ChartedSpace H' M']
{E'' : Type*} [NormedAddCommGroup E''] [NormedSpace ℝ E'']
{H'' : Type*} [TopologicalSpace H''] {I'' : ModelWithCorners ℝ E'' H''}
{M'' : Type*} [TopologicalSpace M''] [ChartedSpace H'' M'']
{f : M → M'} {g : M' → M''} (x : M)
(hg : MDifferentiableAt I' I'' g (f x)) (hf : MDifferentiableAt I I' f x) :
mfderiv I I'' (g ∘ f) x = (mfderiv I' I'' g (f x)).comp (mfderiv I I' f x) :=
mfderiv_comp x hg hfFinally Theorem 7, in the coordinate : a -form on the circle is with continuous and -periodic, and it is exact when is the derivative of a -periodic function. Both halves of the proof are formalised — exact forms have period zero by the fundamental theorem of calculus; forms with period zero have the periodic primitive — and combined into the "if and only if" that says :
/-- **Exact forms have zero period.** If `g` is `T`-periodic with continuous derivative `f`, then
`∫₀ᵀ f = g(T) - g(0) = 0`, by the fundamental theorem of calculus. -/
theorem exact_integral_zero {T : ℝ} {f g : ℝ → ℝ} (hg : Function.Periodic g T)
(hderiv : ∀ x, HasDerivAt g (f x) x) (hf : Continuous f) :
∫ x in (0 : ℝ)..T, f x = 0 := by
rw [intervalIntegral.integral_eq_sub_of_hasDerivAt (fun x _ => hderiv x)
(hf.intervalIntegrable 0 T)]
have := hg 0
rw [zero_add] at this
rw [this, sub_self]/-- **`dθ` is closed but not exact on the circle.** There is no `2π`-periodic function `g` with
`g' = 1`: its integral over a period would be `0`, but `∫₀^{2π} 1 dθ = 2π`. -/
theorem dtheta_not_exact :
¬ ∃ g : ℝ → ℝ, Function.Periodic g (2 * Real.pi) ∧ ∀ x, HasDerivAt g 1 x := by
rintro ⟨g, hg, hderiv⟩
have h := exact_integral_zero (f := fun _ => (1 : ℝ)) hg hderiv continuous_const
simp only [intervalIntegral.integral_const, sub_zero, smul_eq_mul, mul_one] at h
exact Real.pi_ne_zero (by linarith)/-- **Forms with zero period are exact.** If `f` is continuous and `T`-periodic with
`∫₀ᵀ f = 0`, then `G(x) = ∫₀ˣ f` is `T`-periodic (because `∫ₓ^{x+T} f` does not depend on `x`)
and `G' = f` (the fundamental theorem of calculus). -/
theorem primitive_periodic {T : ℝ} {f : ℝ → ℝ} (hf : Continuous f)
(hper : Function.Periodic f T) (hzero : ∫ x in (0 : ℝ)..T, f x = 0) :
Function.Periodic (fun x => ∫ t in (0 : ℝ)..x, f t) T ∧
∀ x, HasDerivAt (fun x => ∫ t in (0 : ℝ)..x, f t) (f x) x := by
refine ⟨fun x => ?_, fun x => ?_⟩
· have hsplit : ∫ t in (0 : ℝ)..x + T, f t = (∫ t in (0 : ℝ)..x, f t) + ∫ t in x..x + T, f t :=
(intervalIntegral.integral_add_adjacent_intervals (hf.intervalIntegrable _ _)
(hf.intervalIntegrable _ _)).symm
have hshift : ∫ t in x..x + T, f t = ∫ t in (0 : ℝ)..0 + T, f t :=
hper.intervalIntegral_add_eq x 0
simp only
rw [hsplit, hshift, zero_add, hzero, add_zero]
· exact intervalIntegral.integral_hasDerivAt_right (hf.intervalIntegrable _ _)
hf.aestronglyMeasurable.stronglyMeasurableAtFilter hf.continuousAt/-- **`H¹_dR(S¹) ≅ ℝ`, via the period.** A continuous `T`-periodic `f` (a 1-form `f dθ` on the
circle) is the derivative of a `T`-periodic function (is exact) **if and only if** its period
`∫₀ᵀ f` vanishes. So the linear map "integrate over the circle" from closed 1-forms to `ℝ` has
kernel exactly the exact forms; it is onto (the constant `1` has period `T`), so for `T ≠ 0` it
induces an isomorphism `H¹_dR(S¹) ≅ ℝ`. -/
theorem de_rham_circle {T : ℝ} {f : ℝ → ℝ} (hf : Continuous f) (hper : Function.Periodic f T) :
(∃ g : ℝ → ℝ, Function.Periodic g T ∧ ∀ x, HasDerivAt g (f x) x) ↔
∫ x in (0 : ℝ)..T, f x = 0 := by
constructor
· rintro ⟨g, hg, hderiv⟩
exact exact_integral_zero hg hderiv hf
· intro hzero
exact ⟨_, primitive_periodic hf hper hzero⟩What is and is not formalised. Independently proved: the stereographic computations (the image lies on the sphere, the transition map is the inversion, it is an involution and smooth), the expansion and surjectivity behind , and the circle computation of Theorem 7, in the coordinate on (continuous rather than smooth , which is slightly more general). Cited from Mathlib: the manifold structure on spheres and the chain rule. Not formalised: the regular value theorem itself (Mathlib has the inverse and implicit function theorems on Banach spaces, but not yet the theorem for manifolds), differential forms on manifolds, Stokes's theorem on manifolds with boundary (Mathlib has the divergence theorem on boxes), and de Rham's theorem.
Charts, covectors and periods, computed
The first program computes, exactly, the transition map between the two stereographic charts of and its Jacobian. It then moves a tangent vector and a covector from one chart to the other: vector components by , covector components by . The pairing is the same in both charts; moving the covector by (the classic mistake) changes it.
"""Two charts on the sphere, and the two transformation laws.
The 2-sphere is covered by the stereographic charts from the north and the
south pole. SymPy computes the transition map between them, its Jacobian
matrix J and its determinant, exactly. Then it takes a tangent vector and a
covector at one point, written in the first chart, and transforms them to the
second chart: vector components by J, covector components by the inverse
transpose of J. The pairing "covector applied to vector" comes out the same in
both charts, as it must; transforming the covector by J instead (the classic
mistake) gives a different number. This is exact symbolic computation for one
explicit chart change, not a proof of the general laws.
"""
import sympy
U, V = sympy.symbols("u v", real=True)
def north_inverse(u, v):
"""Inverse stereographic projection from the north pole: R^2 -> S^2."""
r = u**2 + v**2
return (2 * u / (r + 1), 2 * v / (r + 1), (r - 1) / (r + 1))
def south_chart(x, y, z):
"""Stereographic projection from the south pole: S^2 minus (0,0,-1) -> R^2."""
return (x / (1 + z), y / (1 + z))
def transition():
"""The transition map south o north^-1, simplified, as a pair."""
x, y, z = north_inverse(U, V)
return tuple(sympy.simplify(c) for c in south_chart(x, y, z))
def jacobian(pair):
"""Jacobian matrix of a pair of expressions in (u, v)."""
return sympy.Matrix(pair).jacobian([U, V])
def on_sphere(u, v):
"""x^2 + y^2 + z^2 - 1 for the image of (u, v): it should simplify to 0."""
x, y, z = north_inverse(u, v)
return sympy.simplify(x**2 + y**2 + z**2 - 1)
def transform(J, vector, covector):
"""New components: vectors by J, covectors by (J^-1)^T, and the wrong rule."""
new_vector = J * vector
new_covector = J.inv().T * covector
wrong_covector = J * covector
return new_vector, new_covector, wrong_covector
def pairing(covector, vector):
"""The number covector(vector) = sum of products of components."""
return sympy.nsimplify((covector.T * vector)[0, 0])
def main():
t = transition()
J = jacobian(t)
det = sympy.factor(J.det())
print("Charts: north^-1(u, v) on the sphere?", on_sphere(U, V) == 0)
print(f"Transition south o north^-1: {t}")
print(f"Jacobian determinant: {det}")
inv = sympy.simplify(jacobian(t).subs({U: t[0], V: t[1]}, simultaneous=True)
* J)
print(f"J(T(p)) * J(p) = identity (T is its own inverse): {inv == sympy.eye(2)}")
print()
point = {U: 1, V: 2}
Jp = J.subs(point)
vector = sympy.Matrix([3, -1])
covector = sympy.Matrix([2, 5])
new_v, new_w, wrong_w = transform(Jp, vector, covector)
print("At the point (u, v) = (1, 2) of the north chart:")
print(f" J = {Jp.tolist()}")
print(f" vector {vector.T.tolist()[0]} -> {new_v.T.tolist()[0]} (by J)")
print(f" covector {covector.T.tolist()[0]} -> {new_w.T.tolist()[0]}"
" (by inverse transpose)")
print(f" pairing in chart 1: {pairing(covector, vector)}")
print(f" pairing in chart 2: {pairing(new_w, new_v)}")
print(f" pairing if the covector is wrongly moved by J:"
f" {pairing(wrong_w, new_v)}")
print()
print("The determinant is negative everywhere: these two charts reverse")
print("orientation relative to each other. Composing one with (u, v) -> (u, -v)")
print("gives an oriented atlas, so the sphere is orientable.")
print()
print("Epistemic status: exact symbolic computation (SymPy) for one chart")
print("change and one point. It illustrates, but does not prove, the general")
print("transformation laws, which follow from the chain rule.")
if __name__ == "__main__":
main()The determinant is negative everywhere, as predicted by the sphere example: the two charts are individually fine but orientation-incompatible. This is exact computation for one chart change, an illustration rather than a proof; the general laws are consequences of the chain rule.
The second program checks Stokes's theorem for on the unit disc and computes periods of the closed form round several loops in the punctured plane, and of a combination of two angle forms in the twice-punctured plane.
"""Stokes's theorem on a disc, and periods of closed 1-forms.
Part 1 checks Stokes's theorem numerically for the 1-form x^3 dy on the unit
disc: the line integral round the circle and the area integral of
d(x^3 dy) = 3x^2 dx^dy both approximate 3*pi/4.
Part 2 integrates the closed form dtheta = (x dy - y dx)/(x^2 + y^2) on the
punctured plane round several loops. Its periods are 2*pi times winding
numbers, never anything else, and round a loop that misses the puncture the
period is 0, as Stokes predicts. With two punctures, a closed form is
determined up to exact forms by its two periods: H^1 of the twice-punctured
plane is R^2. All integrals are computed by quadrature (numerical evidence).
"""
import math
def line_integral(form, curve, n=4000):
"""Integral of the 1-form P dx + Q dy along a closed curve on [0, 2*pi].
``form(x, y)`` returns (P, Q); ``curve(t)`` returns (x, y, dx/dt, dy/dt).
The trapezoid rule on a periodic integrand is very accurate.
"""
h = 2 * math.pi / n
total = 0.0
for k in range(n):
x, y, dx, dy = curve(k * h)
p, q = form(x, y)
total += p * dx + q * dy
return total * h
def disc_integral(density, n_r=400, n_t=400):
"""Integral of a function over the unit disc, midpoint rule in polar form."""
hr, ht = 1.0 / n_r, 2 * math.pi / n_t
total = 0.0
for i in range(n_r):
r = (i + 0.5) * hr
for j in range(n_t):
t = (j + 0.5) * ht
total += density(r * math.cos(t), r * math.sin(t)) * r
return total * hr * ht
def angle_form(a=0.0, b=0.0):
"""dtheta measured from the point (a, b): ((x-a) dy - (y-b) dx) / r^2."""
def form(x, y):
dx, dy = x - a, y - b
r2 = dx * dx + dy * dy
return (-dy / r2, dx / r2)
return form
def circle(cx, cy, radius, turns=1):
"""A circle traversed ``turns`` times anticlockwise, as (x, y, x', y')."""
def curve(t):
s = turns * t
return (cx + radius * math.cos(s), cy + radius * math.sin(s),
-radius * turns * math.sin(s), radius * turns * math.cos(s))
return curve
def ellipse(a, b):
"""The ellipse (a cos t, b sin t), anticlockwise."""
return lambda t: (a * math.cos(t), b * math.sin(t),
-a * math.sin(t), b * math.cos(t))
def combine(c1, f1, c2, f2):
"""The 1-form c1 f1 + c2 f2."""
def form(x, y):
p1, q1 = f1(x, y)
p2, q2 = f2(x, y)
return (c1 * p1 + c2 * p2, c1 * q1 + c2 * q2)
return form
def main():
exact = 3 * math.pi / 4
lhs = line_integral(lambda x, y: (0.0, x**3), circle(0, 0, 1))
rhs = disc_integral(lambda x, y: 3 * x * x)
print("1. Stokes for w = x^3 dy on the unit disc (exact value 3*pi/4):")
print(f" boundary integral {lhs:.10f} error {abs(lhs - exact):.1e}")
print(f" integral of dw {rhs:.10f} error {abs(rhs - exact):.1e}")
print()
print("2. Periods of dtheta = (x dy - y dx)/(x^2 + y^2), divided by 2*pi:")
loops = [
("unit circle round 0", circle(0, 0, 1)),
("circle of radius 0.01 round 0", circle(0, 0, 0.01)),
("ellipse 3 x 0.2 round 0", ellipse(3, 0.2)),
("circle round 0, twice", circle(0, 0, 1, turns=2)),
("circle centred at (3, 0)", circle(3, 0, 1)),
]
for name, loop in loops:
ratio = round(line_integral(angle_form(), loop) / (2 * math.pi), 8)
print(f" {name:<32} {ratio + 0.0:+.8f}")
print(" Annulus 0.01 < r < 1: outer minus inner period = 0 = integral of")
print(" d(dtheta), so Stokes holds although dtheta is not exact.")
print()
form = combine(2.0, angle_form(-1, 0), -0.5, angle_form(1, 0))
print("3. Two punctures at (-1, 0) and (1, 0); w = 2 dth_left - 0.5 dth_right:")
for name, loop in [("loop round (-1, 0)", circle(-1, 0, 0.5)),
("loop round (1, 0)", circle(1, 0, 0.5)),
("loop round both", circle(0, 0, 3))]:
print(f" {name:<20} period / 2*pi = "
f"{line_integral(form, loop) / (2 * math.pi):+.6f}")
print(" The two periods (2, -0.5) pin down the class of w: H^1 = R^2.")
print()
print("Epistemic status: numerical quadrature. The agreement in part 1 is")
print("evidence for one form on one disc; the integer periods in part 2 are")
print("evidence for the theorem that periods of dtheta are 2*pi times winding")
print("numbers. The proofs are Stokes's theorem and the lesson's argument.")
if __name__ == "__main__":
main()The periods of come out as times an integer — the winding number — whatever the size or shape of the loop. With two punctures the two periods can be prescribed independently, illustrating . Quadrature is numerical evidence; the theorems are proved above.
Explore: closed but not exact, and a glued manifold
The vector field corresponds (through the Euclidean dot product) to the -form . Drag the loop: when it encircles the origin the circulation is ; when it does not, it is . The curl is everywhere it is defined ( is closed), so Green's theorem predicts circulation — and it fails exactly when the loop surrounds the singularity, where is not defined. No function has this field as its gradient.
dθ: closed but not exact
Circulation 2π round the origin, 0 elsewhere; curl 0 wherever it is defined.
F(x, y) = (−y/(x² + y²), x/(x² + y²))
Drag the gold centre (or click anywhere) to move the loop. With the keyboard, focus the centre and use the arrow keys.
Turns so far: 0.09
- Circulation
- ∮ F·dr ≈ 6.2832 | ∬ curl F dA ≈ −0.0322
- Flux out
- ∮ F·n ds ≈ 0 | ∬ div F dA ≈ 0.1043
- At the centre
- curl F ≈ 0, div F ≈ 0, πr² ≈ 8.042
- Index
- 1
All values are numerical approximations (sums around the loop and over the disc).
The two sides differ: the field must fail to be smooth (or be undefined) somewhere inside the loop, so Green’s theorem does not apply to this loop.
Index 1 ≠ 0: walking once around the loop, the arrow makes 1 net full turns (negative means clockwise). A field that is continuous on the whole disc would have to vanish inside; this one is not (see above), and the point where it breaks down carries the index instead.
A manifold need not live in any to begin with. The torus and the Klein bottle below are squares with their sides glued; each point, including points on the seams and corners, has a neighbourhood that is a disc, so both are smooth -manifolds. Walk the creature across the seams: on the Klein bottle it comes back mirror-reversed, so no oriented atlas exists.
Manifolds made by gluing
Charts across the seams make these smooth surfaces; only the torus is orientable.
Keys: ↑ forward, ↓ back, ← and → turn, Space walks or stops. You can also drag it.
- Orientable
- Yes
- Euler characteristic
- χ = 0
Gluing turns the 4 corners into V = 1, the 4 sides into E = 2 and the square into F = 1: V − E + F = 1 − 2 + 1 = 0
Same way round as at the start.
Sides crossed so far: 0
Opposite sides are glued with arrows pointing the same way. Walk off the right side and you come back on the left, the same way round. However it walks, the flatlander is never mirrored: the torus is orientable.
Exercises
1. Smooth manifolds
Warm-upHumanWhat is the dimension of the orthogonal group as a smooth manifold?
2. Smooth manifolds
CoreHumanWhich of these subsets are smooth embedded submanifolds of the ambient Euclidean space? (Choose all that apply.)
3. Smooth manifolds
CoreHumanTo show that is a manifold we used with codomain , the symmetric matrices. What goes wrong if we take the codomain to be all of ?
4. Smooth manifolds
CoreHumanCoordinates change from to near , with Jacobian matrix at . A tangent vector has components in the old chart and in the new one. How do the components of a covector (for example ) change?
5. Smooth manifolds
CoreHumanIn the proof that we wrote and applied a derivation at . Why does the term vanish?
6. Smooth manifolds
CoreHumanLet with the anticlockwise boundary. Use Stokes's theorem to compute .
7. Smooth manifolds
CoreHumanWhat is the dimension of , the first de Rham cohomology of the plane with three points removed?
8. Smooth manifolds
StretchFormalWhich Lean statement correctly formalises " is not exact on the circle "?
9. Smooth manifolds
StretchComputationalWrite period(P, Q, n) that approximates the integral of the -form round the unit circle , , anticlockwise, by the rectangle rule with n equally spaced values of . Then check: the period of is , and the period of the exact form is .
Common misconceptions
Misconception
"A manifold comes with a preferred embedding in some ." A manifold is an abstract space with an atlas. Some arise as subsets (), many do not (, the configuration space , spacetime). Whitney's theorem says embeddings exist, but there are many and none is canonical, and intrinsic notions (tangent vectors, forms, cohomology) do not depend on one. Even extra structure can resist embedding: the flat torus embeds smoothly in as a doughnut, but no embedding in is isometric, because every compact surface in has a point of positive Gaussian curvature.
Misconception
"Vectors and covectors are the same thing; just write the components in a column." They transform differently under a change of chart: but . Only for orthogonal do the laws coincide, which is why the confusion survives in Euclidean geometry with Cartesian coordinates. Example: in polar coordinates , but the gradient vector is ; converting needs a metric.
Misconception
"A closed form is exact." Only locally (the Poincaré lemma), or on spaces with vanishing cohomology. On the form is closed with non-zero period , so it is not exact. The obstruction is topological, and measuring it is the point of de Rham cohomology.
Misconception
"A homeomorphism between smooth manifolds is a diffeomorphism," or "the topology determines the smooth structure." The homeomorphism of is smooth but its inverse is not. More seriously, there are manifolds homeomorphic but not diffeomorphic to (Milnor) and to . In dimensions , and , however, smooth structures exist and are unique up to diffeomorphism.
Misconception
"Hausdorff and second countable are technicalities." Drop Hausdorff and the line with two origins appears, where a sequence has two limits and integral curves of vector fields are not unique. Drop second countability and the long line appears: locally like , Hausdorff, but with no partitions of unity, no Riemannian metric and no embedding in any .
Misconception
"Tangent vectors at different points can be compared or added." and are different vector spaces; there is no canonical way to say that a vector at "equals" one at . Comparing them requires extra structure — a connection and its parallel transport — which is where Riemannian geometry begins.
Many ways of seeing
Topology— Derivatives that count holes
de Rham's theorem says that a calculus construction — closed forms modulo exact forms — computes singular cohomology with real coefficients, a topological invariant. Periods of closed forms detect holes: , is an exterior algebra on generators, and on a compact oriented manifold integration identifies with . What de Rham cohomology cannot see is torsion: has but , while all its de Rham groups above degree vanish.
The topologist also asks how far "smooth" is from "topological". In dimensions there is no difference; in dimension there are topological manifolds with no smooth structure at all (Freedman's manifold) and exotic s; in dimensions surgery theory counts smooth structures, as in Kervaire and Milnor's computation that there are oriented smooth structures on up to orientation-preserving diffeomorphism. See differential topology and low-dimensional topology.
Geometry— From Riemann's manifolds to metrics and symmetry
Riemann introduced manifolds in order to do geometry in them. A Riemannian metric — an inner product on each tangent space, varying smoothly — exists on every smooth manifold (glue the Euclidean metrics of charts with a partition of unity), and it supplies what bare manifolds lack: lengths, angles, volumes, a canonical isomorphism (so gradients exist), geodesics and curvature. Klein's programme meets Riemann's in homogeneous spaces such as and hyperbolic space, where a Lie group acts transitively by isometries. See Riemannian geometry and Lie groups.
Analysis— The inverse function theorem and elliptic PDE
The analyst sees two engines under the hood. The inverse function theorem produces submanifolds (the regular value theorem), local normal forms of maps and, through the ODE existence theorem, flows. Sard's theorem says almost every value of a smooth map is regular, so regular values are plentiful. And analysis returns at the end: on a compact oriented Riemannian manifold, the Hodge theorem says that each de Rham class contains exactly one harmonic form, . So , a topological number, equals the dimension of the space of solutions of an elliptic PDE — the prototype of index theory (Atiyah–Singer).
Algebra— The manifold is its algebra of functions
For a smooth manifold , the points can be recovered from the -algebra : every non-zero algebra homomorphism is evaluation at a unique point ("Milnor's exercise"). Tangent vectors at are derivations of this algebra at — our definition — and vector fields are derivations of , which form a Lie algebra under the commutator. This is the starting point of the algebraic geometer's view (a variety is known by its ring of functions) and of noncommutative geometry, which replaces by a noncommutative algebra. The de Rham complex is a commutative differential graded algebra; Sullivan showed that, for simply connected manifolds, it determines the real homotopy type up to quasi-isomorphism, and a version with polynomial forms captures rational homotopy theory.
Physics— Configuration spaces, phase spaces and fields
Classical mechanics happens on manifolds: a system with configuration space (a torus for a double pendulum, for a spinning top) has phase space the cotangent bundle , which carries the canonical symplectic form ; momenta are covectors, velocities are vectors, and the distinction of this lesson is the distinction between the Hamiltonian and Lagrangian pictures. In electromagnetism the field strength is a -form on spacetime and Maxwell's equations read , . A magnetic monopole would make closed but not exact on , with flux through a sphere given by a class in ; Dirac's argument that this flux is quantised if electric charge is (1931) is a physical heuristic that became the mathematics of line bundles and characteristic classes. See symplectic geometry and relativity.
Category theory— The tangent functor
Smooth manifolds and smooth maps form a category . The tangent construction is a functor (indeed to vector bundles): , , and the chain rule together with is exactly functoriality. de Rham cohomology is a contravariant functor from to graded-commutative algebras, homotopy invariant, and is a sheaf. See functors and sheaves.
History and global context
- Intrinsic geometry. Carl Friedrich Gauss's Disquisitiones generales circa superficies curvas (1827), written after his geodetic survey of Hanover, showed that the curvature of a surface can be measured from inside it.
- Riemann's manifolds. Bernhard Riemann's habilitation lecture Über die Hypothesen, welche der Geometrie zu Grunde liegen (1854, published 1868) introduced -dimensional "manifoldnesses" with a metric given by a quadratic form on infinitesimal displacements. His thesis (1851) had already introduced the surfaces now named after him.
- Topology and forms. Henri Poincaré's Analysis Situs (1895) and its supplements studied manifolds through homology and Betti numbers. Élie Cartan introduced the exterior calculus of differential forms (from 1899). The divergence theorem goes back to Mikhail Ostrogradsky (1826) and Gauss, Green's theorem to George Green (1828), and the classical Stokes theorem to a letter of William Thomson (Kelvin) to George Stokes (1850), which Stokes set as a Cambridge examination question in 1854; higher-dimensional versions were stated by Vito Volterra and Poincaré, and the modern form took shape in the Cartan school.
- The modern definition. Hermann Weyl's Die Idee der Riemannschen Fläche (1913) defined Riemann surfaces by local coordinate neighbourhoods; Oswald Veblen and J. H. C. Whitehead gave the atlas definition of smooth manifolds (1931–32); Hassler Whitney's Differentiable manifolds (1936) proved that abstract manifolds embed in Euclidean space. Georges de Rham proved his theorem in his 1931 thesis.
- The global theory. In the 1940s Shiing-Shen Chern's intrinsic proof of the Gauss–Bonnet theorem and his characteristic classes, and W. V. D. Hodge's harmonic integrals (developed further by Kunihiko Kodaira and others), made manifolds central to geometry. In 1956 John Milnor found exotic -spheres. Vladimir Arnold's Mathematical Methods of Classical Mechanics (1974) made manifolds and forms the standard language of mechanics.
Further reading
- John M. Lee, Introduction to Smooth Manifolds (2nd edition, 2013) — the standard graduate text; Chapters 1–19 cover this lesson in full detail.
- Loring W. Tu, An Introduction to Manifolds (2nd edition, 2011) — a gentler first course, through Stokes's theorem and de Rham cohomology.
- Michael Spivak, Calculus on Manifolds (1965) — a short classic on forms and Stokes's theorem in ; and A Comprehensive Introduction to Differential Geometry, Volume 1 (3rd edition, 1999).
- Raoul Bott and Loring W. Tu, Differential Forms in Algebraic Topology (1982) — de Rham cohomology, Mayer–Vietoris and beyond.
- Frank W. Warner, Foundations of Differentiable Manifolds and Lie Groups (1971; Springer reprint 1983) — concise, including a proof of de Rham's theorem and the Hodge theorem.
- V. I. Arnold, Mathematical Methods of Classical Mechanics (2nd edition, 1989) — manifolds and forms in mechanics.