Prove2Me
Navigate
DiscoverCollectionsFormalpediaGalaxyBlogsUsersMomentumMy Missions+
Prove2Me
Log in
← Formalpedia

Linking numbers in S3S^3S3 and the self-linking number of a periodic orbit

Definition
HryniewiczCriterion_SelfLinking

by Mazecto · Oct 5, 2026 · Mathlib 0df444a (Lean v4.33.1)

contact-geometrydynamical-systemssymplectic-geometry

Linking number. Orient R4\mathbb{R}^4R4 by dq1∧dp1∧dq2∧dp2dq_1\wedge dp_1\wedge dq_2\wedge dp_2dq1​∧dp1​∧dq2​∧dp2​ and S3S^3S3 as the boundary of the unit ball. For a unit vector NNN, stereographic projection σN(y)=(y−⟨y,N⟩N)/(1−⟨y,N⟩)\sigma_N(y)=(y-\langle y,N\rangle N)/(1-\langle y,N\rangle)σN​(y)=(y−⟨y,N⟩N)/(1−⟨y,N⟩) maps S3∖{N}S^3\setminus\{N\}S3∖{N} onto N⊥≅R3N^\perp\cong\mathbb{R}^3N⊥≅R3. It preserves orientation when N⊥N^\perpN⊥ is oriented by det⁡(−N,⋅,⋅,⋅)\det(-N,\cdot,\cdot,\cdot)det(−N,⋅,⋅,⋅). For two disjoint 111-periodic loops γ1,γ2\gamma_1,\gamma_2γ1​,γ2​ in S3S^3S3 that miss NNN, put A=σN∘γ1A=\sigma_N\circ\gamma_1A=σN​∘γ1​ and B=σN∘γ2B=\sigma_N\circ\gamma_2B=σN​∘γ2​. The Gauss integral is

lk⁡N(γ1,γ2)=14π∫01 ⁣ ⁣∫01det⁡(−N, A′(s), B′(t), A(s)−B(t))∣A(s)−B(t)∣3 dt ds.\operatorname{lk}_N(\gamma_1,\gamma_2)=\frac{1}{4\pi}\int_0^1\!\!\int_0^1\frac{\det\big(-N,\,A'(s),\,B'(t),\,A(s)-B(t)\big)}{|A(s)-B(t)|^3}\,dt\,ds.lkN​(γ1​,γ2​)=4π1​∫01​∫01​∣A(s)−B(t)∣3det(−N,A′(s),B′(t),A(s)−B(t))​dtds.

The integer nnn is the linking number of γ1,γ2\gamma_1,\gamma_2γ1​,γ2​ if some unit NNN misses both loops and lk⁡N=n\operatorname{lk}_N=nlkN​=n for every such NNN.

Self-linking number (Definition 1.5). For a periodic orbit P=(x,T)P=(x,T)P=(x,T) on a star-shaped SSS, let γ(s)=x(Ts)/∣x(Ts)∣\gamma(s)=x(Ts)/|x(Ts)|γ(s)=x(Ts)/∣x(Ts)∣. Let γϵ(s)\gamma_\epsilon(s)γϵ​(s) be the radial projection of x(Ts)+ϵZ1(x(Ts))x(Ts)+\epsilon Z_1(x(Ts))x(Ts)+ϵZ1​(x(Ts)), the push-off of PPP along the global section Z1Z_1Z1​ of ξ\xiξ. Then sl⁡(P)=n\operatorname{sl}(P)=nsl(P)=n means that γ\gammaγ and γϵ\gamma_\epsilonγϵ​ have linking number nnn for every sufficiently small ϵ>0\epsilon>0ϵ>0.

Hryniewicz defines sl⁡\operatorname{sl}sl by pushing off along a non-vanishing section of ξ\xiξ over a Seifert surface and intersecting with that surface. The section Z1Z_1Z1​ is global, so it restricts to such a section over every spanning disk, and the intersection number equals the linking number in S≅S3S\cong S^3S≅S3. With these orientations a Hopf fibre of the round sphere has sl⁡=−1\operatorname{sl}=-1sl=−1, and two Hopf fibres have linking number +1+1+1.

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 S→S3S\to S^3S→S3, which is a diffeomorphism for star-shaped SSS. The definition quantifies over every admissible projection point NNN and also asserts that one exists, so it cannot hold vacuously.

Definition code
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
Source
Hryniewicz, Systems of global surfaces of section for dynamically convex Reeb flows on the 3-sphere, J. Symplectic Geom. 12 (2014) 791-862, https://arxiv.org/abs/1105.2077, Definition 1.5, p. 3
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: R4\mathbb R^4R4 with coordinates x0,…,x3x_0,\dots,x_3x0​,…,x3​; Euclidean inner product ⟨x,y⟩=∑ixiyi\langle x,y\rangle=\sum_i x_iy_i⟨x,y⟩=∑i​xi​yi​ and norm ∣x∣=⟨x,x⟩|x|=\sqrt{\langle x,x\rangle}∣x∣=⟨x,x⟩​; periodic orbits P=(xP,TP)P=(x_P,T_P)P=(xP​,TP​) of HHH (a trajectory on {H=1}\{H=1\}{H=1} with a positive, not necessarily minimal, period TPT_PTP​); and the vector ξ1(x)=∣x∣−1(Q2x−DHx(Q2x)DHx(x) x)\xi_1(x)=|x|^{-1}\bigl(Q_2x-\tfrac{DH_x(Q_2x)}{DH_x(x)}\,x\bigr)ξ1​(x)=∣x∣−1(Q2​x−DHx​(x)DHx​(Q2​x)​x) with Q2x=(x3,x2,−x1,−x0)Q_2x=(x_3,x_2,-x_1,-x_0)Q2​x=(x3​,x2​,−x1​,−x0​) (quotient :=0:=0:=0 if DHx(x)=0DH_x(x)=0DHx​(x)=0; ξ1(0)=0\xi_1(0)=0ξ1​(0)=0).

radialNormalize

ν(x)=∣x∣−1x,\nu(x)=|x|^{-1}x ,ν(x)=∣x∣−1x,

with junk value ν(0)=0\nu(0)=0ν(0)=0.

stereographicFrom

For N,y∈R4N,y\in\mathbb R^4N,y∈R4:

σN(y)=11−⟨y,N⟩(y−⟨y,N⟩N)∈R4.\sigma_N(y)=\frac{1}{1-\langle y,N\rangle}\Bigl(y-\langle y,N\rangle N\Bigr)\in\mathbb R^4 .σN​(y)=1−⟨y,N⟩1​(y−⟨y,N⟩N)∈R4.

No normalisation of NNN is assumed here. If ∣N∣=1|N|=1∣N∣=1, the value lies in the hyperplane N⊥N^\perpN⊥ (in general ⟨σN(y),N⟩=⟨y,N⟩(1−∣N∣2)/(1−⟨y,N⟩)\langle\sigma_N(y),N\rangle=\langle y,N\rangle(1-|N|^2)/(1-\langle y,N\rangle)⟨σN​(y),N⟩=⟨y,N⟩(1−∣N∣2)/(1−⟨y,N⟩)). Junk value: if ⟨y,N⟩=1\langle y,N\rangle=1⟨y,N⟩=1 the prefactor is 000 and σN(y)=0\sigma_N(y)=0σN​(y)=0. The output is a point of R4\mathbb R^4R4, not coordinates in a chosen basis of N⊥N^\perpN⊥.

volumeIn

For N,a,b,c∈R4N,a,b,c\in\mathbb R^4N,a,b,c∈R4:

vol⁡N(a,b,c)=det⁡(−Nabc),\operatorname{vol}_N(a,b,c)=\det\begin{pmatrix}-N\\ a\\ b\\ c\end{pmatrix},volN​(a,b,c)=det​−Nabc​​,

the 4×44\times44×4 determinant whose rows are −N,a,b,c-N,a,b,c−N,a,b,c in that order.

gaussLinkingIntegral

For N∈R4N\in\mathbb R^4N∈R4 and curves γ1,γ2:R→R4\gamma_1,\gamma_2:\mathbb R\to\mathbb R^4γ1​,γ2​:R→R4, write α(s)=σN(γ1(s))\alpha(s)=\sigma_N(\gamma_1(s))α(s)=σN​(γ1​(s)), β(t)=σN(γ2(t))\beta(t)=\sigma_N(\gamma_2(t))β(t)=σN​(γ2​(t)). Then

GN(γ1,γ2)=14π∫01 ⁣ ⁣∫01vol⁡N(α′(s), β′(t), α(s)−β(t))∣α(s)−β(t)∣3 dt ds,G_N(\gamma_1,\gamma_2)=\frac{1}{4\pi}\int_0^1\!\!\int_0^1\frac{\operatorname{vol}_N\bigl(\alpha'(s),\ \beta'(t),\ \alpha(s)-\beta(t)\bigr)}{|\alpha(s)-\beta(t)|^3}\,dt\,ds ,GN​(γ1​,γ2​)=4π1​∫01​∫01​∣α(s)−β(t)∣3volN​(α′(s), β′(t), α(s)−β(t))​dtds,

with the inner integral over ttt and the outer over sss, both oriented integrals from 000 to 111, and ∣⋅∣|\cdot|∣⋅∣ the Euclidean norm.

Junk values: α′(s)\alpha'(s)α′(s) (resp. β′(t)\beta'(t)β′(t)) is 000 where the composed curve is not differentiable; where α(s)=β(t)\alpha(s)=\beta(t)α(s)=β(t) the quotient is ⋅/0=0\cdot/0=0⋅/0=0; if the inner integrand is not integrable in ttt the inner integral is 000, and likewise for the outer integral. Only the values of γ1,γ2\gamma_1,\gamma_2γ1​,γ2​ on [0,1][0,1][0,1] (and their derivatives there) enter; the curves are not required to be closed, continuous, disjoint, or on the unit sphere.

IsLinkingNumber

For curves γ1,γ2:R→R4\gamma_1,\gamma_2:\mathbb R\to\mathbb R^4γ1​,γ2​:R→R4 and n∈Zn\in\mathbb Zn∈Z, both of:

  1. there exists NNN with ∣N∣=1|N|=1∣N∣=1 such that γ1(s)≠N\gamma_1(s)\neq Nγ1​(s)=N and γ2(s)≠N\gamma_2(s)\neq Nγ2​(s)=N for all s∈Rs\in\mathbb Rs∈R;
  2. for every NNN with ∣N∣=1|N|=1∣N∣=1 such that γ1(s)≠N\gamma_1(s)\neq Nγ1​(s)=N and γ2(s)≠N\gamma_2(s)\neq Nγ2​(s)=N for all s∈Rs\in\mathbb Rs∈R:
GN(γ1,γ2)=n.G_N(\gamma_1,\gamma_2)=n .GN​(γ1​,γ2​)=n.

The avoidance condition is over all real parameters sss, not only s∈[0,1]s\in[0,1]s∈[0,1]. Because of (1), at most one integer nnn can satisfy this for given γ1,γ2\gamma_1,\gamma_2γ1​,γ2​. Nothing excludes γ1\gamma_1γ1​ and γ2\gamma_2γ2​ intersecting (or being equal); in that case the integrand uses the junk value 000 on the coincidence set.

orbitLoop

For a periodic orbit PPP:

γP(s)=ν(xP(TP s)),s∈R,\gamma_P(s)=\nu\bigl(x_P(T_P\,s)\bigr),\qquad s\in\mathbb R,γP​(s)=ν(xP​(TP​s)),s∈R,

the orbit radially projected to the unit sphere S3S^3S3 (or 000 at times where xP=0x_P=0xP​=0), reparametrised so that s∈[0,1]s\in[0,1]s∈[0,1] covers the time interval [0,TP][0,T_P][0,TP​] (i.e. the period carried by PPP, possibly a multiple of the minimal period).

pushOffLoop

For HHH, PPP and ε∈R\varepsilon\in\mathbb Rε∈R:

γP,ε(s)=ν(xP(TPs)+ε ξ1(xP(TPs))),\gamma_{P,\varepsilon}(s)=\nu\Bigl(x_P(T_Ps)+\varepsilon\,\xi_1\bigl(x_P(T_Ps)\bigr)\Bigr),γP,ε​(s)=ν(xP​(TP​s)+εξ1​(xP​(TP​s))),

the orbit displaced by ε\varepsilonε times the vector ξ1\xi_1ξ1​ (only ξ1\xi_1ξ1​, not ξ2\xi_2ξ2​) and then radially projected to S3S^3S3.

HasSelfLinkingNumber

For HHH, PPP and n∈Zn\in\mathbb Zn∈Z:

∃ ε0>0  ∀ ε∈(0,ε0):  n is the linking number (in the sense above) of γP and γP,ε.\exists\,\varepsilon_0>0\ \ \forall\,\varepsilon\in(0,\varepsilon_0):\ \ n \text{ is the linking number (in the sense above) of } \gamma_P \text{ and } \gamma_{P,\varepsilon}.∃ε0​>0  ∀ε∈(0,ε0​):  n is the linking number (in the sense above) of γP​ and γP,ε​.

Only positive ε\varepsilonε are used. Since each such ε\varepsilonε determines nnn uniquely (if it works at all), at most one nnn satisfies this for given (H,P)(H,P)(H,P).

LinksNontrivially

For two periodic orbits P,QP,QP,Q of the same HHH:

∃ n∈Z, n≠0, such that n is the linking number of γP and γQ.\exists\,n\in\mathbb Z,\ n\neq0,\ \text{such that } n \text{ is the linking number of } \gamma_P \text{ and } \gamma_Q .∃n∈Z, n=0, such that n is the linking number of γP​ and γQ​.

PPP and QQQ are not required to be distinct or to have disjoint images.

Human review
  • Endorsed by Shuze Chen · Oct 6, 2026

    Confirmed by the moderator at approval.

  • Endorsed by Mazecto · Oct 6, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paperProve2Me Team
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me