Excising a crossing window and capping it with a circular arc #
Hungerbühler–Wasem Proposition 2.2 decomposes a closed piecewise-C¹ immersion Λ that meets a
point s finitely often as Λ = \tilde{\Lambda} + Γ₁ + ⋯ + Γₙ, where \tilde{\Lambda} avoids s
and each Γ_ℓ is a local loop at a crossing, and concludes
n_s(Λ) = n_s(\tilde{\Lambda}) + ∑_ℓ α_ℓ / 2π. The identity modulo an integer is
TauCeti.Contour.IsPwC1ImmersionOn.exists_int_windingNumber_eq_add_sum_crossingAngle, whose
integer is produced abstractly because the surgered curve \tilde{\Lambda} is never built. This
file builds it.
The surgery is the obvious one. A parameter window [l, u] containing the crossing is chosen so
that the curve sits on the circle |z - s| = |r| at both ends, γ l = circleMap s r θ and
γ u = circleMap s r θ'. The window is then deleted and replaced by the arc of that circle running
from angle θ to angle θ' (TauCeti.Contour.circleCap), giving exciseCrossing γ s r l u θ θ',
a curve that agrees with γ outside the window. Each further property it has comes with its own
hypotheses:
- it is again piecewise
C¹on[a, b](IsPiecewiseC1On.exciseCrossing) providedγis and the window sits strictly inside witha < l < u < b, the two endpoint conditions being what glues the cap toγ; - it is again closed (
exciseCrossing_closed) providedγ a = γ band the window misses the two endpoints,a < landu < b; - and — this is the point — it avoids
s(exciseCrossing_ne_center) provided the signed radial scale is nonzero,r ≠ 0, andγitself meetssonly strictly inside the window.
Under all of these together its winding number about s is an integer.
Crossing.Decomposition builds on this surgery to prove the exact finite-window winding-number
accounting identity and its one-window specialization.
What remains of HW Proposition 2.2 is the identification of the local contribution with the crossing
angle α_ℓ / 2π for a general immersion. It is congruent to α_ℓ / 2π modulo 1 — that is exactly
the content of the modulo-an-integer theorem cited above — and the outstanding step is the estimate
that pins the representative, namely that the local loop over a small enough window winds less than
once.
Main definitions #
TauCeti.Contour.circleCap— for a nondegenerate windowl ≠ u, the arc with signed radial scaleraboutssweeping from angleθto angleθ', parametrised affinely over[l, u]; whenl = uthe affine change of parameter degenerates and the arc is constantlycircleMap s r θ.TauCeti.Contour.exciseCrossing— the curveγwith the window[l, u]replaced by that cap.
Main results #
TauCeti.Contour.windingNumber_circleCap— the cap has winding number(θ' - θ) / 2πabouts.TauCeti.Contour.IsPiecewiseC1On.exciseCrossing— the excised curve is piecewiseC¹,TauCeti.Contour.exciseCrossing_closed— it is closed ifγis, andTauCeti.Contour.exciseCrossing_ne_center— it avoidss.
Provenance #
Independently reconstructed; no formalization is vendored. The ContourIntegration roadmap
designates the AINTLIB LeanModularForms development
(github.com/CBirkbeck/AINTLIB, Apache-2.0) as the existing
source for this area, and assigns LeanModularForms/ForMathlib/HungerbuhlerWasem/Crossing.lean to
"Prop 2.2 / sector geometry". That file was consulted and carries no excise-and-cap construction:
at revision 340875a it is the per-pole principal-value composition (HasCauchyPV.add,
HasCauchyPV.finset_sum, cpv_polarPart_at_pole_under_conditions) together with the crossing
angle-compatibility lemmas, and the surgered curve \tilde{Λ} is never built there either. The
one place AINTLIB names this excision, ForMathlib/ExitTime.lean, constructs only the exit-time
parameters bounding the window (firstExitTimeLeft, firstExitTimeRight), not the spliced curve.
So the definitions and proofs below are new, assembled from Tau Ceti's existing winding-number API
for reparametrisation and circles.
References #
- N. Hungerbühler, M. Wasem, Non-integer valued winding numbers and a generalized Residue Theorem, arXiv:1808.00997 — Proposition 2.2.
The circular cap #
The circular cap with signed radial scale r about s: the arc of the circle
|z - s| = |r| parametrised affinely over the window [l, u], running from angle θ at l
(circleCap_left) to angle θ' at u (circleCap_right) whenever the window is nondegenerate,
l ≠ u. For l = u the affine
change of parameter divides by zero, so the cap is constantly circleMap s r θ and does not reach
angle θ'; every result below that needs the far endpoint assumes l < u or l ≠ u.
It is written as circleMap s r precomposed with an affine change of parameter, which is the shape
the reparametrisation and principal-value lemmas for circular arcs consume.
Equations
Instances For
Characteristic value lemma for the circular cap: at parameter t it is the point of the
circle at angle θ advanced by the fraction (t - l) / (u - l) of the sweep θ' - θ.
Deliberately not @[simp]: it rewrites the left-hand sides of the endpoint lemmas circleCap_left
and circleCap_right, which are the simp-normal forms this file's consumers actually meet.
The index principal value along the cap exists, the cap being an affinely reparametrised circular arc.
The winding number of the cap is its angular extent over 2π. The arc misses s, so the
principal value collapses to the ordinary index integral, and the affine change of parameter carries
[l, u] onto [θ, θ'].
The excised curve #
The excised curve: γ with the parameter window [l, u] deleted and replaced by the
circular cap with signed radial scale r about s running from angle θ to angle θ'. This is
the curve HW Proposition 2.2 calls \tilde{\Lambda}.
The definition itself assumes nothing; the properties that make it a surgery each need hypotheses.
If γ is continuous (indeed piecewise C¹) on [a, b], the window is nondegenerate and strictly
inside, a < l < u < b, and the two endpoint conditions γ l = circleMap s r θ and
γ u = circleMap s r θ' hold, then the replacement glues continuously and the result is again
piecewise C¹ (IsPiecewiseC1On.exciseCrossing). If moreover γ a = γ b it is again closed
(exciseCrossing_closed). And if the signed radial scale is nonzero, r ≠ 0, and γ meets s
only inside the open window, then the excised curve misses s altogether
(exciseCrossing_ne_center).
Equations
- TauCeti.Contour.exciseCrossing γ s r l u θ θ' t = if l ≤ t ∧ t ≤ u then TauCeti.Contour.circleCap s r l u θ θ' t else γ t
Instances For
Inside the window the excised curve is the cap.
The excised curve is closed whenever γ is: the window [l, u] lies strictly inside
[a, b], so both endpoints of [a, b] fall outside it and the excised curve takes the values of
γ there.
The excised curve avoids s. Inside the window it runs along a circle with nonzero signed
radial scale about s, and outside it agrees with γ, which by hypothesis meets s only strictly
inside the window.
The excised curve is piecewise C¹. The two window endpoints join a piecewise-C¹ curve to
a smooth arc, so they are the only new breakpoints.