Documentation

LeanPool.LeanModularForms.GeneralizedResidueTheory.WindingNumber.CrossingAnalysis

Winding Number: Crossing Analysis #

Technical analysis of curve crossings for generalized winding numbers. Contains the core monotonicity, cutoff boundary, and direction convergence lemmas.

Main Results #

theorem piecewiseC1Immersion_norm_strictMono_near_crossing (γ : PiecewiseC1Immersion) (z₀ : ) (t₀ : ) (ht₀ : t₀ Set.Ioo γ.a γ.b) (hcross : γ.toFun t₀ = z₀) :
∃ (l : ) (r : ), l < t₀ t₀ < r γ.a l r γ.b StrictAntiOn (fun (t : ) => γ.toFun t - z₀) (Set.Icc l t₀) StrictMonoOn (fun (t : ) => γ.toFun t - z₀) (Set.Icc t₀ r)

Helper: g = ‖γ(·) - z₀‖ is strictly decreasing on a left neighborhood of t₀ and strictly increasing on a right neighborhood, when γ is an immersion at t₀. This is the key "local monotonicity" fact that makes the cutoff boundary well-defined.

theorem exists_cutoff_boundary_times (γ : PiecewiseC1Immersion) (z₀ : ) (t₀ : ) (ht₀ : t₀ Set.Ioo γ.a γ.b) (hcross : γ.toFun t₀ = z₀) (honly : tSet.Icc γ.a γ.b, γ.toFun t = z₀t = t₀) :
δ > 0, εSet.Ioo 0 δ, ∃ (σ₁ : ) (σ₂ : ), γ.a σ₁ σ₁ < t₀ t₀ < σ₂ σ₂ γ.b γ.toFun σ₁ - z₀ = ε γ.toFun σ₂ - z₀ = ε (∀ tSet.Ico γ.a σ₁, ε < γ.toFun t - z₀) (∀ tSet.Ioc σ₂ γ.b, ε < γ.toFun t - z₀) tSet.Icc σ₁ σ₂, γ.toFun t - z₀ ε
theorem exists_cutoff_boundary_times_with_mono (γ : PiecewiseC1Immersion) (z₀ : ) (t₀ : ) (ht₀ : t₀ Set.Ioo γ.a γ.b) (hcross : γ.toFun t₀ = z₀) (honly : tSet.Icc γ.a γ.b, γ.toFun t = z₀t = t₀) :
δ > 0, ∃ (l : ) (r : ), l < t₀ t₀ < r γ.a l r γ.b StrictAntiOn (fun (t : ) => γ.toFun t - z₀) (Set.Icc l t₀) StrictMonoOn (fun (t : ) => γ.toFun t - z₀) (Set.Icc t₀ r) δ γ.toFun l - z₀ δ γ.toFun r - z₀ εSet.Ioo 0 δ, ∃ (σ₁ : ) (σ₂ : ), γ.a σ₁ σ₁ < t₀ t₀ < σ₂ σ₂ γ.b γ.toFun σ₁ - z₀ = ε γ.toFun σ₂ - z₀ = ε (∀ tSet.Ico γ.a σ₁, ε < γ.toFun t - z₀) (∀ tSet.Ioc σ₂ γ.b, ε < γ.toFun t - z₀) tSet.Icc σ₁ σ₂, γ.toFun t - z₀ ε

Extended version of exists_cutoff_boundary_times that also exposes the strict monotonicity interval and the bounds δ ≤ ‖γ(l) - z₀‖, δ ≤ ‖γ(r) - z₀‖.

theorem exp_cutoff_integral_eq_ratio (γ : PiecewiseC1Immersion) (hclosed : γ.IsClosed) (z₀ : ) (σ₁ σ₂ ε : ) (hσ₁ : γ.a σ₁) (hσ₁₂ : σ₁ < σ₂) (hσ₂ : σ₂ γ.b) ( : 0 < ε) (hσ₁_val : γ.toFun σ₁ - z₀ = ε) (hσ₂_val : γ.toFun σ₂ - z₀ = ε) (h_left : tSet.Ico γ.a σ₁, ε < γ.toFun t - z₀) (h_right : tSet.Ioc σ₂ γ.b, ε < γ.toFun t - z₀) (h_middle : tSet.Icc σ₁ σ₂, γ.toFun t - z₀ ε) :
Complex.exp ( (t : ) in γ.a..γ.b, if γ.toFun t - z₀ > ε then (γ.toFun t - z₀)⁻¹ * deriv γ.toFun t else 0) = (γ.toFun σ₁ - z₀) / (γ.toFun σ₂ - z₀)

For a closed piecewise C¹ immersion, when the cutoff integral is split at boundary times where ‖γ-z₀‖ = ε with strict inequality outside, the exponential equals the ratio (γ(σ₁)-z₀)/(γ(σ₂)-z₀) by FTC + closedness.

theorem crossing_ratio_tendsto (γ : PiecewiseC1Immersion) (z₀ : ) (t₀ : ) (ht₀ : t₀ Set.Ioo γ.a γ.b) (hcross : γ.toFun t₀ = z₀) (honly : tSet.Icc γ.a γ.b, γ.toFun t = z₀t = t₀) (σ₁ σ₂ : ) (hσ₁_lt : ∀ᶠ (ε : ) in nhdsWithin 0 (Set.Ioi 0), σ₁ ε < t₀) (hσ₂_gt : ∀ᶠ (ε : ) in nhdsWithin 0 (Set.Ioi 0), t₀ < σ₂ ε) (hσ₁_val : ∀ᶠ (ε : ) in nhdsWithin 0 (Set.Ioi 0), γ.toFun (σ₁ ε) - z₀ = ε) (hσ₂_val : ∀ᶠ (ε : ) in nhdsWithin 0 (Set.Ioi 0), γ.toFun (σ₂ ε) - z₀ = ε) (hσ₁_in : ∀ᶠ (ε : ) in nhdsWithin 0 (Set.Ioi 0), γ.a σ₁ ε) (hσ₂_in : ∀ᶠ (ε : ) in nhdsWithin 0 (Set.Ioi 0), σ₂ ε γ.b) :
Filter.Tendsto (fun (ε : ) => (γ.toFun (σ₁ ε) - z₀) / (γ.toFun (σ₂ ε) - z₀)) (nhdsWithin 0 (Set.Ioi 0)) (nhds (Complex.exp (-(Complex.I * (angleAtCrossing γ t₀ ht₀)))))

Direction convergence: as ε → 0, the ratio (γ(σ₁(ε))-z₀)/(γ(σ₂(ε))-z₀) (where σ₁(ε), σ₂(ε) are the boundary times from exists_cutoff_boundary_times) converges to exp(-i·angleAtCrossing). This follows from the immersion property: γ(σ₁)-z₀ ≈ L_left·(σ₁-t₀) with σ₁-t₀ < 0, so direction → -L_left/|L_left|, and γ(σ₂)-z₀ ≈ L_right·(σ₂-t₀) with σ₂-t₀ > 0, so direction → L_right/|L_right|. The ratio of directions is exp(-i·α) where α = arg(L_right) - arg(-L_left).

theorem tendsto_exp_cutoff_integral_crossing (γ : PiecewiseC1Immersion) (hclosed : γ.IsClosed) (z₀ : ) (t₀ : ) (ht₀ : t₀ Set.Ioo γ.a γ.b) (hcross : γ.toFun t₀ = z₀) (honly : tSet.Icc γ.a γ.b, γ.toFun t = z₀t = t₀) :
Filter.Tendsto (fun (ε : ) => Complex.exp ( (t : ) in γ.a..γ.b, if γ.toFun t - z₀ > ε then (γ.toFun t - z₀)⁻¹ * deriv γ.toFun t else 0)) (nhdsWithin 0 (Set.Ioi 0)) (nhds (Complex.exp (-(Complex.I * (angleAtCrossing γ t₀ ht₀)))))

Core analysis: exp(R(ε)) → exp(-iα) as ε → 0, where R(ε) is the cutoff integral ∫ 1_{‖γ-z₀‖>ε} (γ-z₀)⁻¹ γ' and α is the crossing angle.

Proof strategy (H-W Proposition 2.2):

  1. For each small ε, the set {t : ‖γ(t)-z₀‖ ≤ ε} is a single interval (σ₁(ε), σ₂(ε)) containing t₀ (by continuity + isolated crossing).
  2. By piecewise FTC on segments where ‖γ-z₀‖ > ε (using the G-function technique from exp_integral_eq_endpoint_ratio_piecewise): exp(R(ε)) = (γ(σ₁)-z₀)/(γ(a)-z₀) · (γ(b)-z₀)/(γ(σ₂)-z₀).
  3. By closedness γ(a) = γ(b): exp(R(ε)) = (γ(σ₁)-z₀)/(γ(σ₂)-z₀).
  4. Since ‖γ(σ₁)-z₀‖ = ε = ‖γ(σ₂)-z₀‖, this ratio has modulus 1.
  5. By the immersion property: as ε → 0, σ₁ → t₀⁻ and σ₂ → t₀⁺, and arg(γ(σ₁)-z₀) → arg(-L_left), arg(γ(σ₂)-z₀) → arg(L_right).
  6. Therefore exp(R(ε)) → exp(i(arg(-L_left) - arg(L_right))) = exp(-iα).