Linking numbers in and the self-linking number of a periodic orbit
DefinitionHryniewiczCriterion_SelfLinkingLinking number. Orient by and as the boundary of the unit ball. For a unit vector , stereographic projection maps onto . It preserves orientation when is oriented by . For two disjoint -periodic loops in that miss , put and . The Gauss integral is
The integer is the linking number of if some unit misses both loops and for every such .
Self-linking number (Definition 1.5). For a periodic orbit on a star-shaped , let . Let be the radial projection of , the push-off of along the global section of . Then means that and have linking number for every sufficiently small .
Hryniewicz defines by pushing off along a non-vanishing section of over a Seifert surface and intersecting with that surface. The section is global, so it restricts to such a section over every spanning disk, and the intersection number equals the linking number in . With these orientations a Hopf fibre of the round sphere has , and two Hopf fibres have linking number .
Two periodic orbits link non-trivially if their loops have a linking number and it is non-zero.
Formalization Note Linking is computed after radial projection , which is a diffeomorphism for star-shaped . The definition quantifies over every admissible projection point and also asserts that one exists, so it cannot hold vacuously.
import Definitions.Def_HryniewiczCriterion_Basic
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Basic
import Mathlib.MeasureTheory.Integral.IntervalIntegral.Basic
import Mathlib.LinearAlgebra.Matrix.Determinant.Basic
/-!
# Linking numbers in `S³` and the self-linking number of a periodic orbit
Hryniewicz, arXiv:1105.2077, Definition 1.5 (p. 3). For a periodic orbit `P` on
`S = H⁻¹(1)`, `sl(P)` is the linking number of `P` with its push-off along a
non-vanishing section of `ξ`. Since `ξ` has the global frame `Z₁, Z₂`, which extends
over every spanning disk, the push-off is taken along `Z₁`. Linking numbers are
computed in `S³` (after radial projection `S → S³`, a diffeomorphism) by the Gauss
integral after stereographic projection.
Orientation: `S³` is oriented as the boundary of the unit ball of `ℝ⁴`, and `ℝ⁴` by
`dq₁ ∧ dp₁ ∧ dq₂ ∧ dp₂ = ½ ω₀ ∧ ω₀`. Stereographic projection from `N` onto `N^⊥` is
orientation preserving when `N^⊥` is oriented by `det(-N, ·, ·, ·)`. With these
conventions a Hopf fibre of the round sphere has `sl = -1`.
-/
namespace HryniewiczCriterion
noncomputable section
/-- Radial projection `x ↦ x / |x|` to the unit sphere `S³`. -/
def radialNormalize (x : R4) : R4 := (euclidNorm x)⁻¹ • x
/-- Stereographic projection of `S³ \ {N}` from the unit vector `N` onto the
hyperplane `N^⊥ ≅ ℝ³`: `y ↦ (y - ⟨y, N⟩ N) / (1 - ⟨y, N⟩)`. -/
def stereographicFrom (N y : R4) : R4 :=
(1 - dot4 y N)⁻¹ • (y - dot4 y N • N)
/-- The oriented volume of `a, b, c ∈ N^⊥`: `det(-N, a, b, c)` (rows). -/
def volumeIn (N a b c : R4) : ℝ :=
Matrix.det (Matrix.of ![-N, a, b, c])
/-- The Gauss linking integral of two `1`-periodic loops `γ₁, γ₂` in `S³`, after
stereographic projection from `N`:
`(4π)⁻¹ ∫₀¹ ∫₀¹ vol(A'(s), B'(t), A(s) - B(t)) / |A(s) - B(t)|³ dt ds`,
`A = σ_N ∘ γ₁`, `B = σ_N ∘ γ₂`. -/
def gaussLinkingIntegral (N : R4) (γ₁ γ₂ : ℝ → R4) : ℝ :=
(4 * Real.pi)⁻¹ * ∫ s in (0 : ℝ)..1, ∫ t in (0 : ℝ)..1,
volumeIn N (deriv (fun s => stereographicFrom N (γ₁ s)) s)
(deriv (fun t => stereographicFrom N (γ₂ t)) t)
(stereographicFrom N (γ₁ s) - stereographicFrom N (γ₂ t)) /
euclidNorm (stereographicFrom N (γ₁ s) - stereographicFrom N (γ₂ t)) ^ 3
/-- `n` is the linking number of the loops `γ₁, γ₂` in `S³`: some unit vector `N`
misses both loops, and the Gauss integral from every such `N` equals `n`. -/
def IsLinkingNumber (γ₁ γ₂ : ℝ → R4) (n : ℤ) : Prop :=
(∃ N : R4, euclidNorm N = 1 ∧ ∀ s, γ₁ s ≠ N ∧ γ₂ s ≠ N) ∧
∀ N : R4, euclidNorm N = 1 → (∀ s, γ₁ s ≠ N ∧ γ₂ s ≠ N) →
gaussLinkingIntegral N γ₁ γ₂ = n
/-- The loop `s ↦ x(Ts)/|x(Ts)|`, `s ∈ ℝ/ℤ`, of a periodic orbit, in `S³`. -/
def orbitLoop {H : R4 → ℝ} (P : PeriodicOrbit H) : ℝ → R4 :=
fun s => radialNormalize (P.x (P.T * s))
/-- The push-off `s ↦ (x(Ts) + ε Z₁(x(Ts))) / |·|` of `P` along `ξ`, in `S³`. -/
def pushOffLoop (H : R4 → ℝ) (P : PeriodicOrbit H) (ε : ℝ) : ℝ → R4 :=
fun s => radialNormalize (P.x (P.T * s) + ε • xiFrame1 H (P.x (P.T * s)))
/-- `sl(P) = n`: for all small `ε > 0`, `P` and its push-off along `ξ` have linking
number `n`. -/
def HasSelfLinkingNumber (H : R4 → ℝ) (P : PeriodicOrbit H) (n : ℤ) : Prop :=
∃ ε₀ : ℝ, 0 < ε₀ ∧ ∀ ε : ℝ, 0 < ε → ε < ε₀ →
IsLinkingNumber (orbitLoop P) (pushOffLoop H P ε) n
/-- Two periodic orbits are linked non-trivially: their loops have a linking number,
and it is non-zero. -/
def LinksNontrivially {H : R4 → ℝ} (P Q : PeriodicOrbit H) : Prop :=
∃ n : ℤ, n ≠ 0 ∧ IsLinkingNumber (orbitLoop P) (orbitLoop Q) n
end
end HryniewiczCriterion
Read-back
What the Lean code literally says, in plain math · claude-opus-5-5
Read-back: Def_HryniewiczCriterion_SelfLinking
Namespace HryniewiczCriterion; uses Def_HryniewiczCriterion_Basic: with coordinates ; Euclidean inner product and norm ; periodic orbits of (a trajectory on with a positive, not necessarily minimal, period ); and the vector with (quotient if ; ).
radialNormalize
with junk value .
stereographicFrom
For :
No normalisation of is assumed here. If , the value lies in the hyperplane (in general ). Junk value: if the prefactor is and . The output is a point of , not coordinates in a chosen basis of .
volumeIn
For :
the determinant whose rows are in that order.
gaussLinkingIntegral
For and curves , write , . Then
with the inner integral over and the outer over , both oriented integrals from to , and the Euclidean norm.
Junk values: (resp. ) is where the composed curve is not differentiable; where the quotient is ; if the inner integrand is not integrable in the inner integral is , and likewise for the outer integral. Only the values of on (and their derivatives there) enter; the curves are not required to be closed, continuous, disjoint, or on the unit sphere.
IsLinkingNumber
For curves and , both of:
- there exists with such that and for all ;
- for every with such that and for all :
The avoidance condition is over all real parameters , not only . Because of (1), at most one integer can satisfy this for given . Nothing excludes and intersecting (or being equal); in that case the integrand uses the junk value on the coincidence set.
orbitLoop
For a periodic orbit :
the orbit radially projected to the unit sphere (or at times where ), reparametrised so that covers the time interval (i.e. the period carried by , possibly a multiple of the minimal period).
pushOffLoop
For , and :
the orbit displaced by times the vector (only , not ) and then radially projected to .
HasSelfLinkingNumber
For , and :
Only positive are used. Since each such determines uniquely (if it works at all), at most one satisfies this for given .
LinksNontrivially
For two periodic orbits of the same :
and are not required to be distinct or to have disjoint images.
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.