pair: the Serre pairing (Miranda's Res_ω), purely algebraic (serre-duality-cech, §2 D2) #
Unit: serre-duality-cech (docs/design/serre-duality-cech.md §2 D2, §4.2).
Adaptation to the quotient revision of Jacobian/CanonicalForms/. The design's pair was
written against a raw MForm structure exposing ω.coeffAt x z directly; MForm is now a
quotient of MFormData (Jacobian/CanonicalForms/Quotient.lean) with no coeffAt field on
classes, only the already lifted reading maps MForm.ord/resAt/laurentCoeffAt. Since
MForm.laurentCoeffAt Θ x k is already exactly Miranda's c_{-1-k} read at x (chart-invariant,
proof-irrelevant in the choice of representative — Jacobian/CanonicalForms/Quotient.lean's
laurentCoeffAt_mk), we define pair directly as the finite sum of Laurent coefficients
against the tail (the design's pair_eq_finsum_sum, i.e. Miranda's own boxed formula PDF 187),
rather than via resAt of an explicit representative product and resAt_tail_mul. This is the
SAME mathematical content (for any representative θ of Θ, resAt_tail_mul applied to
θ.coeffAt x recovers exactly this formula — see pair_single's proof, which is the one place the
"residue of a tail-multiplied form" reading is exercised) with strictly less proof debt: the
τ-linearity of pair is packaged for free by Finsupp.lsum (no manual "extend to the union of two
supports" finsum bookkeeping, as the original design anticipated needing finsum_add_distrib
for).
The θ-linearity (pair_add_left/pair_smul_left) needs a small Compat fact not exported by
canonical-forms — MForm.laurentCoeffAt is additive/ℂ-linear in the class argument — proved here
via representatives + residue-calculus's laurentCoeffAt_fun_add/_const_mul/_zero_fun
(coordination note filed to docs/requests/canonical-forms.md).
Compat: MForm.laurentCoeffAt is ℂ-linear in the class argument #
Compat (docs/requests/canonical-forms.md): additivity of laurentCoeffAt in the class
argument, via representatives + residue-calculus's laurentCoeffAt_fun_add.
Compat (docs/requests/canonical-forms.md): ℂ-homogeneity of laurentCoeffAt in the class
argument, via representatives + residue-calculus's laurentCoeffAt_const_mul.
The per-point contribution to the pairing: a finite tail of Laurent exponents at x, read
against θ's Laurent coefficients there (Miranda's Res_x(r_x θ) in coefficient form). Linear in
the tail-at-x argument by construction (Finsupp.lsum).
Equations
- RS.SerrePairing.pairAt θ x = (Finsupp.lsum ℂ) fun (k : ℤ) => θ.laurentCoeffAt x (-1 - k) • LinearMap.id
Instances For
pair θ, packaged as a genuine linear map Tail X →ₗ[ℂ] ℂ (Finsupp-summed over x).
Equations
Instances For
The Serre pairing (Miranda's Res_ω, purely algebraic): a meromorphic 1-form θ and an
ambient tail τ, paired by summing (over τ's finite support) θ's Laurent coefficients against
τ's exponents.
Equations
- RS.SerrePairing.pair θ τ = (RS.SerrePairing.pairTail θ) τ
Instances For
Packaged as a genuine bilinear map (matches the design's pairL export).
Equations
- RS.SerrePairing.pairL = { toFun := RS.SerrePairing.pairTail, map_add' := ⋯, map_smul' := ⋯ }
Instances For
The atom the injectivity witness (Duality.lean) uses directly.