Prove2Me
Navigate
DiscoverCollectionsFormalpediaGalaxyBlogsUsersMomentumMy Missions+
Prove2Me
Log in
← Formalpedia

Paths of symplectic matrices, ρ^\hat\rhoρ^​, and the Conley–Zehnder and Maslov indices

Definition
ConleyZehnder_Setting

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

conley-zehnder-indexmaslov-indexsymplectic-geometrysymplectic-group

Objects for the Conley–Zehnder index of paths of symplectic matrices, following Gutt, §2.

  1. Symplectic group. R2n\mathbb{R}^{2n}R2n has coordinates (q,p)(q,p)(q,p) and
J0=(0−IdId0).J_0=\begin{pmatrix}0&-\mathrm{Id}\\ \mathrm{Id}&0\end{pmatrix}.J0​=(0Id​−Id0​).

Sp(2n)\mathrm{Sp}(2n)Sp(2n) is the set of real 2n×2n2n\times2n2n×2n matrices with AJ0AT=J0AJ_0A^{\mathsf T}=J_0AJ0​AT=J0​, and Sp∗(2n)={A∈Sp(2n):det⁡(Id−A)≠0}\mathrm{Sp}^*(2n)=\{A\in\mathrm{Sp}(2n):\det(\mathrm{Id}-A)\neq0\}Sp∗(2n)={A∈Sp(2n):det(Id−A)=0}. 2. Paths. SP(n)\mathrm{SP}(n)SP(n) is the set of continuous ψ:[0,1]→Sp(2n)\psi:[0,1]\to\mathrm{Sp}(2n)ψ:[0,1]→Sp(2n) with ψ(0)=Id\psi(0)=\mathrm{Id}ψ(0)=Id and ψ(1)∈Sp∗(2n)\psi(1)\in\mathrm{Sp}^*(2n)ψ(1)∈Sp∗(2n) (Definition 4). A symplectic loop is a continuous φ:[0,1]→Sp(2n)\varphi:[0,1]\to\mathrm{Sp}(2n)φ:[0,1]→Sp(2n) with φ(0)=φ(1)=Id\varphi(0)=\varphi(1)=\mathrm{Id}φ(0)=φ(1)=Id. 3. Endpoints. W+=−IdW^+=-\mathrm{Id}W+=−Id and W−=diag(2,−1,…,−1,12,−1,…,−1)W^-=\mathrm{diag}(2,-1,\dots,-1,\tfrac12,-1,\dots,-1)W−=diag(2,−1,…,−1,21​,−1,…,−1). 4. Complex determinant. CA=12(A−J0AJ0)=(X−YYX)C_A=\tfrac12(A-J_0AJ_0)=\begin{pmatrix}X&-Y\\Y&X\end{pmatrix}CA​=21​(A−J0​AJ0​)=(XY​−YX​), det⁡CCA=det⁡(X+iY)\det_{\mathbb C}C_A=\det(X+iY)detC​CA​=det(X+iY), and ρ^(A)=det⁡CCA/∣det⁡CCA∣\hat\rho(A)=\det_{\mathbb C}C_A/|\det_{\mathbb C}C_A|ρ^​(A)=detC​CA​/∣detC​CA​∣ (formula (9)). 5. Degree. A continuous θ:[0,1]→R\theta:[0,1]\to\mathbb{R}θ:[0,1]→R is an argument of f:[0,1]→Cf:[0,1]\to\mathbb{C}f:[0,1]→C if f(t)=eiθ(t)f(t)=e^{i\theta(t)}f(t)=eiθ(t) for all ttt. An extension of ψ∈SP(n)\psi\in\mathrm{SP}(n)ψ∈SP(n) is a path χ\chiχ in Sp∗(2n)\mathrm{Sp}^*(2n)Sp∗(2n) from ψ(1)\psi(1)ψ(1) to W+W^+W+ or W−W^-W−. The integer kkk is a value of the index of ψ\psiψ if for some extension χ\chiχ and arguments θ1\theta_1θ1​ of ρ^∘ψ\hat\rho\circ\psiρ^​∘ψ and θ2\theta_2θ2​ of ρ^∘χ\hat\rho\circ\chiρ^​∘χ,

2((θ1(1)−θ1(0))+(θ2(1)−θ2(0)))=2πk,2\big((\theta_1(1)-\theta_1(0))+(\theta_2(1)-\theta_2(0))\big)=2\pi k,2((θ1​(1)−θ1​(0))+(θ2​(1)−θ2​(0)))=2πk,

i.e. k=deg⁡(ρ^2∘ψ~)k=\deg(\hat\rho^2\circ\tilde\psi)k=deg(ρ^​2∘ψ~​) for the concatenation ψ~\tilde\psiψ~​ of ψ\psiψ and χ\chiχ. 6. Indices. μCZ(ψ)\mu_{CZ}(\psi)μCZ​(ψ) is such a value kkk (Definition 7 in the form of Corollary 12), and the Maslov index μ(φ)\mu(\varphi)μ(φ) of a loop is an integer kkk with θ(1)−θ(0)=2πk\theta(1)-\theta(0)=2\pi kθ(1)−θ(0)=2πk for an argument θ\thetaθ of ρ^∘φ\hat\rho\circ\varphiρ^​∘φ. 7. Signature and block sum. Sign(S)\mathrm{Sign}(S)Sign(S) is the number of positive minus the number of negative eigenvalues of a symmetric SSS. A′⋄A′′A'\diamond A''A′⋄A′′ is the block embedding Sp(2n′)×Sp(2n′′)→Sp(2(n′+n′′))\mathrm{Sp}(2n')\times\mathrm{Sp}(2n'')\to\mathrm{Sp}(2(n'+n''))Sp(2n′)×Sp(2n′′)→Sp(2(n′+n′′)), (q′,p′)⊕(q′′,p′′)↦(q′,q′′,p′,p′′)(q',p')\oplus(q'',p'')\mapsto(q',q'',p',p'')(q′,p′)⊕(q′′,p′′)↦(q′,q′′,p′,p′′). 8. The three characterizing properties for a map μ\muμ from paths to Z\mathbb{Z}Z:

  • Homotopy: μ\muμ is constant on each connected component of SP(n)\mathrm{SP}(n)SP(n) (compact-open topology).
  • Loop: μ(φψ)=μ(ψ)+2μ(φ)\mu(\varphi\psi)=\mu(\psi)+2\mu(\varphi)μ(φψ)=μ(ψ)+2μ(φ) for every symplectic loop φ\varphiφ and every ψ∈SP(n)\psi\in\mathrm{SP}(n)ψ∈SP(n).
  • Signature: 2μ(t↦exp⁡(tJ0S))=Sign(S)2\mu(t\mapsto\exp(tJ_0S))=\mathrm{Sign}(S)2μ(t↦exp(tJ0​S))=Sign(S) for every symmetric nondegenerate SSS whose eigenvalues all have absolute value <2π<2\pi<2π.

Formalization Note Matrices are indexed by Fin n ⊕ Fin n; J0J_0J0​ is Matrix.J and Sp(2n)\mathrm{Sp}(2n)Sp(2n) is Matrix.symplecticGroup. Paths are C(unitInterval, Mat n). czIndex and maslovIndex pick a value by choice and return 000 if none exists; that the value exists and is unique is a separate theorem. Index maps are functions on all continuous paths, and the properties constrain them only on SP(n)\mathrm{SP}(n)SP(n).

Definition code
import Mathlib.LinearAlgebra.SymplecticGroup
import Mathlib.LinearAlgebra.Matrix.Block
import Mathlib.Analysis.Normed.Algebra.MatrixExponential
import Mathlib.Analysis.Matrix.Spectrum
import Mathlib.Analysis.SpecialFunctions.Complex.Circle
import Mathlib.Topology.Instances.Matrix
import Mathlib.Topology.ContinuousMap.Basic
import Mathlib.Topology.UnitInterval
import Mathlib.Topology.Connected.Basic
import Mathlib.Data.Real.Sign

/-!
# The Conley–Zehnder index of a path of symplectic matrices

Salamon–Zehnder (CPAM 45, 1992), §3; Salamon, *Lectures on Floer homology* (1999), §2.4;
in the form of Gutt, *Generalized Conley–Zehnder index*, Ann. Fac. Sci. Toulouse 23 (2014),
arXiv:1307.7239, §2: Definition 4 (`SP(n)`), Definition 7 with Corollary 12 (the index),
the Maslov index of a loop and the signature used in Proposition 8.

Conventions. `ℝ²ⁿ` is indexed by `Fin n ⊕ Fin n` (first block `q`, second block `p`).
`J₀ = [[0, -Id], [Id, 0]]` is Mathlib's `Matrix.J`. The symplectic group is Mathlib's
`Matrix.symplecticGroup`, `A J₀ Aᵀ = J₀`, which is the group `Sp(ℝ²ⁿ, Ω₀)`,
`Ω₀ = [[0, Id], [-Id, 0]] = -J₀`, of Gutt §2. Paths are continuous maps on `[0, 1]`.

The index is the degree of `ρ̂² ∘ ψ̃` (Gutt, Corollary 12, formula (8)), where `ψ̃` is `ψ`
followed by a path in `Sp*` ending at `W⁺` or `W⁻`, and `ρ̂(A)` is the normalized complex
determinant of the `ℂ`-linear part `½(A - J₀AJ₀)` (formula (9)). Under the identification
`(x, y) ↦ x + i y` of `ℝ²ⁿ` with `ℂⁿ`, `J₀` is multiplication by `i` and a real matrix
`[[X, -Y], [Y, X]]` is the complex matrix `X + i Y`.
-/

namespace ConleyZehnder

noncomputable section

open Matrix Classical

/-- Real `2n × 2n` matrices, indexed by `Fin n ⊕ Fin n`. -/
abbrev Mat (n : ℕ) := Matrix (Fin n ⊕ Fin n) (Fin n ⊕ Fin n) ℝ

/-- `J₀ = [[0, -Id], [Id, 0]]`. -/
abbrev J₀ (n : ℕ) : Mat n := Matrix.J (Fin n) ℝ

variable {n : ℕ}

/-- `A ∈ Sp(ℝ²ⁿ, Ω₀)`. -/
def IsSymplectic (A : Mat n) : Prop := A ∈ Matrix.symplecticGroup (Fin n) ℝ

/-- `Sp*(ℝ²ⁿ, Ω₀)`: symplectic matrices without eigenvalue `1`. -/
def SpStar (n : ℕ) : Set (Mat n) := {A | IsSymplectic A ∧ (1 - A).det ≠ 0}

/-- Gutt, Definition 4: `SP(n)`, the continuous paths `ψ : [0, 1] → Sp(ℝ²ⁿ, Ω₀)` with
`ψ(0) = Id` such that `1` is not an eigenvalue of `ψ(1)`. -/
def SP (n : ℕ) : Set C(unitInterval, Mat n) :=
  {ψ | (∀ t, IsSymplectic (ψ t)) ∧ ψ 0 = 1 ∧ (1 - ψ 1).det ≠ 0}

/-- A loop `φ : [0, 1] → Sp(ℝ²ⁿ, Ω₀)` with `φ(0) = φ(1) = Id`. -/
def IsSymplecticLoop (φ : C(unitInterval, Mat n)) : Prop :=
  (∀ t, IsSymplectic (φ t)) ∧ φ 0 = 1 ∧ φ 1 = 1

/-- `W⁺ = -Id`. -/
def Wplus (n : ℕ) : Mat n := -1

/-- `W⁻ = diag(2, -1, …, -1, 1/2, -1, …, -1)`. -/
def Wminus (n : ℕ) : Mat n :=
  Matrix.diagonal (Sum.elim (fun j : Fin n => if j.val = 0 then (2 : ℝ) else -1)
    (fun j : Fin n => if j.val = 0 then (1 / 2 : ℝ) else -1))

/-- The `ℂ`-linear part `C_A = ½(A - J₀ A J₀)` of `A`. -/
def complexLinearPart (A : Mat n) : Mat n := (1 / 2 : ℝ) • (A - J₀ n * A * J₀ n)

/-- `det_ℂ C_A`: writing `C_A = [[X, -Y], [Y, X]]`, the determinant of the complex
`n × n` matrix `X + i Y`. -/
def complexLinearDet (A : Mat n) : ℂ :=
  ((complexLinearPart A).toBlocks₁₁.map (fun x : ℝ => (x : ℂ)) +
    Complex.I • (complexLinearPart A).toBlocks₂₁.map (fun x : ℝ => (x : ℂ))).det

/-- Gutt (9): `ρ̂(A) = det_ℂ C_A / |det_ℂ C_A|`. -/
def rhoHat (A : Mat n) : ℂ := complexLinearDet A / (‖complexLinearDet A‖ : ℂ)

/-- `θ` is a continuous argument of `f : [0, 1] → S¹`: `f(t) = e^{i θ(t)}`. -/
def IsArgLift (f : unitInterval → ℂ) (θ : unitInterval → ℝ) : Prop :=
  Continuous θ ∧ ∀ t, f t = Complex.exp ((θ t : ℂ) * Complex.I)

/-- `χ` continues `ψ` as in Gutt §2: it starts at `ψ(1)`, stays in `Sp*`, and ends at
`W⁺` or `W⁻`. (The extension `ψ̃ : [0, 2] → Sp` is `ψ` followed by `χ`.) -/
def IsSpStarExtension (ψ χ : C(unitInterval, Mat n)) : Prop :=
  χ 0 = ψ 1 ∧ (∀ t, χ t ∈ SpStar n) ∧ (χ 1 = Wplus n ∨ χ 1 = Wminus n)

/-- `k = deg(ρ̂² ∘ ψ̃)` for some extension `ψ̃` of `ψ`: the total change of a continuous
argument of `ρ̂² ∘ ψ̃` along `ψ` followed by `χ` is `2π k`. -/
def IsCZValue (ψ : C(unitInterval, Mat n)) (k : ℤ) : Prop :=
  ∃ χ : C(unitInterval, Mat n), IsSpStarExtension ψ χ ∧
    ∃ θ₁ θ₂ : unitInterval → ℝ, IsArgLift (fun t => rhoHat (ψ t)) θ₁ ∧
      IsArgLift (fun t => rhoHat (χ t)) θ₂ ∧
      2 * ((θ₁ 1 - θ₁ 0) + (θ₂ 1 - θ₂ 0)) = 2 * Real.pi * k

/-- Gutt, Definition 7 / Corollary 12: the Conley–Zehnder index `μ_CZ(ψ) = deg(ρ̂² ∘ ψ̃)`. -/
def czIndex (ψ : C(unitInterval, Mat n)) : ℤ :=
  if h : ∃ k, IsCZValue ψ k then h.choose else 0

/-- `k = deg(ρ̂ ∘ φ)` for a loop `φ`. -/
def IsMaslovValue (φ : C(unitInterval, Mat n)) (k : ℤ) : Prop :=
  ∃ θ : unitInterval → ℝ, IsArgLift (fun t => rhoHat (φ t)) θ ∧ θ 1 - θ 0 = 2 * Real.pi * k

/-- The Maslov index `μ(φ) = deg(ρ̂ ∘ φ)` of a loop of symplectic matrices. -/
def maslovIndex (φ : C(unitInterval, Mat n)) : ℤ :=
  if h : ∃ k, IsMaslovValue φ k then h.choose else 0

/-- `Sign(S)`: the number of positive minus the number of negative eigenvalues of a
symmetric matrix, counted with multiplicity. -/
def signature (S : Mat n) (hS : S.IsHermitian) : ℤ :=
  ((Finset.univ.filter fun i => 0 < hS.eigenvalues i).card : ℤ) -
    ((Finset.univ.filter fun i => hS.eigenvalues i < 0).card : ℤ)

/-- The block-diagonal embedding `A' ⋄ A''` of `Sp(ℝ²ⁿ') × Sp(ℝ²ⁿ'')` into
`Sp(ℝ^{2(n'+n'')})`, `(q', p') ⊕ (q'', p'') ↦ (q', q'', p', p'')`. -/
def diamond {n' n'' : ℕ} (A : Mat n') (B : Mat n'') : Mat (n' + n'') :=
  Matrix.reindex
    ((Equiv.sumSumSumComm (Fin n') (Fin n') (Fin n'') (Fin n'')).trans
      (Equiv.sumCongr finSumFinEquiv finSumFinEquiv))
    ((Equiv.sumSumSumComm (Fin n') (Fin n') (Fin n'') (Fin n'')).trans
      (Equiv.sumCongr finSumFinEquiv finSumFinEquiv))
    (Matrix.fromBlocks A 0 0 B)

/-- (Homotopy) `μ` is constant on the connected components of `SP(n)`, a subspace of
`C([0, 1], ℝ^{2n×2n})` with the compact-open topology. -/
def HomotopyAxiom (μ : C(unitInterval, Mat n) → ℤ) : Prop :=
  ∀ ψ ∈ SP n, ∀ ψ' ∈ connectedComponentIn (SP n) ψ, μ ψ' = μ ψ

/-- (Loop) `μ(φψ) = μ(ψ) + 2 μ(φ)` for every loop `φ` at `Id` and every `ψ ∈ SP(n)`. -/
def LoopAxiom (μ : C(unitInterval, Mat n) → ℤ) : Prop :=
  ∀ φ, IsSymplecticLoop φ → ∀ ψ ∈ SP n, μ (φ * ψ) = μ ψ + 2 * maslovIndex φ

/-- (Signature) If `S = Sᵀ` is nondegenerate with all eigenvalues of absolute value
`< 2π` and `ψ(t) = exp(J₀ S t)`, then `μ(ψ) = ½ Sign(S)`. -/
def SignatureAxiom (μ : C(unitInterval, Mat n) → ℤ) : Prop :=
  ∀ (S : Mat n) (hS : S.IsHermitian), S.det ≠ 0 →
    (∀ i, |hS.eigenvalues i| < 2 * Real.pi) →
    ∀ ψ : C(unitInterval, Mat n), (∀ t, ψ t = NormedSpace.exp ((t : ℝ) • (J₀ n * S))) →
      2 * μ ψ = signature S hS

end

end ConleyZehnder
Source
Gutt, Generalized Conley-Zehnder index, Ann. Fac. Sci. Toulouse Math. 23 (2014) 907-932, https://doi.org/10.5802/afst.1430 (arXiv:1307.7239), Section 2, pp. 5-9: Definition 4, Definition 7, Propositions 8-9, Corollary 12, formula (9); Salamon, Lectures on Floer homology, IAS/Park City Math. Ser. 7 (1999) 143-229, https://doi.org/10.1090/pcms/007/05
Read-back

What the Lean code literally says, in plain math · claude-opus-5-5

Definition module (all definitions in one namespace, every n∈Nn\in\mathbb Nn∈N allowed, including n=0n=0n=0).

Throughout, for a natural number nnn (including n=0n=0n=0), Matn\mathrm{Mat}_nMatn​ denotes the real 2n×2n2n\times 2n2n×2n matrices whose rows and columns are indexed by two copies of {0,…,n−1}\{0,\dots,n-1\}{0,…,n−1}: a first ("qqq") block and a second ("ppp") block. Id\mathrm{Id}Id is the identity matrix. J0∈MatnJ_0\in\mathrm{Mat}_nJ0​∈Matn​ is the block matrix

J0=(0−IdId0).J_0=\begin{pmatrix}0&-\mathrm{Id}\\ \mathrm{Id}&0\end{pmatrix}.J0​=(0Id​−Id0​).

A matrix AAA is called symplectic if A J0 AT=J0A\,J_0\,A^{\mathsf T}=J_0AJ0​AT=J0​. A path is a continuous map [0,1]→Matn[0,1]\to\mathrm{Mat}_n[0,1]→Matn​ (with the usual Euclidean topology on matrix entries); the set of paths carries the compact-open topology (equivalently the topology of uniform convergence). Products, inverses and transposes of paths below are always taken pointwise in ttt. For n=0n=0n=0 all matrices are the empty 0×00\times 00×0 matrix, whose determinant is 111.

Symplectic. AAA is symplectic iff AJ0AT=J0AJ_0A^{\mathsf T}=J_0AJ0​AT=J0​.

Sp∗\mathrm{Sp}^*Sp∗. Sp∗(n)\mathrm{Sp}^*(n)Sp∗(n) is the set of symplectic A∈MatnA\in\mathrm{Mat}_nA∈Matn​ with det⁡(Id−A)≠0\det(\mathrm{Id}-A)\neq 0det(Id−A)=0.

SP(n)\mathrm{SP}(n)SP(n). SP(n)\mathrm{SP}(n)SP(n) is the set of paths ψ\psiψ such that ψ(t)\psi(t)ψ(t) is symplectic for every t∈[0,1]t\in[0,1]t∈[0,1], ψ(0)=Id\psi(0)=\mathrm{Id}ψ(0)=Id, and det⁡(Id−ψ(1))≠0\det(\mathrm{Id}-\psi(1))\neq 0det(Id−ψ(1))=0.

Symplectic loop. A symplectic loop is a path φ\varphiφ with φ(t)\varphi(t)φ(t) symplectic for every ttt and φ(0)=φ(1)=Id\varphi(0)=\varphi(1)=\mathrm{Id}φ(0)=φ(1)=Id.

W±W^\pmW±. W+=−IdW^+=-\mathrm{Id}W+=−Id, and W−W^-W− is the diagonal matrix whose qqq-block diagonal is (2,−1,…,−1)(2,-1,\dots,-1)(2,−1,…,−1) and whose ppp-block diagonal is (12,−1,…,−1)(\tfrac12,-1,\dots,-1)(21​,−1,…,−1) (the entry 222 resp. 12\tfrac1221​ sits at index 000; all other diagonal entries are −1-1−1). For n=0n=0n=0, W+=W−W^+=W^-W+=W− is the empty matrix.

Complex-linear part, its determinant, and ρ^\hat\rhoρ^​. For A∈MatnA\in\mathrm{Mat}_nA∈Matn​, let CA=12 (A−J0AJ0)C_A=\tfrac12\,(A-J_0AJ_0)CA​=21​(A−J0​AJ0​). Let XXX be the upper-left (qqq-row, qqq-column) n×nn\times nn×n block of CAC_ACA​ and YYY its lower-left (ppp-row, qqq-column) block, and set

d(A)=det⁡C (X+iY)∈C,d(A)=\det{}_{\mathbb C}\,(X+iY)\in\mathbb C,d(A)=detC​(X+iY)∈C,

the determinant of the complex n×nn\times nn×n matrix X+iYX+iYX+iY (equal to 111 when n=0n=0n=0). Then

ρ^(A)=d(A)∣d(A)∣∈C,\hat\rho(A)=\frac{d(A)}{|d(A)|}\in\mathbb C,ρ^​(A)=∣d(A)∣d(A)​∈C,

with the convention that division by zero gives 000, so ρ^(A)=0\hat\rho(A)=0ρ^​(A)=0 whenever d(A)=0d(A)=0d(A)=0.

Argument lift. For a function f:[0,1]→Cf:[0,1]\to\mathbb Cf:[0,1]→C, a function θ:[0,1]→R\theta:[0,1]\to\mathbb Rθ:[0,1]→R is called an argument lift of fff if θ\thetaθ is continuous and f(t)=eiθ(t)f(t)=e^{i\theta(t)}f(t)=eiθ(t) for every t∈[0,1]t\in[0,1]t∈[0,1]. (No lift exists if ∣f(t)∣≠1|f(t)|\neq 1∣f(t)∣=1 for some ttt, e.g. if ρ^\hat\rhoρ^​ takes the junk value 000; continuity of fff is not separately assumed.)

Extension through Sp∗\mathrm{Sp}^*Sp∗. For paths ψ,χ\psi,\chiψ,χ: χ\chiχ is an extension of ψ\psiψ iff χ(0)=ψ(1)\chi(0)=\psi(1)χ(0)=ψ(1), χ(t)∈Sp∗(n)\chi(t)\in\mathrm{Sp}^*(n)χ(t)∈Sp∗(n) for all ttt, and χ(1)∈{W+,W−}\chi(1)\in\{W^+,W^-\}χ(1)∈{W+,W−}.

CZ value. For a path ψ\psiψ and an integer kkk, "kkk is a CZ value of ψ\psiψ" means: there exist a path χ\chiχ with χ(0)=ψ(1)\chi(0)=\psi(1)χ(0)=ψ(1), χ(t)∈Sp∗(n)\chi(t)\in\mathrm{Sp}^*(n)χ(t)∈Sp∗(n) for all t∈[0,1]t\in[0,1]t∈[0,1], and χ(1)=W+\chi(1)=W^+χ(1)=W+ or χ(1)=W−\chi(1)=W^-χ(1)=W−; and argument lifts θ1\theta_1θ1​ of t↦ρ^(ψ(t))t\mapsto\hat\rho(\psi(t))t↦ρ^​(ψ(t)) and θ2\theta_2θ2​ of t↦ρ^(χ(t))t\mapsto\hat\rho(\chi(t))t↦ρ^​(χ(t)) with

2[(θ1(1)−θ1(0))+(θ2(1)−θ2(0))]=2πk.2\big[(\theta_1(1)-\theta_1(0))+(\theta_2(1)-\theta_2(0))\big]=2\pi k.2[(θ1​(1)−θ1​(0))+(θ2​(1)−θ2​(0))]=2πk.

(The lifts are of ρ^\hat\rhoρ^​ itself, not of ρ^2\hat\rho^2ρ^​2; the factor 222 appears only in this equation. No condition ψ∈SP(n)\psi\in\mathrm{SP}(n)ψ∈SP(n) is part of this notion.)

Conley–Zehnder index. The index μCZ(ψ)∈Z\mu_{CZ}(\psi)\in\mathbb ZμCZ​(ψ)∈Z of a path ψ\psiψ is defined as: if some integer kkk is a CZ value of ψ\psiψ, then μCZ(ψ)\mu_{CZ}(\psi)μCZ​(ψ) is one such kkk chosen by the axiom of choice (an unspecified one if several exist); if no CZ value exists, μCZ(ψ)=0\mu_{CZ}(\psi)=0μCZ​(ψ)=0. It is defined for every path, not only those in SP(n)\mathrm{SP}(n)SP(n).

Maslov value and Maslov index. For a path φ\varphiφ and an integer kkk, "kkk is a Maslov value of φ\varphiφ" means: there is an argument lift θ\thetaθ of t↦ρ^(φ(t))t\mapsto\hat\rho(\varphi(t))t↦ρ^​(φ(t)) with θ(1)−θ(0)=2πk\theta(1)-\theta(0)=2\pi kθ(1)−θ(0)=2πk. The Maslov index μ(φ)\mu(\varphi)μ(φ) is a choice-selected such kkk if one exists (an unspecified one if several exist), and 000 otherwise; it is defined for every path, not only loops.

Signature. For a real symmetric matrix S∈MatnS\in\mathrm{Mat}_nS∈Matn​ (symmetric = Hermitian over R\mathbb RR), let λ1,…,λ2n\lambda_1,\dots,\lambda_{2n}λ1​,…,λ2n​ be its real eigenvalues listed with multiplicity. Sign(S)\mathrm{Sign}(S)Sign(S) is the number of indices iii with λi>0\lambda_i>0λi​>0 minus the number with λi<0\lambda_i<0λi​<0. (The eigenvalue list is the one supplied by the spectral theorem for the given symmetry proof; the counts do not depend on that choice.)

Block sum ⋄\diamond⋄. For A∈Matn′A\in\mathrm{Mat}_{n'}A∈Matn′​ and B∈Matn′′B\in\mathrm{Mat}_{n''}B∈Matn′′​, A⋄B∈Matn′+n′′A\diamond B\in\mathrm{Mat}_{n'+n''}A⋄B∈Matn′+n′′​ is the matrix obtained from the block-diagonal matrix (A00B)\begin{pmatrix}A&0\\0&B\end{pmatrix}(A0​0B​) (indexed by (q′,p′)(q',p')(q′,p′) then (q′′,p′′)(q'',p'')(q′′,p′′)) by relabeling indices so that the new qqq-block is (q0′,…,qn′−1′,q0′′,…,qn′′−1′′)(q'_0,\dots,q'_{n'-1},q''_0,\dots,q''_{n''-1})(q0′​,…,qn′−1′​,q0′′​,…,qn′′−1′′​) and the new ppp-block is (p0′,…,pn′−1′,p0′′,…,pn′′−1′′)(p'_0,\dots,p'_{n'-1},p''_0,\dots,p''_{n''-1})(p0′​,…,pn′−1′​,p0′′​,…,pn′′−1′′​). Concretely, for s,s′∈{q,p}s,s'\in\{q,p\}s,s′∈{q,p}: the (sk,sl′)(s_k,s'_{l})(sk​,sl′​) entry of A⋄BA\diamond BA⋄B is Ask,sl′A_{s_k,s'_l}Ask​,sl′​​ if k,l<n′k,l<n'k,l<n′, is Bsk−n′,sl−n′′B_{s_{k-n'},s'_{l-n'}}Bsk−n′​,sl−n′′​​ if k,l≥n′k,l\ge n'k,l≥n′, and is 000 otherwise.

Homotopy property. A function μ\muμ from paths in Matn\mathrm{Mat}_nMatn​ to Z\mathbb ZZ satisfies the homotopy property if for every ψ∈SP(n)\psi\in\mathrm{SP}(n)ψ∈SP(n) and every ψ′\psi'ψ′ in the connected component of ψ\psiψ in SP(n)\mathrm{SP}(n)SP(n) (with the subspace topology inherited from the compact-open topology on paths), μ(ψ′)=μ(ψ)\mu(\psi')=\mu(\psi)μ(ψ′)=μ(ψ).

Loop property. μ\muμ satisfies the loop property if for every symplectic loop φ\varphiφ and every ψ∈SP(n)\psi\in\mathrm{SP}(n)ψ∈SP(n),

μ(φψ)=μ(ψ)+2 μMaslov(φ),\mu(\varphi\psi)=\mu(\psi)+2\,\mu_{\mathrm{Maslov}}(\varphi),μ(φψ)=μ(ψ)+2μMaslov​(φ),

where (φψ)(t)=φ(t)ψ(t)(\varphi\psi)(t)=\varphi(t)\psi(t)(φψ)(t)=φ(t)ψ(t) and μMaslov\mu_{\mathrm{Maslov}}μMaslov​ is the specific Maslov index defined above (not something derived from μ\muμ).

Signature property. μ\muμ satisfies the signature property if for every real symmetric S∈MatnS\in\mathrm{Mat}_nS∈Matn​ with det⁡S≠0\det S\neq 0detS=0 and all eigenvalues satisfying ∣λi∣<2π|\lambda_i|<2\pi∣λi​∣<2π, and for every path ψ\psiψ with ψ(t)=exp⁡(t J0S)\psi(t)=\exp(t\,J_0S)ψ(t)=exp(tJ0​S) for all t∈[0,1]t\in[0,1]t∈[0,1] (matrix exponential, exp⁡(M)=∑m≥0Mm/m!\exp(M)=\sum_{m\ge0}M^m/m!exp(M)=∑m≥0​Mm/m!), one has

2 μ(ψ)=Sign(S).2\,\mu(\psi)=\mathrm{Sign}(S).2μ(ψ)=Sign(S).

Membership ψ∈SP(n)\psi\in\mathrm{SP}(n)ψ∈SP(n) is not a hypothesis here. For n=0n=0n=0 the only such SSS is the empty matrix (det⁡=1\det=1det=1, Sign=0\mathrm{Sign}=0Sign=0), so the property demands μ(ψ)=0\mu(\psi)=0μ(ψ)=0 for the unique path.

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

    Confirmed by the moderator at approval.

  • Endorsed by Mazecto · Oct 9, 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