The exterior derivative on a manifold #
TERM-SCOPE(Kahler) — this module names the "Kahler / symplectic manifold API" row of the Mathlib-gaps register; the source repository's terms register records what is backed and what is not.
Category: 1-Mathlib (CSD-free; upstream target Mathlib.Geometry.Manifold, the
## TODO of Mathlib/Analysis/Calculus/DifferentialForm/Basic.lean).
A differential form on a manifold (DifferentialForm.lean) is a smooth
section of the alternating bundle on the tangent bundle. Its exterior derivative is defined
chart by chart and glued by the flat naturality lemma extDeriv_pullback:
DifferentialForm.localRep s x₀— the local representative of a familysof alternating maps in the chart atx₀: an unbundled flat form on the model space; Naming.mextDerivFamilyacts on familiess : ∀ x, TₓM [⋀^k]→L ℝ;DifferentialForm.mextDerivis the bundled operator onC^∞forms. (Until 2026-09-16 the family operator was a rootmextDeriv, which the bundled name shadowed insidenamespace DifferentialForm; external review asked for distinct names.)mextDerivFamily s x— the exterior derivative of a familys : ∀ x, TₓM [⋀^k]→L ℝ: the flatextDerivof the local representative in the chart atx, read atx(the tangent space atxis the model space definitionally, so no transport is needed at the base point);★
DifferentialForm.trivializationAt_snd— the trivialisation of a section value is the pullback along the derivative of the chart transition (VectorBundleCore.trivializationAt_symmLandtangentBundleCore_coordChange_achart, read on the model);★
DifferentialForm.localRep_transition— local representatives in two charts differ by the pullback along the transition (the tangent-bundle cocycleVectorBundleCore.coordChange_comp);★★
DifferentialForm.localRep_mextDerivFamily— the local representative ofd sis the flatdof the local representative ofs, in every chart, at every point of the chart. This is whereextDeriv_pullbackis spent, and it is the whole content of chart-independence;★★
contMDiff_mextDerivFamily—dof aC^∞section is aC^∞section, soditerates:DifferentialForm.mextDerivis the bundled operatorDifferentialForm 𝓘(ℝ, E) M ∞ (Fin k) G → DifferentialForm 𝓘(ℝ, E) M ∞ (Fin (k+1)) G;★★
mextDerivFamily_mextDerivFamily,DifferentialForm.mextDeriv_mextDeriv—d ∘ d = 0, transported fromextDeriv_extDeriv_apply;0-forms:zeroFormFamily f(a functionf : M → Gas a0-form family),localRep_zeroFormFamily,contMDiff_zeroFormFamily(the section isC^∞whenfis), the bundledzeroForm f hf, and ★toFlat_mextDerivFamily_zeroFormFamily/toFlat_mextDeriv_zeroForm— the exterior derivative of a0-form is its differential,(df)_x = ofSubsingleton 0 (mfderiv f x), transported fromextDeriv_constOfIsEmpty.
The design decisions the scoping note's §4 asked for, all taken the cheap way:
- real, boundaryless model
𝓘(ℝ, E)— every finite-dimensional real manifold this tree uses,ℂℙⁿincluded;range 𝓘 = univ, sofderivWithinisfderivand noUniqueDiffOnis ever supplied;minSmoothness ℝ 2 = 2; - smoothness
∞only —dofC^∞isC^∞, and non - 1arithmetic leaks anywhere; - degrees
Fin k— the flatextDerivisFin k → Fin (k + 1); toFlat, a definitional cast from the fibreTₓM [⋀^k]→L Gto the model fibre, so that every identity is stated on the model space and rewriting never has to cross theTangentSpace-vs-model instance path (that crossing, done pointwise, is whattrivializationAt_sndis for).
Honest scope #
⚠️ ∞ and 𝓘(ℝ, E) only. No C^n bookkeeping, no boundary, no other field. A consumer
needing d on a C^n manifold or on a manifold with corners needs a generalisation, and the
smoothness arithmetic that this file deliberately avoids would come with it.
⚠️ What is not here: the Palais formula, naturality d(f^*ω) = f^*(dω) for maps of
manifolds, linearity, and the Leibniz rule (which needs the wedge of sections).
⚠️ The chart at x is chartAt E x, the atlas's own choice. mextDerivFamily is defined
through
it; localRep_mextDerivFamily is what shows the value is the same in every chart.
Provenance and references. The exterior-derivative plan (the plan, and its §3a on why the
"walls" recorded before this file were not walls); Geometry/Manifold/DifferentialForm.lean
(step (2a)); Mathlib/Analysis/Calculus/DifferentialForm/Basic.lean (extDeriv,
extDeriv_pullback, extDeriv_extDeriv_apply); the Mathlib-gaps register (Kahler / symplectic
manifold API); the backlog (XL, "Manifold exterior calculus"); the completed-work ledger.
Consumers: Geometry/Manifold/Instances/ProjectiveSpaceFubiniStudyForm.lean (fsForm_mextDeriv);
Geometry/Manifold/HamiltonianVectorField.lean (IsHamiltonianVectorField.isLocallyHamiltonian,
the
0-form API).
Over ℝ, the smoothness the flat pullback and d² = 0 lemmas ask for is 2.
Flat lemma: extDeriv of a C^∞ form is C^∞ (it is a continuous linear map applied to
the derivative of the form).
The chart transition, as extChartAt sees it, is the chart transition.
The transition from any atlas chart e to the chart at y, as extChartAt and extend see
it, is the chart transition.
The tangent trivialisation of any atlas chart e, read at y ∈ e.source, is the derivative
of the transition from e to the chart at y (VectorBundleCore.localTriv_symmL);
tangent_symmL_eq_fderiv is the case e = achart E x₀.
The tangent coordinate change from the chart at x₀ to the chart at y is the derivative
of the chart transition.
Chart transitions are C^∞ where defined.
The cocycle: derivatives of chart transitions compose (VectorBundleCore.coordChange_comp
for the tangent bundle, read on the model).
Definitional identification of the fibre TₓM [⋀^k]→L G with the model fibre.
Equations
Instances For
The local representative of a family of alternating maps in the chart at x₀: an
unbundled flat form on the model space. Outside the chart's target it is junk; every use is at
a point of the target.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The exterior derivative of a family of alternating maps on the tangent spaces: the flat
extDeriv of its local representative in the chart at x, read at x.
Equations
- mextDerivFamily s x = extDeriv (DifferentialForm.localRep s x) (↑(chartAt E x) x)
Instances For
★ The trivialisation of a section value, on the model: pull back along the derivative of the chart transition.
★ Local representatives in two charts differ by the pullback along the transition.
★ A C^n section has C^n local representatives (on the chart's target), for every order n
the manifold has — ∞ and ω included (until 2026-09-17 the ω case was a second proof).
★★ The local representative of d s is the flat d of the local representative of
s, in every chart, at every point of its target. Chart-independence of mextDerivFamily, in the
only form a consumer needs; extDeriv_pullback is spent here.
★★ d of a C^∞ section is a C^∞ section.
★★ d ∘ d = 0, pointwise.
★★ The exterior derivative on differential forms, as an operator
DifferentialForm 𝓘(ℝ, E) M ∞ (Fin k) G → DifferentialForm 𝓘(ℝ, E) M ∞ (Fin (k + 1)) G.
Equations
- α.mextDeriv = { toFun := mextDerivFamily fun (x : M) => α x, contMDiff_toFun := ⋯ }
Instances For
★★ d ∘ d = 0 on differential forms.
0-forms: the exterior derivative is the differential #
A function f : M → G as a 0-form family, x ↦ constOfIsEmpty (f x).
Equations
- DifferentialForm.zeroFormFamily f x = ContinuousAlternatingMap.constOfIsEmpty ℝ E (Fin 0) (f x)
Instances For
The local representative of a 0-form family is the function read in the chart.
The 0-form family of a C^∞ function is a C^∞ section.
★ The exterior derivative of a 0-form is its differential: for f differentiable at
x, d (zeroFormFamily f) x = ofSubsingleton 0 (mfderiv f x), i.e. (df)_x v = mfderiv f x (v 0).
Stated on the model, as every identity of this file is.
A C^∞ function as a 0-form.
Equations
- DifferentialForm.zeroForm f hf = { toFun := DifferentialForm.zeroFormFamily f, contMDiff_toFun := ⋯ }
Instances For
★ d f is the differential of f, for the bundled 0-form.