The Cauchy principal value along a contour cycle #
A contour cycle is a formal integer combination of closed piecewise-C¹ curves, and every
additive invariant of curves extends to it by linearity. This file carries out that extension
for the set-level Cauchy principal value, the invariant the Hungerbühler–Wasem generalized
residue theorem evaluates when singularities of the integrand lie on the contour.
The direction of the definitions is opposite to the single-curve case, and deliberately so.
For one curve the predicate TauCeti.Contour.HasCauchyPV comes first — it is a genuine
analytic statement about symmetric excision — and the value TauCeti.Contour.cauchyPV is read
off it. For a cycle the value comes first: Cycle.cauchyPV f is the additive extension of
TauCeti.Contour.cauchyPV, hence an AddMonoidHom by construction, exactly like
Cycle.integral and Cycle.windingNumber. The predicate Cycle.HasCauchyPV is then existence
along each curve of the canonical support together with that value. Defining the predicate
first, by simultaneously truncating all the generators, would not have produced an additive
value: a cancelling pair of generators would have to be seen to cancel truncation by
truncation, which no argument supplies before the limit is taken.
Nothing here identifies a principal value with an ordinary integral. Where the ordinary contour
integrand is interval-integrable along each generator, the two agree
(Cycle.hasCauchyPV_integral), which is the only bridge between them.
Main definitions #
TauCeti.Contour.Cycle.cauchyPV— the additive extension of the single-curve principal value.TauCeti.Contour.Cycle.CauchyPVExists— the principal value exists along every curve of the canonical support.TauCeti.Contour.Cycle.HasCauchyPV— existence, together with the value.
Main results #
TauCeti.Contour.Cycle.cauchyPV_eq_sum_support— the value as a coefficient-weighted sum.TauCeti.Contour.Cycle.cauchyPVExists_iff— existence along the canonical support.TauCeti.Contour.Cycle.hasCauchyPV_iff— the predicate as its two clauses.TauCeti.Contour.Cycle.HasCauchyPV.of_generators— a per-generator family of principal values assembles into the cycle's.TauCeti.Contour.Cycle.HasCauchyPV.unique— the value in the predicate is determined.TauCeti.Contour.Cycle.hasCauchyPV_integral— where the contour integrand is interval-integrable along each generator, the principal value is the ordinary cycle integral.
References #
- N. Hungerbühler, M. Wasem, Non-integer valued winding numbers and a generalized Residue Theorem, arXiv:1808.00997 (2018), §3.
The Cauchy principal value of f along a cycle, obtained by additively extending the
single-curve principal value TauCeti.Contour.cauchyPV from generators. Like every value read
off a junk-valued function, it is meaningful exactly where Cycle.CauchyPVExists holds.
Equations
Instances For
The principal value along a one-generator cycle is the principal value along that curve.
The principal value along a raw closed curve bundled as a one-generator cycle is its raw principal value.
The principal value along a cycle is the coefficient-weighted sum of the principal values along the curves of its canonical support.
The Cauchy principal value of f along a cycle exists when it exists along every curve
of the canonical support. Curves that cancel out of the cycle impose no condition.
Equations
- C.CauchyPVExists f = ∀ γ ∈ FreeAbelianGroup.support C, TauCeti.Contour.CauchyPVExists (Function.extend Subtype.val γ.toFun 0) γ.a γ.b f
Instances For
Characterization of Cycle.CauchyPVExists as existence along every curve of the canonical
support — the eliminator/constructor interface, so downstream users need not unfold the
definition.
The Cauchy principal value of f along the cycle C exists and equals v.
Equations
- C.HasCauchyPV f v = (C.CauchyPVExists f ∧ (TauCeti.Contour.Cycle.cauchyPV f) C = v)
Instances For
Cycle.HasCauchyPV unfolded into its two clauses — existence along every curve of the
canonical support, and the value — so consumers need not unfold the definition.
Deliberately not @[simp]: it unfolds the predicate, so it would take the left-hand sides of
hasCauchyPV_of_iff, hasCauchyPV_zero and hasCauchyPV_neg_iff out of simp-normal form.
Those three are the normal forms simp should reach for — on a generator, on 0, and under
negation — and they carry the @[simp] annotation instead.
Existence of the principal value along a one-generator cycle is exactly existence along its generating curve.
A one-generator cycle has principal value v exactly when its generating curve does.
Reading the value off the predicate.
The predicate implies existence.
The value in the predicate is determined by the cycle and the integrand.
Where the principal value exists, the predicate holds at the canonical value.
Assembling a cycle's principal value from its generators. If the principal value of f
along each curve γ of the canonical support of C exists and equals w γ, then the principal
value along C exists and is the coefficient-weighted sum of the w γ.
The zero cycle has principal value 0, for every integrand.
Principal values add over a sum of cycles, provided each side has one: the value is additive by construction, and the canonical support of a sum lies in the union of the supports.
Negating a cycle negates its principal value.
An integer multiple of a cycle has the correspondingly scaled principal value.
The principal value extends the ordinary cycle integral. If the contour integrand of f
is interval-integrable along every curve of the canonical support — as it is when no on-contour
singularity obstructs it — then the principal value along the cycle exists and is the ordinary
cycle integral.