What does a Hamiltonian flow remember?
The state of a mechanical system with degrees of freedom is a point of phase space: positions and momenta. Its motion is the flow of Hamilton's equations
where is the energy. In 1838 Liouville observed that this flow preserves volume: a blob of initial conditions may be stretched into a long filament, but its -dimensional volume never changes. Statistical mechanics is built on that fact.
Is volume all that a Hamiltonian flow remembers? In 1985 Mikhail Gromov showed that it is not. Take the round ball of radius and the cylinder , built on one pair of conjugate coordinates. If the cylinder has infinite volume, so there is plenty of room, and indeed a volume-preserving linear map — — puts the ball inside an arbitrarily thin cylinder. But no Hamiltonian flow, and no symplectic map at all, can put inside unless . A Hamiltonian system cannot squeeze a cloud of states through a hole in a conjugate plane smaller than the cloud's own cross-section. (The result is often called "the symplectic camel", after the camel and the eye of the needle.)
This lesson is an orientation to the geometry behind that rigidity. Its paradox is the subject in miniature: symplectic manifolds have no local invariants whatsoever (Darboux's theorem), yet they carry deep global invariants, detected by holomorphic curves and Floer homology, that see far more than volume.
Area, not volume
The symplectic form of is
Evaluated on two vectors it gives : the sum of the signed areas of the shadows of the parallelogram spanned by and on the conjugate planes . A map that preserves preserves the total oriented area of every small piece of surface, measured plane by plane.
- In dimension this is just area (and orientation). There symplectic and area-preserving mean the same thing.
- In dimension preserving is far stronger than preserving volume, which is . The squeeze above preserves volume but multiplies the area of the -shadow by .
Hamilton's equations say with in the coordinates : the flow moves perpendicular to the gradient of , rotated by a quarter turn in each conjugate plane. Moving perpendicular to keeps constant; rotating by is what preserves area.
Analogy, not a formal construction
A symplectic map is like a perfectly incompressible fluid that must also respect a hidden "grain": you may stir it as much as you like, but you cannot thin the grain in one direction and thicken it in another to sneak it through a narrow pipe. The analogy is only suggestive — the grain is the form , and the obstruction is a theorem, not a fluid property.
Definitions
Prerequisites are smooth manifolds, differential forms (Cartan's formula in particular) and the Hamiltonian side of classical mechanics.
Definition— symplectic vector space and symplectic group
A symplectic vector space is a finite-dimensional real vector space with a bilinear form that is alternating ( for all ) and non-degenerate ( for all implies ). A linear map is symplectic if . On , with , this means ; these matrices form the symplectic group , a Lie group of dimension .
Definition— symplectic manifold
A symplectic form on a smooth manifold is a -form that is closed () and non-degenerate at every point. The pair is a symplectic manifold. A diffeomorphism with is a symplectomorphism. A submanifold with and is Lagrangian.
Definition— Hamiltonian vector field, flow and Poisson bracket
For the Hamiltonian vector field is the unique vector field with
Its flow is the Hamiltonian flow; time-one maps of flows of time-dependent Hamiltonians are Hamiltonian diffeomorphisms, and they form a group . The Poisson bracket is ; along the flow of , .
Note
Conventions differ by signs. Some authors write , or , or . With the choices above, gives exactly Hamilton's equations: if , then , and comparing with gives and .
Examples and non-examples
Example— Phase space and cotangent bundles
is the model. More generally, for any manifold (a configuration space) the cotangent bundle carries the tautological -form in canonical coordinates, defined invariantly by , and is symplectic. Phase spaces of mechanical systems are of this kind; the zero section and the fibres are Lagrangian.
Example— Surfaces, and Archimedes' hat-box theorem
On an orientable surface every area form is symplectic: closedness is automatic for a top-degree form. On the unit sphere with its area form , the height generates the rotation about the -axis at unit angular speed (with a suitable orientation). The flow preserves the slices , and Archimedes' theorem — the area of the zone is — says that pushes the area measure forward to the uniform measure on . This is the simplest case of the Duistermaat–Heckman theorem about moment maps (see "the wider landscape" below).
Example— Kähler manifolds and coadjoint orbits
Every Kähler manifold is symplectic: its Kähler form is closed and non-degenerate. So complex projective space with the Fubini–Study form, and every smooth complex projective variety, are symplectic manifolds (see complex and Kähler geometry). Another source is Lie theory: every coadjoint orbit of a Lie group carries the Kirillov–Kostant–Souriau form (up to a sign convention). The orbits of on are the spheres about the origin, and on the sphere of radius the KKS form is the area form divided by .
Example— The harmonic oscillator and the pendulum
For on , and the flow is the rotation : a symplectic linear map with determinant . For the pendulum the flow is non-linear, but each time- map is still area-preserving. Explore its phase portrait in the visualisation below.
Example— A symplectic flow that is not Hamiltonian
On the torus with , the translation field satisfies , so its flow consists of symplectomorphisms. But is closed and not exact on , so is not Hamiltonian. Its time- maps (for ) have no fixed points — compare the Arnold conjecture below, which concerns Hamiltonian diffeomorphisms only.
Example— Non-examples
- Odd-dimensional manifolds. A non-degenerate alternating form needs an even-dimensional space (Theorem 1).
- The spheres for , and . By Proposition 2 below a closed symplectic -manifold has ; these manifolds have . (Whether admits a complex structure is a famous open problem; it has no symplectic one.)
- A closed form that degenerates somewhere, such as on , which is closed but fails to be non-degenerate along .
Linear symplectic algebra
Theorem— Theorem 1 — linear Darboux theorem
Let be a symplectic vector space. Then is even, and has a basis with and . In this basis .
Proof
Induction on ; there is nothing to prove if . Otherwise pick . By non-degeneracy there is with ; rescale it to with . The vectors are independent (if then ), so is a plane on which is non-degenerate. Let . For any , the vector
satisfies and , so and ; and because is non-degenerate. Finally is non-degenerate: a vector of that pairs to zero with also pairs to zero with , hence with all of , so it is . By induction has a basis of the required form, and adding finishes the proof.
∎
Evenness also has a one-line matrix proof, which is the one formalised below: the Gram matrix of is skew-symmetric, so , and if is odd then .
In a Darboux basis , and conversely forces non-degeneracy. So on a symplectic manifold is a volume form, the Liouville volume, and every symplectic manifold is orientable.
Theorem— Proposition 2 — cohomology of closed symplectic manifolds
If is a closed symplectic manifold, then in for . In particular .
Proof
because is a volume form for the induced orientation. If for some , then, since , , and Stokes' theorem on the closed manifold gives , a contradiction.
∎
For , : a matrix satisfies , so it is symplectic exactly when . In general every symplectic matrix has determinant (linear Liouville; this needs an argument, since only gives ), and .
Theorem— Theorem 3 — linear non-squeezing
Let . If , then . More precisely, the shadow of on the -plane is an ellipse of area at least .
Proof
Let and , so that and ; these are the first two rows of . The transpose of a symplectic matrix is symplectic, so
By Cauchy–Schwarz and orthogonality of , , so or ; say . The point lies in and , so forces .
For the area statement, the shadow is the ellipse , of area . Write with . Then and , so
∎
The volume-preserving squeeze of the motivation fails the hypothesis: it multiplies by . Gromov's theorem below says that Theorem 3 survives for non-linear symplectic embeddings — which is astonishing, because Darboux's theorem says there is no local obstruction of any kind.
Hamiltonian flows: conservation and Liouville
Theorem— Theorem 4 — Hamiltonian flows preserve H, ω and volume
Let be the flow of on . Then for all : (i) ; (ii) ; (iii) , so preserves the Liouville volume.
Proof
(i) , since is alternating.
(ii) , and by Cartan's formula
(iii) .
∎
Note what each part uses: (i) only that is alternating, (ii) that is closed, and the existence of that is non-degenerate. Part (i) is formalised below in exactly this generality.
Two consequences are worth stating. Noether's theorem: means both that is conserved by the flow of and that is conserved by the flow of — a symmetry and a conserved quantity are the same thing. Symplectic versus Hamiltonian: a vector field with has closed; it is Hamiltonian exactly when is exact. So measures the difference, as the translation of showed.
At the linear level, a quadratic Hamiltonian ( symmetric) has , and Liouville's theorem becomes : indeed , so .
Moser's trick and Darboux's theorem
Moser's trick (1965) turns "find a diffeomorphism pulling one form back to another" into "solve a linear equation for a vector field", which non-degeneracy makes trivial.
Theorem— Theorem 5 — Moser stability
Let be closed and a smooth family of symplectic forms whose cohomology class does not depend on . Then there is an isotopy with and for all .
Proof
Since , we can write with depending smoothly on (for instance using the Green operator of the Hodge Laplacian of a fixed metric). Because is non-degenerate, there is a unique time-dependent vector field with
On a closed manifold integrates to an isotopy , and
So .
∎
Theorem— Theorem 6 — Darboux (1882)
Every point of a symplectic manifold has a coordinate neighbourhood with coordinates in which .
Proof
Take a chart centred at and transport to a form on a ball around . By Theorem 1, after a linear change of coordinates equals the constant form . Put for . Each is closed and equals at the origin; non-degeneracy is an open condition and is compact, so after shrinking every is non-degenerate on .
The closed form is exact on the ball (Poincaré lemma): , where the radial homotopy formula shows . Define by . Then for all , so the origin is fixed by the flow, and by continuous dependence on initial conditions the flow of is defined for all on a smaller ball . Exactly the computation of Theorem 5 gives , so on . Composing the chart with gives the required coordinates.
∎
No local invariants. In Riemannian geometry the curvature tensor is a local invariant: by Gauss's Theorema Egregium no piece of a round sphere is isometric to a piece of the plane (see Riemannian geometry). Darboux's theorem says every symplectic manifold of dimension looks locally exactly like : symplectic geometry is, locally, as flexible as topology. Moser's method gives global versions too: two area forms on a closed connected surface with the same total area differ by a diffeomorphism, and (Weinstein, 1971) a neighbourhood of a Lagrangian submanifold is symplectomorphic to a neighbourhood of the zero section in .
Rigidity: non-squeezing, capacities and the Arnold conjecture
Gromov's non-squeezing theorem (1985). If embeds symplectically into , then . This is a theorem, proved with pseudo-holomorphic curves, which Gromov introduced in the same paper. Sketch: choose an almost complex structure on (with of area slightly more than , containing , and a large torus) that is tamed by the symplectic form and equals the push-forward of the standard complex structure on the image of the ball. Gromov proves that for every tamed , through every point passes a -holomorphic sphere in the class — the count of such spheres is a deformation invariant equal to . The sphere through the image of the centre has symplectic area . Pulled back to the ball it becomes a genuine holomorphic curve through the centre, hence a minimal surface, and the monotonicity formula for minimal surfaces gives it area at least inside the ball. So for every . What is proved in this lesson is the linear case (Theorem 3), which needs none of this machinery.
Capacities and -rigidity. Ekeland–Hofer (1989) and Hofer–Zehnder (1990) axiomatised the invariant behind non-squeezing: a symplectic capacity assigns to each symplectic manifold of dimension a number , monotone under symplectic embeddings, scaling like and normalised by . Gromov's width is the smallest one. Capacities are -robust, and they give the Eliashberg–Gromov theorem: a diffeomorphism that is a -limit of symplectomorphisms is itself symplectic. Volume preservation would not have predicted this.
The Arnold conjecture. Let be closed and have only non-degenerate fixed points (). Arnold conjectured in the 1960s that
the number of critical points that a Morse function on is forced to have by Morse theory. Compare the Lefschetz fixed-point theorem, which only bounds the signed count, by ; for the torus , gives nothing, while the Arnold bound is . And the Hamiltonian hypothesis is essential: translations of are symplectic and have no fixed points at all.
What is proved, and what is open:
- Proved. Conley–Zehnder (1983) for the torus ; Floer (1987–89) for monotone and symplectically aspherical manifolds, with ; for all closed symplectic manifolds with by Fukaya–Ono and by Liu–Tian (both 1998–99), using "virtual" counts of holomorphic curves; Abouzaid and Blumberg (2021) extended the bound to coefficients in every finite field.
- Open in general. Arnold's original, stronger form, with the minimal number of critical points of any smooth function on in place of the sum of Betti numbers; and the version for degenerate fixed points (a lower bound by the cup-length plus one), which is known only in special cases such as symplectically aspherical manifolds.
Floer homology: Morse theory on the loop space. Floer's idea was to do Morse theory for the action functional on the space of contractible loops ,
(signs vary with conventions). Its critical points are the -periodic orbits of , which correspond to fixed points of . With a compatible almost complex structure , its "gradient flow lines" are maps solving Floer's equation
a perturbed Cauchy–Riemann equation. The functional is not bounded and its Hessian has infinite index in both directions, so classical Morse theory fails; but solutions of finite energy behave like holomorphic curves. Counting the rigid solutions defines a differential on the vector space generated by the periodic orbits. Its homology does not depend on or , and for a small time-independent Morse function it equals the Morse homology of , which is . Since a chain complex has at least as many generators as the rank of its homology, . The analytic difficulties — transversality, and the bubbling-off of holomorphic spheres in the compactness theorem — are exactly why the monotone case came first and the general case needed virtual techniques.
Moment maps and the wider landscape
Moment maps. If a torus acts on by symplectomorphisms generated by Hamiltonians, these assemble into a moment map with for every . For the rotation of the moment map is the height. Established landmarks:
- Convexity (Atiyah; Guillemin–Sternberg, 1982): for a compact connected , is the convex hull of the images of the fixed points — a convex polytope.
- Delzant (1988): compact symplectic -manifolds with an effective Hamiltonian -action (toric manifolds) are classified by their moment polytopes. corresponds to a simplex.
- Symplectic reduction (Meyer, 1973; Marsden–Weinstein, 1974): is again symplectic when the action on is free. For instance is the reduction of by the diagonal circle action at a regular level of .
- Duistermaat–Heckman (1982): the push-forward of the Liouville measure by is piecewise polynomial — Archimedes' hat-box theorem is the case of .
Contact geometry, the odd-dimensional sibling, studies hyperplane fields on a -manifold with everywhere; energy hypersurfaces of Hamiltonian systems are often contact. The Weinstein conjecture (1979) asks whether every Reeb vector field on a closed contact manifold has a periodic orbit. Taubes proved it in dimension (2007), using Seiberg–Witten Floer theory; in higher dimensions it is known in many cases and open in general.
Mirror symmetry. Kontsevich's homological mirror symmetry conjecture (1994) predicts that the Fukaya category of a Calabi–Yau manifold — Lagrangian submanifolds, with morphisms given by Lagrangian Floer cohomology and compositions by counts of holomorphic polygons — is equivalent to the derived category of coherent sheaves on a mirror (see derived categories). It is proved in important cases: elliptic curves (Polishchuk–Zaslow, 1998), the quartic K3 surface (Seidel), and Calabi–Yau hypersurfaces in projective space (Sheridan, 2015). It is open in general.
A recent resolution. Viterbo conjectured (2000) that among convex domains in of a given volume the ball maximises every normalised capacity. In 2024 Haim-Kislev and Ostrover found a counterexample in , built from two pentagons. A single conjecture falling is a reminder that the subject is far from finished: questions as basic as "which symplectic manifolds of dimension exist, and which ellipsoids embed into which?" have rich, partly unexpected answers (McDuff and Schlenk found an infinite staircase governed by Fibonacci numbers for embedding ellipsoids into balls, 2012).
Symplectic linear algebra in Lean and Mathlib
Mathlib has the symplectic group Matrix.symplecticGroup l R of matrices with , where is indexed by l ⊕ l, and two non-trivial facts about it. There are no symplectic manifolds in Mathlib yet, so Darboux's theorem, Moser's trick and Gromov's theorem are not formalised here. What is formalised is the linear algebra of the lesson and the conservation law, in full.
First, Theorem 4 (i), for any alternating form on any real normed space. Note that the proof never uses non-degeneracy:
/-- **Hamiltonian flows conserve the Hamiltonian.** Let `ω` be any alternating form on a real
normed space `V` (`ω v v = 0`), `H : V → ℝ` differentiable with derivative `dH z` at `z`, and `X`
the Hamiltonian vector field, defined by `ι_{X} ω = dH`, i.e. `ω (X z) w = dH z w`. Along any
flow line `γ' = X(γ)` the value `H(γ t)` is constant. Proof: by the chain rule
`(H ∘ γ)' = dH(γ)(X(γ)) = ω(X(γ), X(γ)) = 0`. Non-degeneracy of `ω` is what makes `X` exist and
be unique; it is not needed for conservation. -/
theorem hamiltonian_energy_conserved {V : Type*} [NormedAddCommGroup V] [NormedSpace ℝ V]
(ω : V → V → ℝ) (hω : ∀ v, ω v v = 0)
{H : V → ℝ} {dH : V → V →L[ℝ] ℝ} (hH : ∀ z, HasFDerivAt H (dH z) z)
{X : V → V} (hX : ∀ z w, ω (X z) w = dH z w)
{γ : ℝ → V} (hγ : ∀ t, HasDerivAt γ (X (γ t)) t) (s t : ℝ) :
H (γ s) = H (γ t) := by
have hd : ∀ τ, HasDerivAt (fun τ => H (γ τ)) 0 τ := by
intro τ
have h := (hH (γ τ)).comp_hasDerivAt τ (hγ τ)
have h0 : dH (γ τ) (X (γ τ)) = 0 := by rw [← hX, hω]
rw [h0] at h
exact h
exact is_const_of_deriv_eq_zero (fun τ => (hd τ).differentiableAt) (fun τ => (hd τ).deriv) s tIn the plane, symplectic means determinant one (proved entry by entry), with the shear — the flow of a free particle — as the exercise:
/-- The standard symplectic matrix on ℝ² = {(q, p)}: `ω₀(u, v) = uᵀ J v = u₁ v₂ - u₂ v₁`, the
signed area of the parallelogram spanned by `u` and `v`. -/
def J2 : Matrix (Fin 2) (Fin 2) ℝ := !![0, 1; -1, 0]/-- For every real 2 × 2 matrix, `Aᵀ J A = (det A) J`: a linear map of the plane multiplies the
symplectic form, i.e. signed area, by its determinant. Proved entry by entry. -/
theorem transpose_mul_J2_mul (A : Matrix (Fin 2) (Fin 2) ℝ) :
Aᵀ * J2 * A = A.det • J2 := by
ext i j
fin_cases i <;> fin_cases j <;>
simp [J2, Matrix.mul_apply, Fin.sum_univ_two, Matrix.det_fin_two] <;> ring/-- **In dimension two, symplectic means area- and orientation-preserving**: `Aᵀ J A = J` if
and only if `det A = 1`. In dimension four and higher this fails (see `squeeze`). -/
theorem symplectic_iff_det_eq_one (A : Matrix (Fin 2) (Fin 2) ℝ) :
Aᵀ * J2 * A = J2 ↔ A.det = 1 := by
rw [transpose_mul_J2_mul]
constructor
· intro h
have := congrFun (congrFun h 0) 1
simpa [J2] using this
· intro h
rw [h, one_smul]/-- A shear `(q, p) ↦ (q + t p, p)` is symplectic: its determinant is `1`. (Solution of the Lean
exercise; it also describes the exact flow of the free particle `H = p²/2` for time `t`.) -/
theorem shear_symplectic (t : ℝ) :
(!![1, t; 0, 1] : Matrix (Fin 2) (Fin 2) ℝ)ᵀ * J2 * !![1, t; 0, 1] = J2 := by
rw [symplectic_iff_det_eq_one, Matrix.det_fin_two_of]
ringEvenness of dimension and the infinitesimal Liouville theorem:
/-- A skew-symmetric real matrix of odd size is singular: `det A = det Aᵀ = det (-A) =
(-1)ⁿ det A = -det A`. So an alternating bilinear form on an odd-dimensional space is always
degenerate, and a symplectic vector space (or manifold) has even dimension. -/
theorem det_eq_zero_of_skew_odd {n : ℕ} (hn : Odd n) (A : Matrix (Fin n) (Fin n) ℝ)
(hA : Aᵀ = -A) : A.det = 0 := by
have h1 : A.det = (-A).det := by rw [← hA, det_transpose]
rw [det_neg, Fintype.card_fin, hn.neg_one_pow] at h1
linarith/-- **Linear Hamiltonian vector fields are divergence-free.** For a quadratic Hamiltonian
`H(z) = ½ zᵀ S z` the Hamiltonian vector field is linear, `X(z) = J S z` with `J` skew and `S`
symmetric, and its divergence is `trace (J S)`, which vanishes:
`tr(JS) = tr((JS)ᵀ) = tr(Sᵀ Jᵀ) = -tr(S J) = -tr(J S)`. This is Liouville's theorem at the level
of vector fields: the flow `exp(t J S)` has determinant `exp(t · tr(JS)) = 1`. -/
theorem trace_skew_mul_symm {n : ℕ} (J S : Matrix (Fin n) (Fin n) ℝ)
(hJ : Jᵀ = -J) (hS : Sᵀ = S) : (J * S).trace = 0 := by
have h : (J * S).trace = -(J * S).trace := by
calc (J * S).trace = (J * S)ᵀ.trace := (trace_transpose _).symm
_ = (Sᵀ * Jᵀ).trace := by rw [transpose_mul]
_ = (S * -J).trace := by rw [hS, hJ]
_ = -(S * J).trace := by rw [Matrix.mul_neg, trace_neg]
_ = -(J * S).trace := by rw [trace_mul_comm]
linarithThe linear Liouville theorem — symplectic matrices have determinant — is in Mathlib, with a surprisingly intricate proof (reduction to local rings). So is the fact that transposes of symplectic matrices are symplectic, used in Theorem 3:
/-- **Linear Liouville theorem**: every symplectic matrix (over any commutative ring) has
determinant `1`, so linear symplectic maps preserve volume. This applies Mathlib's
`SymplecticGroup.det_eq_one`, whose proof reduces to local rings and builds an invertible block
by hand; Mathlib's convention is `A * J * Aᵀ = J` with `J = !![0, -1; 1, 0]` in blocks. -/
theorem symplectic_det_eq_one {l : Type*} [DecidableEq l] [Fintype l]
{A : Matrix (l ⊕ l) (l ⊕ l) ℝ} (hA : A ∈ symplecticGroup l ℝ) : A.det = 1 :=
SymplecticGroup.det_eq_one hA/-- The transpose of a symplectic matrix is symplectic (so `A * J * Aᵀ = J` and `Aᵀ * J * A = J`
define the same group). This applies Mathlib's `SymplecticGroup.transpose_mem`. It is why the
*rows* of a symplectic matrix pair up under `ω`, which the non-squeezing proof below uses. -/
theorem symplectic_transpose_mem {l : Type*} [DecidableEq l] [Fintype l]
{A : Matrix (l ⊕ l) (l ⊕ l) ℝ} (hA : A ∈ symplecticGroup l ℝ) :
Aᵀ ∈ symplecticGroup l ℝ :=
SymplecticGroup.transpose_mem hANow Theorem 3 in , in coordinates , with Mathlib's convention so that the rows of pair under directly. The Wirtinger inequality is proved as a sum-of-squares identity in Plücker coordinates, and is slightly stronger than the Cauchy–Schwarz step the human proof needs:
/-- The standard symplectic matrix on ℝ⁴ with coordinates ordered `(x₁, y₁, x₂, y₂)`, so that
`ω₀ = dx₁ ∧ dy₁ + dx₂ ∧ dy₂`. -/
def J4 : Matrix (Fin 4) (Fin 4) ℝ :=
!![0, 1, 0, 0; -1, 0, 0, 0; 0, 0, 0, 1; 0, 0, -1, 0]/-- The standard symplectic form on ℝ⁴: the sum of the signed areas of the projections of the
parallelogram spanned by `u` and `v` to the `(x₁, y₁)`- and `(x₂, y₂)`-planes. -/
def omega4 (u v : Fin 4 → ℝ) : ℝ :=
u 0 * v 1 - u 1 * v 0 + u 2 * v 3 - u 3 * v 2/-- The entries of `A J Aᵀ` are the symplectic pairings of the rows of `A`:
`(A J Aᵀ)ᵢⱼ = ω₀(rowᵢ A, rowⱼ A)`. -/
theorem mul_J4_mul_transpose_apply (A : Matrix (Fin 4) (Fin 4) ℝ) (i j : Fin 4) :
(A * J4 * Aᵀ) i j = omega4 (A i) (A j) := by
simp [J4, omega4, Matrix.mul_apply, Fin.sum_univ_four]
ring/-- **A Wirtinger-type inequality in ℝ⁴**: `ω₀(a, b)² + ⟨a, b⟩² ≤ |a|² |b|²`. The symplectic area
of a parallelogram never exceeds its Euclidean area. Proof: the difference is the sum of squares
`(p₀₂ - p₁₃)² + (p₀₃ + p₁₂)²` of Plücker coordinates `pᵢⱼ = aᵢ bⱼ - aⱼ bᵢ` (an identity checked
by `ring`). -/
theorem wirtinger4 (a b : Fin 4 → ℝ) :
omega4 a b ^ 2 + (a ⬝ᵥ b) ^ 2 ≤ (a ⬝ᵥ a) * (b ⬝ᵥ b) := by
have key : (a ⬝ᵥ a) * (b ⬝ᵥ b) - (omega4 a b ^ 2 + (a ⬝ᵥ b) ^ 2) =
((a 0 * b 2 - a 2 * b 0) - (a 1 * b 3 - a 3 * b 1)) ^ 2 +
((a 0 * b 3 - a 3 * b 0) + (a 1 * b 2 - a 2 * b 1)) ^ 2 := by
simp only [dotProduct, Fin.sum_univ_four, omega4]
ring
nlinarith [sq_nonneg ((a 0 * b 2 - a 2 * b 0) - (a 1 * b 3 - a 3 * b 1)),
sq_nonneg ((a 0 * b 3 - a 3 * b 0) + (a 1 * b 2 - a 2 * b 1))]/-- If `|a| ≥ 1`, the linear function `u ↦ ⟨a, u⟩` takes a value of size at least `r` on the
sphere of radius `r`: take `u = (r / |a|) a`, for which `⟨a, u⟩² = r² |a|² ≥ r²`. -/
theorem exists_long_shadow {a : Fin 4 → ℝ} (ha : 1 ≤ a ⬝ᵥ a) {r : ℝ} :
∃ u : Fin 4 → ℝ, u ⬝ᵥ u = r ^ 2 ∧ r ^ 2 ≤ (a ⬝ᵥ u) ^ 2 := by
set s := Real.sqrt (a ⬝ᵥ a) with hs
have hs2 : s ^ 2 = a ⬝ᵥ a := Real.sq_sqrt (by linarith)
have hspos : 0 < s := Real.sqrt_pos.mpr (by linarith)
refine ⟨(r / s) • a, ?_, ?_⟩
· rw [smul_dotProduct, dotProduct_smul, smul_eq_mul, smul_eq_mul, ← hs2]
field_simp
· rw [dotProduct_smul, smul_eq_mul, mul_pow, div_pow, hs2]
have h0 : 0 < a ⬝ᵥ a := by linarith
rw [div_mul_eq_mul_div, le_div_iff₀ h0]
nlinarith [mul_nonneg (sq_nonneg r) (mul_nonneg h0.le (sub_nonneg.mpr ha))]/-- **Linear non-squeezing in ℝ⁴.** If a symplectic matrix `A` (here `A J Aᵀ = J`) maps the ball
`B⁴(r)` into the cylinder `Z(R) = {x₁² + y₁² ≤ R²}`, then `r ≤ R`. Proof: the first two rows
`a, b` of `A` satisfy `ω₀(a, b) = 1`, so by `wirtinger4` `|a|² |b|² ≥ 1` and one of them has
length at least `1`; `exists_long_shadow` then gives a point of `B⁴(r)` whose image lies at
distance at least `r` from the axis of the cylinder. Gromov's theorem says the same for all
symplectic *diffeomorphisms*; that needs pseudo-holomorphic curves and is not formalised. -/
theorem linear_nonsqueezing (A : Matrix (Fin 4) (Fin 4) ℝ) (hA : A * J4 * Aᵀ = J4)
{r R : ℝ} (hR : 0 ≤ R)
(hsub : ∀ u : Fin 4 → ℝ, u ⬝ᵥ u ≤ r ^ 2 → (A *ᵥ u) 0 ^ 2 + (A *ᵥ u) 1 ^ 2 ≤ R ^ 2) :
r ≤ R := by
-- the rows `a = A 0` and `b = A 1` satisfy `ω(a, b) = 1`
have hab : omega4 (A 0) (A 1) = 1 := by
rw [← mul_J4_mul_transpose_apply, hA]; simp [J4]
have hw := wirtinger4 (A 0) (A 1)
rw [hab] at hw
have ha0 := dot_self_nonneg (A 0)
have hb0 := dot_self_nonneg (A 1)
-- one of the two rows has length at least one
have hlong : 1 ≤ A 0 ⬝ᵥ A 0 ∨ 1 ≤ A 1 ⬝ᵥ A 1 := by
rcases le_or_gt 1 (A 0 ⬝ᵥ A 0) with h | h
· exact Or.inl h
· rcases le_or_gt 1 (A 1 ⬝ᵥ A 1) with h' | h'
· exact Or.inr h'
· nlinarith [sq_nonneg (A 0 ⬝ᵥ A 1), mul_le_mul h.le h'.le hb0 zero_le_one]
-- so some point of the ball lands at distance ≥ r from the axis
have hr2 : r ^ 2 ≤ R ^ 2 := by
rcases hlong with h | h
· obtain ⟨u, hu, hshadow⟩ := exists_long_shadow h (r := r)
have := hsub u hu.le
simp only [mulVec] at this
nlinarith [sq_nonneg (A 1 ⬝ᵥ u)]
· obtain ⟨u, hu, hshadow⟩ := exists_long_shadow h (r := r)
have := hsub u hu.le
simp only [mulVec] at this
nlinarith [sq_nonneg (A 0 ⬝ᵥ u)]
nlinarithFinally the contrast: a volume-preserving matrix that is not symplectic and does squeeze the unit ball into the cylinder of radius — impossible for a symplectic matrix by the previous theorem.
/-- The squeeze `(x₁, y₁, x₂, y₂) ↦ (x₁/2, y₁/2, 2x₂, 2y₂)`: it shrinks the first symplectic
plane and stretches the second. -/
noncomputable def squeeze : Matrix (Fin 4) (Fin 4) ℝ := Matrix.diagonal ![1 / 2, 1 / 2, 2, 2]/-- The squeeze preserves volume: `det = ½ · ½ · 2 · 2 = 1`. -/
theorem squeeze_det : squeeze.det = 1 := by
simp [squeeze, Matrix.det_diagonal, Fin.prod_univ_four]/-- The squeeze is not symplectic: it multiplies `ω₀(e₁, e₂) = 1` by `¼`. -/
theorem squeeze_not_symplectic : squeeze * J4 * squeezeᵀ ≠ J4 := by
intro h
have := congrFun (congrFun h 0) 1
simp [squeeze, J4, Matrix.mul_apply, Fin.sum_univ_four] at this
norm_num at this/-- The squeeze maps the unit ball `B⁴(1)` into the thin cylinder `Z(1/2)`. Together with
`linear_nonsqueezing` this shows that volume preservation is far weaker than being symplectic:
no symplectic matrix can do this. -/
theorem squeeze_ball (u : Fin 4 → ℝ) (hu : u ⬝ᵥ u ≤ 1) :
(squeeze *ᵥ u) 0 ^ 2 + (squeeze *ᵥ u) 1 ^ 2 ≤ (1 / 2) ^ 2 := by
simp only [squeeze, mulVec_diagonal]
simp only [dotProduct, Fin.sum_univ_four] at hu
simp
nlinarith [sq_nonneg (u 2), sq_nonneg (u 3)]Not formalised: symplectic manifolds and Hamiltonian vector fields on them; Theorem 1 as a basis statement (only evenness is proved); Theorem 3 in dimensions other than four; Moser's trick and Darboux's theorem; pseudo-holomorphic curves, Gromov's theorem, the Arnold conjecture and Floer homology. Formalising Floer theory is far beyond any current proof assistant library.
Symplectic integrators and the shadows of a ball
Numerical analysts met symplectic geometry from the other side. A one-step method for Hamilton's equations is symplectic if each step is a symplectic map. Symplectic methods do not conserve energy exactly, but backward error analysis shows that (for analytic Hamiltonians and small steps) a symplectic method agrees, up to exponentially small errors, with the exact flow of a nearby modified Hamiltonian, so the energy error stays bounded over exponentially long times instead of drifting. The first experiment integrates the pendulum with two non-symplectic methods (explicit Euler, RK4) and two symplectic ones (symplectic Euler, leapfrog), and computes exactly how one step of each changes phase-space area for the harmonic oscillator.
"""Symplectic and non-symplectic integrators for the pendulum.
Hamilton's equations for the pendulum H(q, p) = p^2/2 - cos q are solved
numerically by four one-step methods. Explicit Euler and the classical
Runge-Kutta method (RK4) are not symplectic; symplectic Euler and the
Stormer-Verlet (leapfrog) method are. We record the energy error over a long
run, and for the harmonic oscillator H = (q^2 + p^2)/2 we compute, with exact
fractions, the determinant of one step of each method: the factor by which
the step multiplies phase-space area.
Evidence: numerical (floating-point runs of finitely many steps) and exact
(rational determinants for one step size). Neither replaces the theorems
(Liouville's theorem; backward error analysis for symplectic methods).
"""
import math
from fractions import Fraction
def energy(q, p):
"""The pendulum Hamiltonian H(q, p) = p^2/2 - cos q."""
return p * p / 2 - math.cos(q)
def force(q):
"""-dH/dq for the pendulum."""
return -math.sin(q)
def explicit_euler(q, p, h):
"""One explicit Euler step (not symplectic)."""
return q + h * p, p + h * force(q)
def symplectic_euler(q, p, h):
"""Kick then drift: p <- p + h F(q), q <- q + h p (symplectic)."""
p = p + h * force(q)
return q + h * p, p
def leapfrog(q, p, h):
"""Stormer-Verlet: half kick, drift, half kick (symplectic, order 2)."""
p = p + h / 2 * force(q)
q = q + h * p
return q, p + h / 2 * force(q)
def rk4(q, p, h):
"""Classical fourth-order Runge-Kutta step (not symplectic)."""
def f(a, b):
return b, force(a)
k1 = f(q, p)
k2 = f(q + h / 2 * k1[0], p + h / 2 * k1[1])
k3 = f(q + h / 2 * k2[0], p + h / 2 * k2[1])
k4 = f(q + h * k3[0], p + h * k3[1])
q = q + h / 6 * (k1[0] + 2 * k2[0] + 2 * k3[0] + k4[0])
p = p + h / 6 * (k1[1] + 2 * k2[1] + 2 * k3[1] + k4[1])
return q, p
METHODS = [
("explicit Euler", explicit_euler),
("symplectic Euler", symplectic_euler),
("leapfrog", leapfrog),
("RK4", rk4),
]
def energy_errors(step, q, p, h, n, checkpoints):
"""Run n steps; return {k: max |H - H0| over the first k steps}."""
e0 = energy(q, p)
out, worst = {}, 0.0
for k in range(1, n + 1):
q, p = step(q, p, h)
worst = max(worst, abs(energy(q, p) - e0))
if k in checkpoints:
out[k] = worst
return out
def oscillator_step_matrix(name, h):
"""Exact 2x2 matrix of one step for H = (q^2 + p^2)/2, entries Fractions."""
h = Fraction(h)
if name == "explicit Euler":
return [[1, h], [-h, 1]]
if name == "symplectic Euler":
return [[1 - h * h, h], [-h, 1]]
if name == "leapfrog":
return [[1 - h * h / 2, h], [-h + h ** 3 / 4, 1 - h * h / 2]]
if name == "RK4":
a = 1 - h ** 2 / 2 + h ** 4 / 24
b = h - h ** 3 / 6
return [[a, b], [-b, a]]
raise ValueError(name)
def det2(m):
"""Determinant of a 2x2 matrix."""
return m[0][0] * m[1][1] - m[0][1] * m[1][0]
def main():
h, n, checks = 0.2, 40000, (100, 1000, 10000, 40000)
print("Pendulum H = p^2/2 - cos q, start (q, p) = (2, 0), step h = 0.2")
print("Largest energy error max|H - H0| up to time t:")
print(f"{'method':<18}" + "".join(f"{f't = {k * h:g}':>15}"
for k in checks))
for name, step in METHODS:
errs = energy_errors(step, 2.0, 0.0, h, n, set(checks))
print(f"{name:<18}" + "".join(f"{errs[k]:>15.2e}" for k in checks))
print()
print("One step for H = (q^2 + p^2)/2 with h = 1/10: exact det of the map")
for name, _ in METHODS:
d = det2(oscillator_step_matrix(name, Fraction(1, 10)))
print(f" {name:<18} det = {str(d):<26} ~ {float(d):.12f}")
grow = float(Fraction(101, 100) ** 1000)
print(f"Explicit Euler multiplies area by (1.01)^1000 ~ {grow:.3g} "
"in 1000 steps.")
print()
print("Epistemic status: the energy table is numerical evidence from")
print("floating-point runs of finitely many steps; it shows bounded energy")
print("error for the two symplectic methods and growth (fast for explicit")
print("Euler, slow for RK4) for the others, but proves nothing about all")
print("times. The determinants are exact: the symplectic steps preserve")
print("area exactly, while Euler expands it and RK4 contracts it slightly.")
if __name__ == "__main__":
main()Notice that RK4 is far more accurate than leapfrog over short times, yet its energy error grows steadily, while the symplectic methods' errors stay level. The exact determinants explain why: explicit Euler expands area by the factor per step, RK4 contracts it by , and the symplectic steps preserve it exactly.
The second experiment tests Theorem 3 on random matrices. It builds random symplectic matrices of as products of elementary symplectic maps, and random volume-preserving matrices, and measures the area of the shadow of the unit ball on two planes: the symplectic plane and the Lagrangian plane .
"""Shadows of a ball: linear non-squeezing, tested on random matrices.
Coordinates on R^4 are (x1, y1, x2, y2) and w = dx1^dy1 + dx2^dy2. For a
matrix A, the image of the unit ball projected to a coordinate plane is an
ellipse (its "shadow"). If the plane is the symplectic plane (x1, y1) and A
is symplectic, the shadow always has area at least pi (the area of a unit
disc): this is linear non-squeezing, in the strong form proved in the lesson.
Volume-preserving matrices can make the same shadow as small as we like, and
even symplectic matrices can shrink the shadow on the Lagrangian plane
(x1, x2).
Evidence: numerical. Finitely many random matrices are sampled with a fixed
seed; the inequality itself is a theorem (see the lesson and the Lean file).
"""
import math
import random
J4 = [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 0, 1], [0, 0, -1, 0]]
def matmul(a, b):
"""Product of two square matrices given as lists of rows."""
n = len(a)
return [[sum(a[i][k] * b[k][j] for k in range(n)) for j in range(n)]
for i in range(n)]
def transpose(a):
"""Transpose of a matrix given as a list of rows."""
return [list(r) for r in zip(*a)]
def omega(u, v):
"""The standard symplectic form on R^4 in the order (x1, y1, x2, y2)."""
return u[0] * v[1] - u[1] * v[0] + u[2] * v[3] - u[3] * v[2]
def symplectic_defect(a):
"""Largest entry of |A J A^T - J|; zero exactly when A is symplectic."""
m = matmul(matmul(a, J4), transpose(a))
return max(abs(m[i][j] - J4[i][j]) for i in range(4) for j in range(4))
def det4(a):
"""Determinant by cofactor expansion along the first row."""
def det3(m):
return (m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1])
- m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0])
+ m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]))
total = 0.0
for j in range(4):
minor = [row[:j] + row[j + 1:] for row in a[1:]]
total += (-1) ** j * a[0][j] * det3(minor)
return total
def shadow_area(a, i, j):
"""Area of the image of the unit ball under A projected to (coord i, j).
The shadow is the ellipse {(r_i . u, r_j . u) : |u| <= 1} for the rows
r_i, r_j of A; its area is pi * sqrt(det G) for their Gram matrix G.
"""
ri, rj = a[i], a[j]
gii = sum(x * x for x in ri)
gjj = sum(x * x for x in rj)
gij = sum(x * y for x, y in zip(ri, rj))
return math.pi * math.sqrt(max(gii * gjj - gij * gij, 0.0))
def elementary_symplectic(rng):
"""A random elementary symplectic map of one of three kinds."""
kind = rng.randrange(3)
eye = [[float(i == j) for j in range(4)] for i in range(4)]
if kind == 0: # an SL(2) map on one of the two symplectic planes
a, b, c = (rng.uniform(-2, 2) for _ in range(3))
while abs(a) < 0.2:
a = rng.uniform(-2, 2)
d = (1 + b * c) / a
k = 2 * rng.randrange(2)
eye[k][k], eye[k][k + 1], eye[k + 1][k], eye[k + 1][k + 1] = a, b, c, d
elif kind == 1: # y <- y + S x with S symmetric (couples the planes)
s11, s12, s22 = (rng.uniform(-2, 2) for _ in range(3))
eye[1][0], eye[1][2], eye[3][0], eye[3][2] = s11, s12, s12, s22
else: # the same rotation of (x1, x2) and of (y1, y2)
t = rng.uniform(0, 2 * math.pi)
c, s = math.cos(t), math.sin(t)
eye[0][0], eye[0][2], eye[2][0], eye[2][2] = c, -s, s, c
eye[1][1], eye[1][3], eye[3][1], eye[3][3] = c, -s, s, c
return eye
def random_symplectic(rng, factors=6):
"""A product of several random elementary symplectic maps."""
a = elementary_symplectic(rng)
for _ in range(factors - 1):
a = matmul(a, elementary_symplectic(rng))
return a
def random_volume_preserving(rng):
"""A random matrix with determinant 1 (Gaussian entries, rescaled)."""
while True:
a = [[rng.gauss(0, 1) for _ in range(4)] for _ in range(4)]
d = det4(a)
if abs(d) > 1e-3:
if d < 0:
a[0] = [-x for x in a[0]]
d = -d
s = d ** -0.25
return [[s * x for x in row] for row in a]
def main():
rng = random.Random(2024)
trials = 2000
sym = [random_symplectic(rng) for _ in range(trials)]
vol = [random_volume_preserving(rng) for _ in range(trials)]
defect = max(symplectic_defect(a) for a in sym)
w = min(omega(a[0], a[1]) for a in sym)
print(f"{trials} random symplectic matrices: max |A J A^T - J| = "
f"{defect:.1e}")
print(f" smallest w(row x1, row y1) = {w:.12f} (theory: exactly 1)")
print(f" smallest det A = {min(det4(a) for a in sym):.9f} (theory: 1)")
print()
print("Shadow of the unit ball, as a multiple of pi (unit disc = 1):")
print(f"{'':30}{'plane (x1, y1)':>16}{'plane (x1, x2)':>16}")
for label, mats in [("symplectic, smallest", sym),
("volume-preserving, smallest", vol)]:
s1 = min(shadow_area(a, 0, 1) for a in mats) / math.pi
s2 = min(shadow_area(a, 0, 2) for a in mats) / math.pi
print(f"{label:<30}{s1:>16.4f}{s2:>16.4f}")
squeeze = [[0.5, 0, 0, 0], [0, 0.5, 0, 0], [0, 0, 2, 0], [0, 0, 0, 2]]
print(f"{'the squeeze diag(1/2,1/2,2,2)':<30}"
f"{shadow_area(squeeze, 0, 1) / math.pi:>16.4f}"
f"{shadow_area(squeeze, 0, 2) / math.pi:>16.4f}")
print()
print("Symplectic maps never shrink the (x1, y1) shadow below a unit disc,")
print("but they can shrink the shadow on the Lagrangian plane (x1, x2).")
print()
print("Epistemic status: numerical sampling of finitely many matrices with")
print("a fixed seed. It agrees with the theorem (shadow area >= pi on a")
print("symplectic plane, proved in the lesson and formalised in Lean for")
print("the cylinder version) but proves nothing by itself.")
if __name__ == "__main__":
main()Symplectic shadows on never fall below ; on the Lagrangian plane even symplectic maps shrink the shadow, because vanishes there and imposes no constraint. Both runs are numerical evidence; Theorems 3 and 4 are the proofs.
Explore: Hamiltonian flows in the plane
The pendulum's phase plane, and , with and . Start trajectories from several points. Each closed orbit is a level curve of ; the separatrices through divide oscillation from rotation. The centres are surrounded by closed orbits, never by spirals: a spiral sink would shrink area, which a Hamiltonian flow cannot do.
The pendulum: a Hamiltonian flow
Trajectories are level curves of H = p²/2 − cos q.
x′ = y, y′ = −sin(x)
Click the plane to start a trajectory, or type a start point below.
Trajectories: 4. They are numerical approximations (fourth-order Runge–Kutta), not exact formulas.
Nonlinear system. Equilibria found numerically in this window, classified by their linearisation (Jacobian matrix):
- 1. (−6.283, 0): centre: closed orbits around it (λ = 0 ± 1i)
- 2. (−3.142, 0): saddle (unstable) (λ = −1, 1)
- 3. (0, 0): centre: closed orbits around it (λ = 0 ± 1i)
- 4. (3.142, 0): saddle (unstable) (λ = −1, 1)
- 5. (6.283, 0): centre: closed orbits around it (λ = 0 ± 1i)
A centre of the linearisation is inconclusive for a nonlinear system: the true orbits may close up (as for the pendulum and predator–prey) or spiral slowly.
In the plane, symplectic linear maps are exactly the matrices of determinant . Try the shear and the rotation presets: the unit square becomes a parallelogram of the same area and orientation. A reflection has determinant — area-preserving but orientation-reversing, hence anti-symplectic.
Sp(2, ℝ) = SL(2, ℝ)
In dimension two, symplectic means det = 1.
- image of the grid
- image of the unit square
- image of the flag
- before the transformation
- invariant line
The columns of A are the images of e₁ = (1, 0) and e₂ = (0, 1): Ae₁ = (1, 0), Ae₂ = (1, 1)
det A = ad − bc = 1
The unit square (area 1) becomes a parallelogram of area |det A| = 1. Since det A > 0, orientation is preserved.
Invariant lines (real eigenvectors)
λ = 1, v = (1, 0)
Only one invariant line, with eigenvalue 1: there is no second eigenvector direction.
Exercises
1. Symplectic geometry and topology
Warm-upHumanOn with and the convention , what is the Hamiltonian vector field of ?
2. Symplectic geometry and topology
CoreHumanWhich of these closed manifolds admit a symplectic form? (Choose all that apply.)
3. Symplectic geometry and topology
Warm-upHumanWhat is the dimension of the Lie group ? (Hint: its Lie algebra is , i.e. with symmetric.)
4. Symplectic geometry and topology
CoreHumanIn Moser's proof of Darboux's theorem we define a time-dependent vector field by . Which property of guarantees that this equation has a (unique) solution ?
5. Symplectic geometry and topology
CoreHumanIn coordinates on with , which diagonal linear map is volume-preserving and maps the unit ball into the cylinder — showing that Gromov's theorem fails for volume-preserving maps?
6. Symplectic geometry and topology
CoreHumanLet be a Hamiltonian diffeomorphism of the torus with standard area form, all of whose fixed points are non-degenerate. What lower bound for does the (proved) Arnold conjecture give?
7. Symplectic geometry and topology
StretchHumanWhich of the following are established theorems (not conjectures)? (Choose all that apply.)
8. Symplectic geometry and topology
CoreFormalThe Lean theorem hamiltonian_energy_conserved assumes hω : ∀ v, ω v v = 0 and hX : ∀ z w, ω (X z) w = dH z w, and concludes H (γ s) = H (γ t) for a flow line γ of X. Which modification would make the statement false?
9. Symplectic geometry and topology
Warm-upHumanA piece of the round sphere is never isometric to a piece of the flat plane, but any two area forms on surfaces are locally equivalent. Which theorem gives the second statement, in all dimensions?
10. Symplectic geometry and topology
StretchComputationalFor the harmonic oscillator , one step of symplectic Euler is , then ; one step of explicit Euler is , . Write symplectic_euler_matrix(h) and explicit_euler_matrix(h) returning the matrices (lists of rows, acting on the column ), and det2(m). The tests use exact fractions.
Common misconceptions
Misconception
"Symplectic maps are just volume-preserving maps." Only in dimension . In dimension the group of symplectomorphisms is a much smaller, rigid subgroup of the volume-preserving diffeomorphisms: the squeeze preserves volume and puts the unit ball inside a cylinder of radius , which Gromov's theorem forbids for every symplectic map.
Misconception
"Symplectic geometry has curvature invariants like Riemannian geometry." It has none: by Darboux's theorem every symplectic manifold is locally isomorphic to . All symplectic invariants — capacities, Gromov–Witten invariants, Floer homology — are global.
Misconception
"Any non-degenerate -form will do." Closedness is essential: it is what makes Hamiltonian flows preserve (Theorem 4 (ii)) and what makes Moser's trick and Darboux's theorem work. A non-degenerate -form that is not closed is an almost symplectic structure; has one but no symplectic form.
Misconception
"Every symplectomorphism isotopic to the identity is Hamiltonian, so it has fixed points." Translations of the torus are symplectic, isotopic to the identity and fixed-point-free. The obstruction is the flux, a class in ; the Arnold conjecture concerns Hamiltonian diffeomorphisms only.
Misconception
"Symplectic integrators conserve energy." They do not conserve exactly; they conserve a modified Hamiltonian up to exponentially small errors (for analytic ), so the energy error oscillates without drifting over very long times. And they are not automatically more accurate than non-symplectic methods over short times — compare RK4 and leapfrog in the experiment.
Viewpoints
Topology— Fixed points, Morse theory and the loop space
The Arnold conjecture is a statement about topology forcing dynamics: the Betti numbers of bound the number of periodic orbits of every non-degenerate Hamiltonian system on it. Floer homology realises Arnold's insight that a Hamiltonian diffeomorphism behaves like the time-one map of the gradient flow of a function: it is the Morse homology of the action functional on the free loop space , computed with holomorphic cylinders. Variants — Lagrangian Floer homology, symplectic homology, embedded contact homology — became tools far beyond symplectic geometry, for instance in Kronheimer–Mrowka's and Ozsváth–Szabó's work on 3-manifolds and knots (see low-dimensional topology).
Geometry— Compatible complex structures and the Erlangen programme
In Klein's sense, symplectic geometry on is the geometry of , just as Euclidean geometry is that of and complex geometry that of ; the intersection of any two of these three groups is the unitary group (the "two out of three" property). On a symplectic manifold the space of almost complex structures compatible with (meaning is a Riemannian metric) is non-empty and contractible, so every symplectic manifold has a canonical homotopy class of almost complex structures, hence Chern classes. Choosing is the geometer's entry point: it gives a metric, and -holomorphic curves, whose -area equals their Riemannian area, are minimal surfaces. When is integrable and compatible, is Kähler.
Analysis— Elliptic PDE and compactness
Gromov's and Floer's theories are analysis. The Cauchy–Riemann operator is a non-linear elliptic operator; its linearisation is Fredholm, with index given by the Riemann–Roch theorem, so moduli spaces of holomorphic curves are finite-dimensional manifolds when transversality holds. Gromov's compactness theorem says sequences of curves with bounded energy converge after bubbling — energy can concentrate at points and split off spheres — which is the analogue of Uhlenbeck's compactness for Yang–Mills instantons (see gauge theory) and of the concentration-compactness phenomena of geometric analysis.
Algebra— Poisson algebras and quantisation
The Poisson bracket makes a Poisson algebra: a commutative algebra with a Lie bracket that is a derivation in each argument. Quantisation asks to deform it into a non-commutative algebra with . On the Moyal product does this; De Wilde–Lecomte and Fedosov constructed such star products on every symplectic manifold, and Kontsevich (1997) on every Poisson manifold, via his formality theorem. Groenewold's theorem (1946) shows the limits: no linear map from polynomials on to operators turns all Poisson brackets into commutators exactly, so quantisation is genuinely a deformation, not a representation (see quantum mechanics).
Physics— Phase space, uncertainty and the camel
Symplectic geometry is the geometry of classical phase space: Hamilton's equations, Noether's theorem, Liouville's theorem and canonical transformations are its first theorems. There is a suggestive parallel between non-squeezing and the uncertainty principle: you cannot squeeze a cloud of classical states into a cylinder over a conjugate plane of area smaller than its own cross-section, just as forbids squeezing a quantum state's spread in one conjugate pair. This is an analogy — non-squeezing is a theorem about classical maps, not a derivation of quantum mechanics. It has been made precise only in a limited setting: for Gaussian states, Maurice de Gosson (2009) rephrased the Robertson–Schrödinger uncertainty relations as a lower bound on the symplectic capacity of the covariance ellipsoid.
Category theory— The symplectic creed and the Fukaya category
Weinstein's "symplectic creed" is that everything is a Lagrangian submanifold: the graph of a symplectomorphism is a Lagrangian in , and composition of maps becomes composition of Lagrangian correspondences. This suggests a "symplectic category" with Lagrangian correspondences as morphisms, but composition is only well behaved for transverse correspondences — a problem Wehrheim and Woodward addressed by passing to sequences of correspondences and Floer theory. The Fukaya category, an -category of Lagrangians, is the categorical heart of homological mirror symmetry.
Wonder Trails
The Kepler problem is a Hamiltonian system with more conserved quantities than degrees of freedom; its hidden symmetry is the reason all bound orbits close. This optional trail starts there.
Wonder Trail · Optional · never gradedWhy do planets move on ellipses?Planets move around the Sun on ellipses, with the Sun at one focus. Why ellipses — and not circles, egg shapes or spirals?Follow the trailHistory and global context
- 1808–1838: the mechanics. Lagrange (1808–1810) and Poisson (1809) introduced the brackets that now bear their names while studying perturbations of planetary orbits. William Rowan Hamilton (Dublin, 1834–35) recast mechanics in the form of his canonical equations, and Joseph Liouville proved the conservation of phase-space volume (1838). Carl Gustav Jacobi developed the theory of canonical transformations.
- 1882–1912: geometry and topology appear. Gaston Darboux proved his normal form for closed non-degenerate -forms (1882). Henri Poincaré, studying the three-body problem, stated his "last geometric theorem" (1912): an area-preserving twist map of an annulus has at least two fixed points. George Birkhoff proved it in 1913. It is the ancestor of the Arnold conjecture.
- 1939: the name. Hermann Weyl coined symplectic in The Classical Groups (1939), replacing the earlier "complex group" by a Greek calque of the Latin complex ("braided together").
- 1960s–70s: the modern subject. Jürgen Moser's stability theorem (1965); Vladimir Arnold's conjecture (Moscow, 1960s) and his Mathematical Methods of Classical Mechanics (1974); Jean-Marie Souriau's moment map and geometric mechanics (Marseille, 1970); Alexandre Kirillov's orbit method (1962) and the Kirillov–Kostant–Souriau forms; Alan Weinstein's Lagrangian neighbourhood theorem (1971) and creed; reduction by Kenneth Meyer and by Jerrold Marsden and Weinstein (1973–74).
- 1980s: rigidity. Charles Conley and Eduard Zehnder proved the Arnold conjecture for tori (1983). Mikhail Gromov introduced pseudo-holomorphic curves and proved non-squeezing (1985). Andreas Floer created Floer homology (1987–89) before his death in 1991. Yakov Eliashberg, Dusa McDuff, Helmut Hofer and Claude Viterbo shaped symplectic topology. In Beijing, Feng Kang pioneered symplectic difference schemes for Hamiltonian systems (1984–85), independently of Ronald Ruth's work in accelerator physics (1983) — the origin of the integrators in the computation section.
- 1990s–today. Kontsevich's homological mirror symmetry (1994); Kenji Fukaya and Kaoru Ono in Japan and Gang Liu and Gang Tian proved the rational Arnold conjecture (1998–99); Fukaya, Oh, Ohta and Ono built Lagrangian Floer theory; Paul Seidel developed Fukaya categories; Clifford Taubes proved the Weinstein conjecture in dimension three (2007). Ana Cannas da Silva's lectures and McDuff–Salamon's books made the subject teachable worldwide.
Further reading
- Ana Cannas da Silva, Lectures on Symplectic Geometry (2001) — the gentlest complete introduction: Darboux, Moser, moment maps, toric manifolds.
- Dusa McDuff and Dietmar Salamon, Introduction to Symplectic Topology (1995; 3rd ed. 2017) — the standard graduate text, including capacities and non-squeezing.
- V. I. Arnold, Mathematical Methods of Classical Mechanics (1974; English 1978) — the mechanics and the geometry together, with the conjecture in an appendix.
- Helmut Hofer and Eduard Zehnder, Symplectic Invariants and Hamiltonian Dynamics (1994) — capacities and periodic orbits.
- Dusa McDuff and Dietmar Salamon, J-holomorphic Curves and Symplectic Topology (2004; 2nd ed. 2012) — the analysis behind Gromov's theorem.
- Michèle Audin and Mihai Damian, Morse Theory and Floer Homology (2014) — a complete proof of the Arnold conjecture for aspherical manifolds.
- Leonid Polterovich, The Geometry of the Group of Symplectic Diffeomorphisms (2001).
- Ernst Hairer, Christian Lubich and Gerhard Wanner, Geometric Numerical Integration (2002) — symplectic integrators and backward error analysis.
A reading path: Cannas da Silva Parts I–IV → McDuff–Salamon (Introduction) Ch. 1–3 and 12 → Audin–Damian for Floer theory, or Hofer–Zehnder for capacities and dynamics.