Documentation

LeanPool.LeanModularForms.ValenceFormula.Boundary.Winding.Framework

Single-Crossing Winding Number Framework #

Unified framework for computing generalizedWindingNumber' γ a b s when the curve γ crosses the point s at exactly one parameter value t₀ ∈ (a, b).

Overview #

The three edge/arc winding proofs (RightEdge, LeftEdge, UnitArc) share a common 5-step structure:

  1. Identify the unique crossing parameter t₀
  2. Define a cutoff function δ(ε) that maps the norm threshold ε to a parameter-space interval radius around t₀
  3. Prove far/near bounds: curve is ε-far from s outside [t₀-δ, t₀+δ], and ε-close inside
  4. Prove the FTC telescope: the far-segment integrals sum to some E(ε)
  5. Prove E(ε) → L as ε → 0⁺, giving gWN = L / (2πi)

This file provides:

Design #

The key abstraction is that pv_tendsto_of_crossing_limit already handles steps 3-5 at the level of the PV integral. This framework adds the final conversion from PV Tendsto to generalizedWindingNumber', handling the deriv (fun t => γ t - s) = deriv γ rewrite that every caller must perform.

The SingleCrossingData structure bundles the 8 obligations of pv_tendsto_of_crossing_limit together with a target limit value, making it easy to instantiate for each geometric case.

structure SingleCrossingData (γ : ) (a b : ) (s : ) :

Data for a single-crossing winding number computation.

Bundles all the geometric ingredients needed by pv_tendsto_of_crossing_limit:

  • A curve γ : ℝ → ℂ on [a, b] with a unique crossing at t₀
  • A cutoff function δ : ℝ → ℝ mapping norm thresholds to parameter radii
  • A threshold below which all bounds hold
  • The far/near bounds, FTC telescope, integrability, and limit target
Instances For
    theorem SingleCrossingData.pvTendsto {γ : } {a b : } {s : } (D : SingleCrossingData γ a b s) :
    Filter.Tendsto (fun (ε : ) => (t : ) in a..b, if γ t - s > ε then (γ t - s)⁻¹ * deriv γ t else 0) (nhdsWithin 0 (Set.Ioi 0)) (nhds D.L)

    The PV integral of (γ - s)⁻¹ · γ' tends to L. This is the core intermediate result, obtained directly from pv_tendsto_of_crossing_limit.

    theorem gWN_of_singleCrossing {γ : } {a b : } {s : } (D : SingleCrossingData γ a b s) :

    Master theorem: compute generalizedWindingNumber' from single-crossing data.

    Given SingleCrossingData for curve γ, the generalized winding number at s equals L / (2πi).

    This handles the conversion from (γ t - s)⁻¹ * deriv γ t (used in the PV integral) to the form (γ t - s)⁻¹ * deriv (fun t => γ t - s) t expected by generalizedWindingNumber'.

    theorem gWN_eq_neg_half_of_singleCrossing {γ : } {a b : } {s : } (D : SingleCrossingData γ a b s) (hL : D.L = -(Real.pi * Complex.I)) :

    Specialized version: if L = -(π * I), then gWN = -1/2.

    This is the most common case, used by RightEdge, LeftEdge, and UnitArc.

    theorem gWN_eq_neg_sixth_of_singleCrossing {γ : } {a b : } {s : } (D : SingleCrossingData γ a b s) (hL : D.L = -(Real.pi / 3 * Complex.I)) :

    Specialized version: if L = -(π / 3 * I), then gWN = -1/6.

    Used for elliptic point winding number computations.