Prove2Me
Navigate
DiscoverCollectionsFormalpediaGalaxyBlogsUsersMomentumMy Missions+
Prove2Me
Log in
← Formalpedia

Sobolev spaces, Cauchy–Riemann operators and asymptotic operators on the cylinder

Definition
CauchyRiemannIndex_Setting

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

cauchy-riemannconley-zehnder-indexfredholm-indexsobolev-spacessymplectic-geometry

Basic objects for linear Cauchy–Riemann operators on the cylinder R×S1\mathbb{R}\times S^1R×S1, S1=R/ZS^1=\mathbb{R}/\mathbb{Z}S1=R/Z, with the trivial bundle R2n=Cn\mathbb{R}^{2n}=\mathbb{C}^nR2n=Cn (C. Wendl, Lectures on Symplectic Field Theory, Lectures 3–5), and the Conley–Zehnder index of a path of symplectic matrices (J. Gutt, Generalized Conley–Zehnder index, Definition 7 and Corollary 12).

  1. Matrices. J0=(0−IdId0)J_0=\begin{pmatrix}0&-\mathrm{Id}\\\mathrm{Id}&0\end{pmatrix}J0​=(0Id​−Id0​) on R2n\mathbb{R}^{2n}R2n, multiplication by iii under (x,y)↦x+iy(x,y)\mapsto x+iy(x,y)↦x+iy; C=(Id00−Id)C=\begin{pmatrix}\mathrm{Id}&0\\0&-\mathrm{Id}\end{pmatrix}C=(Id0​0−Id​) is complex conjugation; for β∈C\beta\in\mathbb{C}β∈C, antilinearMat β is the real 2×22\times22×2 matrix of z↦βzˉz\mapsto\beta\bar zz↦βzˉ on C=R2\mathbb{C}=\mathbb{R}^2C=R2.
  2. Conley–Zehnder index of a symplectic path ψ:[0,1]→Sp(2n)\psi:[0,1]\to\mathrm{Sp}(2n)ψ:[0,1]→Sp(2n): the integer μCZ(ψ)=deg⁡(ρ^2∘ψ~)\mu_{CZ}(\psi)=\deg(\hat\rho^2\circ\tilde\psi)μCZ​(ψ)=deg(ρ^​2∘ψ~​), where ρ^(A)=det⁡CCA/∣det⁡CCA∣\hat\rho(A)=\det_{\mathbb{C}}C_A/|\det_{\mathbb{C}}C_A|ρ^​(A)=detC​CA​/∣detC​CA​∣, CA=12(A−J0AJ0)C_A=\tfrac12(A-J_0AJ_0)CA​=21​(A−J0​AJ0​), and ψ~\tilde\psiψ~​ is ψ\psiψ followed by a path in Sp∗\mathrm{Sp}^*Sp∗ (no eigenvalue 111) ending at W+=−IdW^+=-\mathrm{Id}W+=−Id or 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) (Gutt). The value is chosen, with fallback 000 when no such degree exists.
  3. Asymptotic operators. A loop S∞:S1→R2n×2nS_\infty:S^1\to\mathbb{R}^{2n\times2n}S∞​:S1→R2n×2n of symmetric matrices defines A=−J0∂t−S∞(t)A=-J_0\partial_t-S_\infty(t)A=−J0​∂t​−S∞​(t) (Wendl (3.10)). Its fundamental solution is Ψ:R→R2n×2n\Psi:\mathbb{R}\to\mathbb{R}^{2n\times2n}Ψ:R→R2n×2n with Ψ(0)=Id\Psi(0)=\mathrm{Id}Ψ(0)=Id, Ψ′=J0S∞Ψ\Psi'=J_0S_\infty\PsiΨ′=J0​S∞​Ψ. AAA is nondegenerate if det⁡(Id−Ψ(1))≠0\det(\mathrm{Id}-\Psi(1))\ne0det(Id−Ψ(1))=0, i.e. Aη=0A\eta=0Aη=0 has no nonzero 111-periodic solution, and μCZ(A)\mu_{CZ}(A)μCZ​(A) is the Conley–Zehnder index of the path Ψ∣[0,1]\Psi|_{[0,1]}Ψ∣[0,1]​.
  4. Sobolev space. Lp(R×S1,R2n)L^p(\mathbb{R}\times S^1,\mathbb{R}^{2n})Lp(R×S1,R2n) is LpL^pLp of the strip R×[0,1)\mathbb{R}\times[0,1)R×[0,1) with Lebesgue measure. A test section is a smooth map u:R2→R2nu:\mathbb{R}^2\to\mathbb{R}^{2n}u:R2→R2n with u(s,t+1)=u(s,t)u(s,t+1)=u(s,t)u(s,t+1)=u(s,t) that vanishes for large ∣s∣|s|∣s∣. W1,pW^{1,p}W1,p is the closure in Lp×Lp×LpL^p\times L^p\times L^pLp×Lp×Lp of the span of the triples (u,∂su,∂tu)(u,\partial_su,\partial_tu)(u,∂s​u,∂t​u) of test sections, and ∥u∥W1,p=∥u∥p+∥∂su∥p+∥∂tu∥p\|u\|_{W^{1,p}}=\|u\|_p+\|\partial_su\|_p+\|\partial_tu\|_p∥u∥W1,p​=∥u∥p​+∥∂s​u∥p​+∥∂t​u∥p​ for test sections.
  5. Cauchy–Riemann operators (Wendl (4.2)). For a continuous S:R×S1→R2n×2nS:\mathbb{R}\times S^1\to\mathbb{R}^{2n\times2n}S:R×S1→R2n×2n, DS=∂s+J0∂t+S(s,t)D_S=\partial_s+J_0\partial_t+S(s,t)DS​=∂s​+J0​∂t​+S(s,t), acting on a triple by (u,v,w)↦v+J0w+Su(u,v,w)\mapsto v+J_0w+Su(u,v,w)↦v+J0​w+Su. Its kernel is {w∈W1,p:DSw=0}\{w\in W^{1,p}:D_Sw=0\}{w∈W1,p:DS​w=0}, its range is {DSw:w∈W1,p}⊂Lp\{D_Sw:w\in W^{1,p}\}\subset L^p{DS​w:w∈W1,p}⊂Lp, it is Fredholm if the kernel is finite-dimensional and the range is closed of finite codimension, and its index is dim⁡ker⁡DS−dim⁡(Lp/im⁡DS)\dim\ker D_S-\dim(L^p/\operatorname{im}D_S)dimkerDS​−dim(Lp/imDS​).
  6. Asymptotic convergence (Wendl, Definition 4.2 and Remark 4.4). SSS is asymptotic to loops S±S^\pmS± if it is continuous, 111-periodic in ttt, and S(s,t)→S±(t)S(s,t)\to S^\pm(t)S(s,t)→S±(t) as s→±∞s\to\pm\inftys→±∞, uniformly in ttt.

Formalization Note R2n\mathbb{R}^{2n}R2n is EuclideanSpace ℝ (Fin n ⊕ Fin n) and matrices are Matrix (Fin n ⊕ Fin n) (Fin n ⊕ Fin n) ℝ, acting by Matrix.toEuclideanLin; J0J_0J0​ is Matrix.J. The definitions IsSymplectic, SpStar, Wplus, Wminus, complexLinearPart, complexLinearDet, rhoHat, IsArgLift, IsSpStarExtension, IsCZValue and czIndex repeat those of ConleyZehnder_Setting word for word, so that the mission is standalone. asymptoticCZIndex S is the chosen k with IsAsymptoticCZValue S k (fallback 000). ∂su\partial_su∂s​u, ∂tu\partial_tu∂t​u are fderiv ℝ u x (1, 0) and fderiv ℝ u x (0, 1), and smoothness is ContDiff ℝ ∞. W1p p n is (Submodule.span ℝ (testTriples n p)).topologicalClosure in Lp × Lp × Lp (with Fact (1 ≤ p)), so its elements are triples (u,∂su,∂tu)(u,\partial_su,\partial_tu)(u,∂s​u,∂t​u) with weak derivatives; its norm is the product (maximum) norm, equivalent to the W1,pW^{1,p}W1,p norm. crKernel and crRange are the spans of the kernel and range sets, which are already subspaces. Convergence S→S±S\to S^\pmS→S± is stated entrywise.

Definition code
import Mathlib.LinearAlgebra.SymplecticGroup
import Mathlib.LinearAlgebra.Matrix.Block
import Mathlib.Analysis.SpecialFunctions.Complex.Circle
import Mathlib.Analysis.InnerProductSpace.PiL2
import Mathlib.Analysis.Calculus.ContDiff.Basic
import Mathlib.Analysis.Calculus.Deriv.Basic
import Mathlib.Topology.ContinuousMap.Basic
import Mathlib.Topology.UnitInterval
import Mathlib.Topology.Algebra.Module.Basic
import Mathlib.MeasureTheory.Function.LpSpace.Basic
import Mathlib.MeasureTheory.Measure.Lebesgue.Basic
import Mathlib.LinearAlgebra.Dimension.Finrank
import Mathlib.LinearAlgebra.Quotient.Basic

/-!
# Linear Cauchy–Riemann operators on the cylinder

C. Wendl, *Lectures on Symplectic Field Theory*, arXiv:1612.01009, Lectures 3–5, for the
punctured surface `ℝ × S¹` (the sphere with one positive and one negative puncture) and the
trivial bundle `ℝ × S¹ × ℝ²ⁿ`.

Conventions. `S¹ = ℝ/ℤ`; a map on the cylinder is a map `u : ℝ × ℝ → ℝ²ⁿ` of `(s, t)` with
`u(s, t + 1) = u(s, t)`, and `L^p(ℝ × S¹)` is `L^p` of the strip `ℝ × [0, 1)` with Lebesgue
measure. `ℝ²ⁿ` is `EuclideanSpace ℝ (Fin n ⊕ Fin n)` (first block `q`, second block `p`) and
`J₀ = [[0, -Id], [Id, 0]]` is Mathlib's `Matrix.J`, i.e. multiplication by `i` under
`(x, y) ↦ x + i y`.

* `W^{1,p}(ℝ × S¹, ℝ²ⁿ)` is the closure of the smooth maps that are `1`-periodic in `t` and
  vanish for large `|s|`, under `u ↦ (u, ∂ₛu, ∂ₜu)` in `L^p × L^p × L^p`
  (Wendl, Lecture 4, §4.1 and §A.4).
* For a continuous, `t`-periodic `S : ℝ × ℝ → ℝ^{2n×2n}`, the operator
  `D_S = ∂ₛ + J₀ ∂ₜ + S(s, t) : W^{1,p} → L^p` (Wendl (4.2)) acts on such a triple by
  `(u, v, w) ↦ v + J₀ w + S u`.
* The asymptotic operator `A = -J₀ ∂ₜ - S∞(t)` of a loop `S∞` of symmetric matrices
  (Wendl (3.10)) is encoded by the fundamental solution `Ψ' = J₀ S∞ Ψ`, `Ψ(0) = Id`, whose
  columns span the solutions of `A η = 0` on `ℝ`.
* The Conley–Zehnder index of a path of symplectic matrices is defined as in Gutt,
  *Generalized Conley–Zehnder index*, Ann. Fac. Sci. Toulouse 23 (2014), arXiv:1307.7239,
  Definition 7 with Corollary 12; the definitions `IsSymplectic` … `czIndex` below repeat
  those of the `ConleyZehnder` mission word for word.
-/

namespace CauchyRiemannIndex

noncomputable section

open MeasureTheory Matrix Classical
open scoped ContDiff ENNReal

/-! ### Symplectic matrices and the Conley–Zehnder index of a path -/

/-- 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}

/-- `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⁻`. -/
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

/-! ### Asymptotic operators -/

/-- A loop `S∞ : S¹ → ℝ^{2n×2n}` of symmetric matrices, as a continuous `1`-periodic map on
`ℝ`. -/
def IsSymLoop (S : ℝ → Mat n) : Prop :=
  Continuous S ∧ Function.Periodic S 1 ∧ ∀ t, (S t).IsSymm

/-- `Ψ` is the fundamental solution of `S∞`: `Ψ(0) = Id` and `Ψ'(t) = J₀ S∞(t) Ψ(t)`. -/
def IsFundamentalSolution (S : ℝ → Mat n) (Ψ : ℝ → Mat n) : Prop :=
  Ψ 0 = 1 ∧ ∀ t : ℝ, HasDerivAt Ψ (J₀ n * S t * Ψ t) t

/-- The asymptotic operator `-J₀ ∂ₜ - S∞` is nondegenerate: `1` is not an eigenvalue of
`Ψ(1)`, i.e. `-J₀ η' - S∞ η = 0` has no nonzero `1`-periodic solution. -/
def IsNondegenerate (S : ℝ → Mat n) : Prop :=
  ∀ Ψ, IsFundamentalSolution S Ψ → (1 - Ψ 1).det ≠ 0

/-- `k` is the Conley–Zehnder index of `-J₀ ∂ₜ - S∞`: the index of the path
`t ↦ Ψ(t)`, `t ∈ [0, 1]`, of its fundamental solution. -/
def IsAsymptoticCZValue (S : ℝ → Mat n) (k : ℤ) : Prop :=
  ∃ Ψ, IsFundamentalSolution S Ψ ∧
    ∃ ψ : C(unitInterval, Mat n), (∀ t : unitInterval, ψ t = Ψ t) ∧ IsCZValue ψ k

/-- Wendl, Definition 3.30, through the fundamental solution: the Conley–Zehnder index
`μ_CZ(-J₀ ∂ₜ - S∞)` (chosen, with fallback `0`). -/
def asymptoticCZIndex (S : ℝ → Mat n) : ℤ :=
  if h : ∃ k, IsAsymptoticCZValue S k then h.choose else 0

/-! ### Sobolev spaces on the cylinder and Cauchy–Riemann operators -/

/-- `ℝ²ⁿ` with its Euclidean norm. -/
abbrev Vec (n : ℕ) := EuclideanSpace ℝ (Fin n ⊕ Fin n)

/-- Lebesgue measure on the strip `ℝ × [0, 1)`, a fundamental domain of `ℝ × S¹`. -/
def cylMeasure : Measure (ℝ × ℝ) := volume.restrict (Set.univ ×ˢ Set.Ico 0 1)

/-- `L^p(ℝ × S¹, ℝ²ⁿ)`. -/
abbrev LpCyl (n : ℕ) (p : ℝ≥0∞) := Lp (Vec n) p cylMeasure

/-- Triples `(u, ∂ₛu, ∂ₜu)` in `L^p × L^p × L^p`. -/
abbrev Triple (n : ℕ) (p : ℝ≥0∞) := LpCyl n p × LpCyl n p × LpCyl n p

/-- `u` is a test section: smooth, `1`-periodic in `t`, and zero for large `|s|`. -/
def IsTestSection (u : ℝ × ℝ → Vec n) : Prop :=
  ContDiff ℝ ∞ u ∧ (∀ s t, u (s, t + 1) = u (s, t)) ∧ ∃ R : ℝ, ∀ s t, R < |s| → u (s, t) = 0

/-- `∂ₛu`. -/
def partialS (u : ℝ × ℝ → Vec n) (x : ℝ × ℝ) : Vec n := fderiv ℝ u x (1, 0)

/-- `∂ₜu`. -/
def partialT (u : ℝ × ℝ → Vec n) (x : ℝ × ℝ) : Vec n := fderiv ℝ u x (0, 1)

/-- The triples `(u, ∂ₛu, ∂ₜu)` of test sections `u`. -/
def testTriples (n : ℕ) (p : ℝ≥0∞) : Set (Triple n p) :=
  {w | ∃ u, IsTestSection u ∧ (w.1 : ℝ × ℝ → Vec n) =ᵐ[cylMeasure] u ∧
    (w.2.1 : ℝ × ℝ → Vec n) =ᵐ[cylMeasure] partialS u ∧
    (w.2.2 : ℝ × ℝ → Vec n) =ᵐ[cylMeasure] partialT u}

variable (p : ℝ≥0∞) [Fact (1 ≤ p)]

/-- `W^{1,p}(ℝ × S¹, ℝ²ⁿ)`, as the closed subspace of `L^p × L^p × L^p` spanned by the
triples `(u, ∂ₛu, ∂ₜu)` of test sections; its norm is the product norm. -/
def W1p (n : ℕ) : Submodule ℝ (Triple n p) :=
  (Submodule.span ℝ (testTriples n p)).topologicalClosure

variable {p}

/-- `D_S (u, v, w) = v + J₀ w + S u`, pointwise on the cylinder; on `(u, ∂ₛu, ∂ₜu)` this is
`∂ₛu + J₀ ∂ₜu + S(s, t) u`. -/
def crApply (S : ℝ × ℝ → Mat n) (w : Triple n p) (x : ℝ × ℝ) : Vec n :=
  w.2.1 x + Matrix.toEuclideanLin (J₀ n) (w.2.2 x) + Matrix.toEuclideanLin (S x) (w.1 x)

variable (p)

/-- `ker D_S ⊆ W^{1,p}`. -/
def crKernel (S : ℝ × ℝ → Mat n) : Submodule ℝ (Triple n p) :=
  Submodule.span ℝ {w | w ∈ W1p p n ∧ crApply S w =ᵐ[cylMeasure] 0}

/-- `im D_S ⊆ L^p`. -/
def crRange (S : ℝ × ℝ → Mat n) : Submodule ℝ (LpCyl n p) :=
  Submodule.span ℝ {f | ∃ w ∈ W1p p n, (f : ℝ × ℝ → Vec n) =ᵐ[cylMeasure] crApply S w}

/-- `D_S : W^{1,p} → L^p` is Fredholm: finite-dimensional kernel, closed range of finite
codimension. -/
def IsFredholmCR (S : ℝ × ℝ → Mat n) : Prop :=
  FiniteDimensional ℝ (crKernel p S) ∧ IsClosed (crRange p S : Set (LpCyl n p)) ∧
    FiniteDimensional ℝ (LpCyl n p ⧸ crRange p S)

/-- The Fredholm index `dim ker D_S - dim coker D_S`. -/
def crIndex (S : ℝ × ℝ → Mat n) : ℤ :=
  (Module.finrank ℝ (crKernel p S) : ℤ) - Module.finrank ℝ (LpCyl n p ⧸ crRange p S)

variable {p}

/-- `D_S u = ∂ₛu + J₀ ∂ₜu + S(s, t) u` for a differentiable map `u` on the cylinder. -/
def crOp (S : ℝ × ℝ → Mat n) (u : ℝ × ℝ → Vec n) (x : ℝ × ℝ) : Vec n :=
  partialS u x + Matrix.toEuclideanLin (J₀ n) (partialT u x) + Matrix.toEuclideanLin (S x) (u x)

/-- The `W^{1,p}(ℝ × S¹)` norm `‖u‖_p + ‖∂ₛu‖_p + ‖∂ₜu‖_p`, with values in `[0, ∞]`. -/
def w1pNorm (p : ℝ≥0∞) (u : ℝ × ℝ → Vec n) : ℝ≥0∞ :=
  eLpNorm u p cylMeasure + eLpNorm (partialS u) p cylMeasure + eLpNorm (partialT u) p cylMeasure

/-- Complex conjugation `(x, y) ↦ (x, -y)` on `ℝ²ⁿ = ℂⁿ`. -/
def conjMat (n : ℕ) : Mat n :=
  Matrix.fromBlocks (1 : Matrix (Fin n) (Fin n) ℝ) 0 0 (-1)

/-- The real `2 × 2` matrix of `z ↦ β z̄` on `ℂ = ℝ²`: `[[Re β, Im β], [Im β, -Re β]]`. -/
def antilinearMat (β : ℂ) : Mat 1 :=
  Matrix.fromBlocks (Matrix.of fun _ _ => β.re) (Matrix.of fun _ _ => β.im)
    (Matrix.of fun _ _ => β.im) (Matrix.of fun _ _ => -β.re)

/-- `S : ℝ × ℝ → ℝ^{2n×2n}` is a continuous `t`-periodic coefficient with
`S(s, ·) → S⁺` as `s → +∞` and `S(s, ·) → S⁻` as `s → -∞`, uniformly in `t` and entrywise
(Wendl, Definition 4.2 with Remark 4.4). -/
def IsAsymptoticTo (S : ℝ × ℝ → Mat n) (Splus Sminus : ℝ → Mat n) : Prop :=
  Continuous S ∧ (∀ s t, S (s, t + 1) = S (s, t)) ∧
    ∀ ε > 0, ∃ R : ℝ, ∀ s t, ∀ i j,
      (R ≤ s → |S (s, t) i j - Splus t i j| ≤ ε) ∧ (s ≤ -R → |S (s, t) i j - Sminus t i j| ≤ ε)

end

end CauchyRiemannIndex
Source
C. Wendl, Lectures on Symplectic Field Theory, arXiv:1612.01009, https://arxiv.org/abs/1612.01009, Lectures 3–4, (3.10), (4.2), Definition 4.2, Remark 4.4; J. Gutt, Generalized Conley–Zehnder index, Ann. Fac. Sci. Toulouse Math. (6) 23 (2014), arXiv:1307.7239, Definition 7 and Corollary 12
Read-back

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

Read-back: CauchyRiemannIndex setting (Definitions/Def_CauchyRiemannIndex_Setting.lean)

Setting. Namespace CauchyRiemannIndex. Matrices Mat n are real 2n×2n2n\times 2n2n×2n indexed by Fin n ⊕ Fin n; R2n\mathbb R^{2n}R2n is Vec n = EuclideanSpace ℝ (Fin n ⊕ Fin n), with first block qqq and second block ppp. J0=J_0=J0​= Matrix.J =(0−II0)=\begin{pmatrix}0&-I\\ I&0\end{pmatrix}=(0I​−I0​) (checked in Mathlib: fromBlocks 0 (-1) 1 0), i.e. multiplication by iii under (x,y)↦x+iy(x,y)\mapsto x+iy(x,y)↦x+iy. The cylinder is modelled by maps on R×R\mathbb R\times\mathbb RR×R and the measure cylMeasure =λ2∣R×[0,1)=\lambda^2|_{\mathbb R\times[0,1)}=λ2∣R×[0,1)​.

Hypotheses. None (definitions only). From W1p on, p : ℝ≥0∞ with [Fact (1 ≤ p)].

Definitions used.

  • Conley–Zehnder part.
    • IsSymplectic A means A∈Sp(2n)A\in Sp(2n)A∈Sp(2n) (Mathlib: AJAT=JAJA^T=JAJAT=J).
    • SpStar ={A∈Sp:det⁡(1−A)≠0}=\{A\in Sp:\det(1-A)\ne0\}={A∈Sp:det(1−A)=0}.
    • W+=−IW^+=-IW+=−I 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). W−W^-W− is symplectic, with the pair (2,12)(2,\tfrac12)(2,21​) in the (q1,p1)(q_1,p_1)(q1​,p1​) plane.
    • CA=12(A−J0AJ0)C_A=\tfrac12(A-J_0AJ_0)CA​=21​(A−J0​AJ0​) and det⁡CCA=det⁡(X+iY)\det_{\mathbb C}C_A=\det(X+iY)detC​CA​=det(X+iY) for CA=(X−YYX)C_A=\begin{pmatrix}X&-Y\\Y&X\end{pmatrix}CA​=(XY​−YX​). This is consistent with J0↔iJ_0\leftrightarrow iJ0​↔i.
    • ρ^(A)=det⁡CCA/∣det⁡CCA∣\hat\rho(A)=\det_{\mathbb C}C_A/|\det_{\mathbb C}C_A|ρ^​(A)=detC​CA​/∣detC​CA​∣, with junk value 000 when the determinant is 000, which never happens for symplectic AAA.
    • IsCZValue ψ k holds iff there are an Sp∗Sp^*Sp∗-path χ\chiχ from ψ(1)\psi(1)ψ(1) to W±W^\pmW± and continuous lifts θ1,θ2\theta_1,\theta_2θ1​,θ2​ of ρ^∘ψ\hat\rho\circ\psiρ^​∘ψ and ρ^∘χ\hat\rho\circ\chiρ^​∘χ with 2(Δθ1+Δθ2)=2πk2(\Delta\theta_1+\Delta\theta_2)=2\pi k2(Δθ1​+Δθ2​)=2πk, i.e. k=deg⁡(ρ^2∘ψ~)k=\deg(\hat\rho^2\circ\tilde\psi)k=deg(ρ^​2∘ψ~​).
    • czIndex is the Classical.choose of such a kkk, with fallback 000.
  • Asymptotic operators.
    • IsSymLoop S: S:R→MatS:\mathbb R\to\mathrm{Mat}S:R→Mat is continuous, 1-periodic, and pointwise symmetric.
    • IsFundamentalSolution S Ψ: Ψ(0)=I\Psi(0)=IΨ(0)=I and Ψ′(t)=J0S(t)Ψ(t)\Psi'(t)=J_0S(t)\Psi(t)Ψ′(t)=J0​S(t)Ψ(t) for all ttt. Since J02=−1J_0^2=-1J02​=−1, this is exactly the solution operator of −J0η′−Sη=0-J_0\eta'-S\eta=0−J0​η′−Sη=0.
    • IsNondegenerate S :  ⟺  ∀Ψ:\iff\forall\Psi:⟺∀Ψ fundamental solution, det⁡(1−Ψ(1))≠0\det(1-\Psi(1))\neq0det(1−Ψ(1))=0.
    • asymptoticCZIndex S is the chosen kkk with IsCZValue (Ψ|_[0,1]) k for some fundamental solution Ψ\PsiΨ, with fallback 000.
  • Sobolev part.
    • LpCyl n p =Lp(R×[0,1),λ;R2n)=L^p(\mathbb R\times[0,1),\lambda;\mathbb R^{2n})=Lp(R×[0,1),λ;R2n) and Triple =Lp×Lp×Lp=L^p\times L^p\times L^p=Lp×Lp×Lp, which carries the sup product norm.
    • IsTestSection u: u∈C∞(R2;R2n)u\in C^\infty(\mathbb R^2;\mathbb R^{2n})u∈C∞(R2;R2n), u(s,t+1)=u(s,t)u(s,t+1)=u(s,t)u(s,t+1)=u(s,t), and ∃R\exists R∃R with u(s,t)=0u(s,t)=0u(s,t)=0 for ∣s∣>R|s|>R∣s∣>R. These are exactly Cc∞C_c^\inftyCc∞​ of the cylinder.
    • partialS u x =Du(x)(1,0)=Du(x)(1,0)=Du(x)(1,0) and partialT u x =Du(x)(0,1)=Du(x)(0,1)=Du(x)(0,1).
    • testTriples ={w:∃u=\{w:\exists u={w:∃u test with w=(u,∂su,∂tu)w=(u,\partial_su,\partial_tu)w=(u,∂s​u,∂t​u) a.e. on the strip}\}}.
    • W1p p n =span(testTriples)‾⊆Lp×Lp×Lp=\overline{\mathrm{span}(\texttt{testTriples})}\subseteq L^p\times L^p\times L^p=span(testTriples)​⊆Lp×Lp×Lp. This is the closure of the graph of u↦(∂su,∂tu)u\mapsto(\partial_su,\partial_tu)u↦(∂s​u,∂t​u) on Cc∞(R×S1)C_c^\infty(\mathbb R\times S^1)Cc∞​(R×S1), i.e. W1,p(R×S1,R2n)W^{1,p}(\mathbb R\times S^1,\mathbb R^{2n})W1,p(R×S1,R2n) embedded as u↦(u,∂su,∂tu)u\mapsto(u,\partial_su,\partial_tu)u↦(u,∂s​u,∂t​u). The graph is closable, so the 2nd and 3rd components of any w∈W1,pw\in W^{1,p}w∈W1,p are the weak derivatives of w.1w.1w.1.
    • crApply S w x =w2(x)+J0w3(x)+S(x)w1(x)=w_2(x)+J_0w_3(x)+S(x)w_1(x)=w2​(x)+J0​w3​(x)+S(x)w1​(x), evaluated on representatives of the Lp classes. On W1,pW^{1,p}W1,p this is DSu=∂su+J0∂tu+SuD_S u=\partial_su+J_0\partial_tu+SuDS​u=∂s​u+J0​∂t​u+Su.
    • crKernel p S =span{w∈W1,p:DSw=0 a.e.}=\mathrm{span}\{w\in W^{1,p}: D_Sw=0\text{ a.e.}\}=span{w∈W1,p:DS​w=0 a.e.}, as a submodule of Triple.
    • crRange p S =span{f∈Lp:∃w∈W1,p, f=DSw a.e.}=\mathrm{span}\{f\in L^p:\exists w\in W^{1,p},\ f=D_Sw\text{ a.e.}\}=span{f∈Lp:∃w∈W1,p, f=DS​w a.e.}, as a submodule of LpCyl.
    • IsFredholmCR: finite-dimensional kernel, closed range, and finite-dimensional algebraic quotient Lp/rangeL^p/\mathrm{range}Lp/range.
    • crIndex =finrankker⁡−finrank(Lp/range)=\mathrm{finrank}\ker-\mathrm{finrank}(L^p/\mathrm{range})=finrankker−finrank(Lp/range).
    • crOp S u x =∂su+J0∂tu+S(x)u=\partial_su+J_0\partial_tu+S(x)u=∂s​u+J0​∂t​u+S(x)u for functions.
    • w1pNorm p u =∥u∥p+∥∂su∥p+∥∂tu∥p∈[0,∞]=\|u\|_p+\|\partial_su\|_p+\|\partial_tu\|_p\in[0,\infty]=∥u∥p​+∥∂s​u∥p​+∥∂t​u∥p​∈[0,∞] on the strip.
    • conjMat =diag(I,−I)=\mathrm{diag}(I,-I)=diag(I,−I) (complex conjugation).
    • antilinearMat β is the matrix of z↦βzˉz\mapsto\beta\bar zz↦βzˉ; check: βzˉ=(ax+by)+i(bx−ay)\beta\bar z=(ax+by)+i(bx-ay)βzˉ=(ax+by)+i(bx−ay) for β=a+ib\beta=a+ibβ=a+ib. Correct.
    • IsAsymptoticTo S S⁺ S⁻: SSS is continuous and ttt-periodic, and S(s,t)→S±(t)S(s,t)\to S^\pm(t)S(s,t)→S±(t) entrywise, uniformly in ttt, as s→±∞s\to\pm\inftys→±∞.

Conclusion. n/a.

Degenerate cases.

  • n=0n=0n=0: every space is 000. det⁡\detdet of the empty matrix is 111, so every loop is nondegenerate. All statements become trivial.
  • crApply/crRange for unbounded SSS: DSwD_SwDS​w might not be in LpL^pLp, and such www then contribute nothing to the range. Under IsAsymptoticTo, SSS is bounded on R×R\mathbb R\times\mathbb RR×R: it is continuous and periodic, close to the bounded S±S^\pmS± for ∣s∣≥R|s|\ge R∣s∣≥R, and continuous on the compact middle. So DS:W1,p→LpD_S:W^{1,p}\to L^pDS​:W1,p→Lp is a genuine bounded operator.
  • crIndex uses finrank (junk 000 in infinite dimension). It is meaningful only under IsFredholmCR.

Remarks.

  • The two spans are redundant, harmless wrappers: the inner sets are already subspaces, because coercion of Lp sums and scalar multiples agrees a.e. and DSD_SDS​ is pointwise linear.
  • The values of Lp representatives outside the strip are irrelevant.
  • S is evaluated only through a.e. equalities on the strip.
  • IsNondegenerate is not vacuous: a continuous linear ODE has exactly one global fundamental solution, so the ∀ is the usual condition 1∉σ(Ψ(1))1\notin\sigma(\Psi(1))1∈/σ(Ψ(1)). By periodicity of SSS, this is equivalent to "no nonzero 1-periodic solution of Aη=0A\eta=0Aη=0".
  • The CZ choose/fallbacks are well defined only on Sp∗Sp^*Sp∗-ending symplectic paths starting at III. None of the audited items use the CZ part.

Soundness checks.

  1. Junk values:

    • fderiv junk is 000, but only smooth uuu are fed to partialS/partialT.
    • rhoHat gives 0/0=00/0=00/0=0 only off SpSpSp.
    • czIndex/asymptoticCZIndex fall back to 000.
    • crIndex uses the finrank junk 000.

    Each needs a hypothesis in its consumers: symplectic/nondegenerate paths, and IsFredholmCR. The ∀/∃ scopes in IsAsymptoticTo give uniformity in ttt and in the entries (i,j)(i,j)(i,j), which is the intended uniform convergence. Set.univ ×ˢ Set.Ico 0 1 is the strip R×[0,1)\mathbb R\times[0,1)R×[0,1), the fundamental domain.

  2. No statements are made, and the objects match the standard ones. The Triple norm is the max of the three LpL^pLp norms, which is equivalent to w1pNorm.

Verdict: no mis-formalization observed

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

    Confirmed by the moderator at approval.

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