Star-shaped energy surfaces in , Hamiltonian flows, periodic orbits
DefinitionHryniewiczCriterion_BasicBasic objects on with coordinates .
- The Liouville form and the symplectic form .
- For a smooth , the energy surface . It is strictly star-shaped if is smooth, every ray , , meets exactly once, and on . It is strictly convex if the Hessian of is positive definite on every tangent space , .
- The Hamiltonian vector field is defined by , that is
With this sign on a star-shaped , so is a positive multiple of the Reeb vector field of . 4. A trajectory is a solution of . A periodic orbit is a trajectory with for all and . It is prime if is its least positive period; multiple covers are periodic orbits too. Its image is . 5. The global frame of the contact structure . Let and . Put
On these span and satisfy . They are the images of the standard quaternionic frame of under the radial diffeomorphism .
These are the objects of Hryniewicz's Section 3, where the contact form is written as , equivalently on a star-shaped .
Formalization Note is Fin 4 → ℝ. Its default norm is the sup norm, so the Euclidean inner product and norm are defined separately (dot4, euclidNorm). Smoothness means ContDiff ℝ ∞.
import Mathlib.Analysis.Calculus.FDeriv.Basic
import Mathlib.Analysis.Calculus.ContDiff.Defs
import Mathlib.Analysis.Calculus.Deriv.Basic
import Mathlib.Analysis.SpecialFunctions.Sqrt
/-!
# Star-shaped energy surfaces in `ℝ⁴` and their Hamiltonian flows
Basic objects for Hryniewicz, *Systems of global surfaces of section for dynamically
convex Reeb flows on the 3-sphere*, J. Symplectic Geom. 12 (2014), arXiv:1105.2077,
§1 (p. 2) and §3 (p. 12): the Liouville form `λ₀ = ½ Σ (q dp - p dq)`, the
symplectic form `ω₀ = dλ₀`, strictly star-shaped levels `S = H⁻¹(1)`, the Hamiltonian
vector field (a positive multiple of the Reeb field of `λ₀|S`), periodic orbits, and
the global symplectic frame of the contact structure `ξ = ker λ₀|S`.
-/
namespace HryniewiczCriterion
noncomputable section
open scoped ContDiff
/-- `ℝ⁴` with coordinates ordered `(q₁, p₁, q₂, p₂)`. -/
abbrev R4 := Fin 4 → ℝ
/-- The Liouville form `λ₀ = ½ (q₁ dp₁ - p₁ dq₁ + q₂ dp₂ - p₂ dq₂)` at `x`,
applied to `v`. -/
def liouvilleForm (x v : R4) : ℝ :=
(x 0 * v 1 - x 1 * v 0 + x 2 * v 3 - x 3 * v 2) / 2
/-- The symplectic form `ω₀ = dλ₀ = dq₁ ∧ dp₁ + dq₂ ∧ dp₂`. -/
def omega0 (u v : R4) : ℝ :=
u 0 * v 1 - u 1 * v 0 + u 2 * v 3 - u 3 * v 2
/-- The Euclidean inner product on `ℝ⁴`. -/
def dot4 (x y : R4) : ℝ := ∑ i, x i * y i
/-- The Euclidean norm on `ℝ⁴` (the default norm on `Fin 4 → ℝ` is the sup norm). -/
def euclidNorm (x : R4) : ℝ := Real.sqrt (dot4 x x)
/-- The partial derivative `∂H/∂xᵢ` at `x`. -/
def partialDeriv (H : R4 → ℝ) (x : R4) (i : Fin 4) : ℝ :=
fderiv ℝ H x (Pi.single i 1)
/-- The Hamiltonian vector field `X_H`, defined by `ω₀(X_H, ·) = -dH`:
`X_H = (-∂H/∂p₁, ∂H/∂q₁, -∂H/∂p₂, ∂H/∂q₂)`. With this sign
`λ₀(X_H) = ½ dH(x) x`, so on a strictly star-shaped level `X_H` is a positive
multiple of the Reeb vector field of `λ₀|S`. -/
def hamiltonianVectorField (H : R4 → ℝ) (x : R4) : R4 :=
![-partialDeriv H x 1, partialDeriv H x 0, -partialDeriv H x 3, partialDeriv H x 2]
/-- The energy surface `S = H⁻¹(1)`. -/
def energySurface (H : R4 → ℝ) : Set R4 := {x | H x = 1}
/-- `S = H⁻¹(1)` is a strictly star-shaped hypersurface: `H` is smooth, every ray from
the origin meets `S` exactly once, and it crosses `S` transversally, `dH(x) x > 0`. -/
def IsStrictlyStarShapedLevel (H : R4 → ℝ) : Prop :=
ContDiff ℝ ∞ H ∧
(∀ u : R4, u ≠ 0 → ∃! r : ℝ, 0 < r ∧ H (r • u) = 1) ∧
(∀ x : R4, H x = 1 → 0 < fderiv ℝ H x x)
/-- `S = H⁻¹(1)` bounds a strictly convex domain: the Hessian of `H` is positive
definite on every tangent space `T_x S = ker dH(x)`. -/
def IsStrictlyConvexLevel (H : R4 → ℝ) : Prop :=
∀ x : R4, H x = 1 → ∀ v : R4, v ≠ 0 → fderiv ℝ H x v = 0 →
0 < fderiv ℝ (fderiv ℝ H) x v v
/-- `y` is a trajectory of `X_H` on `S`, defined for all times. -/
def IsTrajectory (H : R4 → ℝ) (y : ℝ → R4) : Prop :=
(∀ t : ℝ, HasDerivAt y (hamiltonianVectorField H (y t)) t) ∧ ∀ t : ℝ, H (y t) = 1
/-- A periodic orbit `P = (x, T)` of `X_H` on `S`: a trajectory with period `T > 0`.
`T` need not be the least period, so multiple covers are included. -/
structure PeriodicOrbit (H : R4 → ℝ) where
x : ℝ → R4
T : ℝ
T_pos : 0 < T
trajectory : IsTrajectory H x
periodic : ∀ t : ℝ, x (t + T) = x t
/-- `P` is prime (simply covered): `T` is the least positive period. -/
def PeriodicOrbit.IsPrime {H : R4 → ℝ} (P : PeriodicOrbit H) : Prop :=
∀ t : ℝ, 0 < t → t < P.T → P.x t ≠ P.x 0
/-- The geometric image `x(ℝ)` of a periodic orbit. -/
def PeriodicOrbit.image {H : R4 → ℝ} (P : PeriodicOrbit H) : Set R4 :=
Set.range P.x
/-- The quaternionic matrix `Q₁ x = (-q₂, p₂, q₁, -p₁)`. -/
def quatQ1 (x : R4) : R4 := ![-x 2, x 3, x 0, -x 1]
/-- The quaternionic matrix `Q₂ x = (p₂, q₂, -p₁, -q₁)`; `Q₂ = J₀ Q₁` where
`ω₀(u, v) = ⟨u, J₀ v⟩`. Both `Q₁ x` and `Q₂ x` lie in `ker λ₀(x)`, and
`ω₀(Q₂ x, Q₁ x) = |x|²`. -/
def quatQ2 (x : R4) : R4 := ![x 3, x 2, -x 1, -x 0]
/-- Radial projection of `Q x` to `T_x S`: `Q x - (dH(x)(Q x) / dH(x) x) x`. This is
the push-forward of the round-sphere vector `Q u` under `u ↦ ρ(u) u`, `x = ρ(u) u`. -/
def xiFrameRaw (H : R4 → ℝ) (Q : R4 → R4) (x : R4) : R4 :=
Q x - (fderiv ℝ H x (Q x) / fderiv ℝ H x x) • x
/-- First vector `Z₁ = |x|⁻¹ (Q₂ x - (dH(Q₂x)/dH(x)x) x)` of the global symplectic frame
of `ξ = ker λ₀ ∩ TS`. -/
def xiFrame1 (H : R4 → ℝ) (x : R4) : R4 := (euclidNorm x)⁻¹ • xiFrameRaw H quatQ2 x
/-- Second vector `Z₂ = |x|⁻¹ (Q₁ x - (dH(Q₁x)/dH(x)x) x)`; `ω₀(Z₁, Z₂) = 1`. -/
def xiFrame2 (H : R4 → ℝ) (x : R4) : R4 := (euclidNorm x)⁻¹ • xiFrameRaw H quatQ1 x
end
end HryniewiczCriterion
Read-back
What the Lean code literally says, in plain math · claude-opus-5-5
Read-back: Def_HryniewiczCriterion_Basic
All declarations live in the namespace HryniewiczCriterion. Throughout, is an arbitrary function (no regularity is assumed unless a definition says so).
Ambient space (R4)
R4 is the space of functions , i.e. with coordinates , indexed from . Its built-in norm is the sup norm ; this norm is used implicitly by every derivative (fderiv) below, but the Euclidean norm is defined separately (see euclidNorm). Derivatives on do not depend on the choice of norm.
liouvilleForm
For :
The coordinate pairs are and , with the first member of each pair carrying the sign in front of of the second member. Note for every .
omega0
For :
i.e. in this sign convention. One has .
dot4, euclidNorm
(standard Euclidean inner product) and (Euclidean norm; ).
partialDeriv
where is the -th standard basis vector and is the Fréchet derivative of at . Junk value: if is not differentiable at , then and for all .
hamiltonianVectorField
With the conventions above this satisfies for all (wherever is differentiable), and
At points where is not differentiable, .
energySurface
The level is fixed to . No regularity or nonemptiness is assumed.
IsStrictlyStarShapedLevel
satisfies this property iff all three hold:
- is on all of ;
- for every there is exactly one with (each open ray from the origin meets in exactly one point);
- for every with : .
Nothing is required about off the level set, about beyond what follows (condition 3 excludes , since ), or about boundedness/compactness of beyond what conditions 1–2 imply.
IsStrictlyConvexLevel
For every with and every with :
where is the Fréchet derivative of at , applied to and then to . No smoothness is assumed by this definition itself. Junk values: if is not differentiable at then , so every satisfies ; if is not differentiable at then and the inequality fails. Since is always nonzero in , the condition can only hold at points of where is differentiable. If the condition holds vacuously.
IsTrajectory
A curve is a trajectory of iff
- for every , is differentiable at with , and
- for every .
So trajectories are defined for all real time and lie on . If vanishes at a point (including any point where is not differentiable), the constant curve is a trajectory.
PeriodicOrbit (structure)
A periodic orbit of consists of data:
- a curve ,
- a real number ,
subject to: ; is a trajectory of (as above); and for all .
is any positive period, not necessarily the minimal one; the same curve with periods , , gives distinct periodic orbits (multiple covers are included). Two orbits differing by a time shift of the curve are also distinct objects. Constant (stationary) trajectories are allowed if they exist.
PeriodicOrbit.IsPrime
The curve does not return to its starting point strictly before time .
PeriodicOrbit.image
, the full range of the curve (a set, carrying no parametrisation, orientation or multiplicity).
quatQ1, quatQ2
Linear maps :
By direct computation: , , , , and .
xiFrameRaw
For a map and :
Junk value: if (in particular if is not differentiable at , or ), the quotient is and . When , .
xiFrame1, xiFrame2
Note the index swap: is built from and from . The normalising factor is the Euclidean norm of the base point , not of the vector itself. At the inverse is taken as , so .
Consequences of the formulas (for ): ; if then ; and, since on and on ,
The vectors are generally not unit vectors and not Euclidean-orthogonal (the -correction terms change their lengths and inner product).
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.