The moment map of the torus action on ℂℙⁿ, at manifold level #
TERM-SCOPE(Kahler) TERM-SCOPE(Hamiltonian) TERM-SCOPE(MomentMap) TERM-SCOPE(Liouville) — this module uses the restricted senses of these words; the source repository's terms register records what is backed and what is not.
Category: 1-Mathlib (CSD-free; the torus moment map of ℂℙⁿ).
The torus T^{n+1}
acts on ℂℙⁿ by p ↦ diag(e^{iθ}) • p. This module proves the moment-map equation for that
action on the manifold: the velocity field of the action is the Hamiltonian vector field, for
the Fubini–Study form fsForm, of 2 ∑ₖ θₖ · momentMap p k — then its uniqueness, its image, and
the invariance of the Fubini–Study volume under the flow it generates.
torusChartField i θ w— the velocity in the affine charti,wⱼ ↦ i (θ_{sⱼ} − θᵢ) wⱼ;torusField θ— the same as a family overℂℙⁿ, read in the chart at each point;torusUnitary θ—diag(e^{iθ})as a unitary;chartFun_torusUnitary_smul(in the chart the action is the coordinatewise phase rotation); ★hasDerivAt_chartFun_torusUnitary— the field is the velocity of the action:torusChartFieldis thet-derivative at0oft ↦ diag(e^{itθ}) • pread in the chart, and ★★★isMIntegralCurve_torusUnitary_smul— the orbitt ↦ diag(e^{itθ}) • pis a global integral curve oftorusField θ, sotorusFieldis the fundamental vector field;torusHamiltonian θ p = 2 ∑ₖ θₖ · momentMap p k, its chart expressiontorusChartHam = 2N/D(torusHamiltonian_chartInv), the chart derivative (hasFDerivAt_torusChartHam, by the product and inverse rules fromhasFDerivAt_normSq_coord), and ★hasMFDerivAt_torusHamiltonian(the manifold derivative is the chart derivative);- ★★
fsModelForm_torusChartField— the chart identityω_w (X_w, v) = dH_w v, a real computation throughfsModelForm_apply; - ★★★
torusField_isHamiltonianVectorField—IsHamiltonianVectorField fsForm (torusField θ) (torusHamiltonian θ): the torus action onℂℙⁿis Hamiltonian, with2 ∑ θₖ momentMapas its Hamiltonian. Forθ = eᵢ: thei-th phase rotation is generated by2 · momentMap · i, on the symplectic manifold. This is the manifold form of the linear-level statement that phase rotation is Hamiltonian; - G8, uniqueness.
momentMap_origin_of_ne,torusHamiltonian_single, ★★eq_add_const_of_isHamiltonianVectorField— a Hamiltonian is unique up to a constant onℂℙⁿ: two differentiable Hamiltonians of the same field for the same 2-form family differ by a constant. No connectedness lemma: every affine chart image is all ofℂⁿ(is_const_of_fderiv_eq_zero), and[1 : ⋯ : 1](allOnes) lies in every chart; and ★★★eq_torusHamiltonian_of_nonneg_of_sum— the normalisation pins the constant: a non-negative family of Hamiltonians for the phase fields summing to2is2 · momentMap. This is the standard symplectic argument, formalised; - G9, the image.
momentMapSimplex(the moment map's value as a point of the bundledStdSimplex ℝ (Fin (n + 1))),sqrtVec(the vector(√t₀, …, √tₙ)),momentMap_mk_sqrtVec, ★★momentMapSimplex_surjectiveand ★★range_momentMap— the image of the moment map is exactly the standard simplex: the moment map onto the bundled simplex is surjective, and its range as a set of weight vectors isSet.range StdSimplex.weights(range_momentMap_eq_interspells that out as non-negativity and the sum-one normalisation).⊆is the normalisation,⊇the ray of(√t₀, …, √tₙ); - G10, the flow.
torusUnitary_zero,torusUnitary_add,torusUnitary_add_smul(the one-parameter group law oft ↦ diag(e^{itθ})), and ★fsVolume_map_torusUnitary_smul/measurePreserving_torusUnitary_smul— every time-tmap of the torus flow preserves the Fubini–Study volumefsVolume n, a corollary of the unitary invariancefsVolume_map_smul.
Honest scope #
⚠️ G8 is about the map the action has. It says that the map the torus action has is the
momentMap; whether some dynamics generates the torus action is a different question, which
nothing here addresses.
⚠️ The factor 2 is convention. fsChartForm carries the -4 of its potential
log(1 + ‖z‖²); with that normalisation the generator of the phase rotation is 2 · momentMap.
The linear-level statement (IsPhaseHamiltonian, coordEnergy = ‖xᵢ‖²/2) has its own
convention; nothing here rescales either, and the statement shows the factor.
⚠️ A family, not a smooth section. torusField is a vector-field family; its smoothness as a
section of the tangent bundle is not proved (that is brick G3's plumbing), and nothing here needs
it: IsHamiltonianVectorField is pointwise.
⚠️ The polytope by computation, not by convexity. range_momentMap (G9) exhibits the image
as the simplex for this action; the Atiyah–Guillemin–Sternberg convexity theorem is neither used
nor proved.
⚠️ Liouville for one flow only. fsVolume_map_torusUnitary_smul (G10) is unitary invariance
specialised to diag(e^{iθ}). It is not a manifold-level Liouville theorem for Hamiltonian flows
(that is HamiltonianFlowVolume.lean's job).
⚠️ The torus here; the general generator in ProjectiveSpaceSchrodingerFlow.lean (G13). For a
general Hermitian H the flow exp(-itH) • p is Hamiltonian with Hamiltonian -2 ⟨H⟩
(schrodingerField_isHamiltonianVectorField), and the torus is its diagonal case
(schrodingerHamiltonian_neg_diagonal); the torus is what momentMap is about.
Provenance and references. The generator-layer plan (G6, G8–G10);
Geometry/Manifold/HamiltonianVectorField.lean
(G1); LinearAlgebra/Projectivization/MomentMap.lean (momentMap, momentMap_mk,
continuous_momentMap);
RecordLayer/CellLawForced.lean (IsPhaseHamiltonian, the linear-level equation);
Instances/ProjectiveSpaceFubiniStudyMass.lean (fsModelForm_apply, toLpCLM_apply);
Instances/ProjectiveSpaceUnitaryAction.lean (chartFun_smul_chartInv);
Instances/ProjectiveSpaceFubiniStudyVolume.lean (fsVolume, fsVolume_map_smul);
Mathlib/Geometry/Convex/ConvexSpace/Defs.lean (StdSimplex); the terms register (moment map,
Hamiltonian, Liouville); the programme's posits (Posits 1 and 3); the completed-work ledger.
Chart data #
The chart Hamiltonian 2 N / D.
Equations
- Projectivization.torusChartHam i θ w = 2 * (Projectivization.torusChartNum i θ w * (Projectivization.chartDen w)⁻¹)
Instances For
torusChartHam, unfolded: the definitional equation.
Derivatives in the chart #
The derivative of w ↦ ‖wⱼ‖².
Equations
- Projectivization.normSqCoordDeriv j w = (2 * (w j).re) • Complex.reCLM ∘SL ContinuousLinearMap.proj j + (2 * (w j).im) • Complex.imCLM ∘SL ContinuousLinearMap.proj j
Instances For
The derivative of the numerator N.
Equations
- Projectivization.torusChartNumDeriv i θ w = ∑ j : Fin n, θ (i.succAbove j) • Projectivization.normSqCoordDeriv j w
Instances For
The derivative of the denominator D.
Equations
- Projectivization.chartDenDeriv w = ∑ j : Fin n, Projectivization.normSqCoordDeriv j w
Instances For
The pointwise identity ι_X ω = dH in the chart #
The manifold statement #
The fundamental vector field of the torus action p ↦ diag(e^{iθ}) • p on ℂℙⁿ, read in
the chart at each point.
Equations
Instances For
★★★ The torus action on ℂℙⁿ is Hamiltonian, with 2 ∑ θₖ momentMap as its
Hamiltonian: the moment-map equation ι_X ω_FS = dH on the manifold.
The torus action, and its velocity #
The phase matrix diag(e^{iθₖ}) as a unitary.
Equations
- Projectivization.torusUnitary θ = ⟨Matrix.diagonal fun (k : Fin (n + 1)) => Complex.exp (↑(θ k) * Complex.I), ⋯⟩
Instances For
The torus action in the chart at i, coordinatewise.
★ The field is the velocity of the action: at every chart point, torusChartField is the
t-derivative at 0 of t ↦ diag(e^{itθ}) • p, read in the chart.
Uniqueness: the normalisation pins the moment map (G8) #
The point [1 : 1 : ⋯ : 1], which lies in every affine chart.
Equations
- Projectivization.allOnes n = WithLp.toLp 2 fun (x : Fin (n + 1)) => 1
Instances For
★★ A Hamiltonian is unique up to a constant on ℂℙⁿ: two differentiable Hamiltonians of
the same field for the same 2-form family differ by a constant. No connectedness lemma is used:
every affine chart image is all of ℂⁿ, and [1 : ⋯ : 1] lies in every chart.
★★★ The normalisation pins the constant. A family of Hamiltonians for the phase fields
that is non-negative and sums to 2 (the form's scale) is 2 · momentMap: the Hamiltonian family
of the torus action, and with it the moment map, is unique.
The image of the moment map is the standard simplex (G9) #
The standard simplex is Mathlib's bundled StdSimplex ℝ (Fin (n + 1)) (namespace Convexity): a
point is a finitely supported family of non-negative weights summing to 1, read as a function
through .weights. Mathlib deprecated the Set-level simplex on 2026-08-29 with
StdSimplex.range_toFun_comp_weights as the successor of its membership predicate, and the
statements below are written against that successor (BACKLOG #27, HY-6, restated 2026-10-23): the
moment map factors through the bundled simplex (momentMapSimplex), that factorisation is
surjective, and the image of the moment map as a set of weight vectors is the range of
StdSimplex.weights. Nothing is weakened: the two inclusions are the ones proved at the
Lean v4.33.0 pin, with the simplex now a type rather than a set.
The value of the moment map as a point of the bundled standard simplex: momentMap_nonneg and
momentMap_sum_eq_one are its two fields.
Equations
- p.momentMapSimplex = { weights := Finsupp.equivFunOnFinite.symm p.momentMap, nonneg := ⋯, total := ⋯ }
Instances For
Every value of the moment map is a weight vector of the standard simplex.
The vector (√t₀, …, √tₙ): the representative whose ray realises the weight vector t.
Equations
- Projectivization.sqrtVec t = WithLp.toLp 2 fun (k : Fin (n + 1)) => ↑√(t k)
Instances For
The ray of (√t₀, …, √tₙ) maps to the simplex point t itself.
★★ The moment map onto the standard simplex is surjective — the moment polytope of the
torus action on ℂℙⁿ, by direct computation: every simplex point is the image of the ray of
(√t₀, …, √tₙ). The Atiyah–Guillemin–Sternberg convexity theorem is neither used nor proved.
The image of the moment map, spelled out: the non-negative weight vectors summing to 1
(StdSimplex.range_toFun_comp_weights, the successor of the Set-level simplex).
The torus flow preserves the Fubini–Study volume (G10) #
The one-parameter group law of the torus flow t ↦ diag(e^{itθ}): the maps torusUnitary (t • θ) compose as a flow.
The torus orbits are integral curves of the torus field (G16) #
The torus flow t ↦ diag(e^{itθ}) is continuous in time.
★★★ The torus orbit is the integral curve of the torus field: t ↦ diag(e^{itθ}) • p is a
global integral curve of torusField θ, for every p. The route of
isMIntegralCurve_schrodingerUnitary_smul: in the chart at diag(e^{itθ}) • p the curve is
s ↦ chartFun (diag(e^{i(s-t)θ}) • q), whose derivative at s = t is the chart velocity
(hasDerivAt_chartFun_torusUnitary, shifted by the group law torusUnitary_add_smul).
★ The torus flow preserves the Fubini–Study volume: every map p ↦ diag(e^{iθ}) • p — in
particular every time-t map diag(e^{itθ}) of the flow of torusField
(isMIntegralCurve_torusUnitary_smul) — preserves
fsVolume n. A corollary of the unitary invariance fsVolume_map_smul: Liouville in the dynamics
sense for this one flow, with no manifold-level flow theory (G5) involved.
The same, as a measure-preserving map.