Weierstrass gaps #
At a place P, a positive integer n is a pole number if some function has a pole of order
exactly n at P and is regular at every other place. Otherwise n is a gap. At a rational
place of a function field with integrally closed constants and positive genus g, there are
exactly g gaps: the first is 1, and every gap is at most 2g - 1. This is the Weierstrass
gap theorem, Stichtenoth, Algebraic Function Fields and Codes, 2nd ed., Theorem 1.6.8.
The proof counts the jumps in the filtration
L(0) ⊆ L(P) ⊆ L(2P) ⊆ ....
At a rational place each step changes the dimension by at most one, and it changes the dimension
exactly when the index is a pole number. Riemann--Roch computes ℓ((2g - 1)P) = g, so precisely
g of the first 2g - 1 steps do not change the dimension.
Main definitions #
TauCeti.Place.IsPoleNumber: a natural numbernwitnessed by a nonzero function of order-nat the place and nonnegative order elsewhere.TauCeti.Place.IsGap: an integer which is not a pole number.TauCeti.Place.gapNumbersUpTo: the gaps in a prescribed finite interval.TauCeti.Place.weierstrassGaps: the finite set of gaps at a place.
Main results #
TauCeti.Place.isPoleNumber_iff_dim_lt: pole numbers are exactly the strict jumps in the one-place Riemann--Roch filtration.TauCeti.Place.card_gapNumbersUpTo_add_dim: among1, ..., n, the number of gaps plusℓ(nP)isn + 1.TauCeti.Place.card_weierstrassGaps: the Weierstrass gap theorem: a rational place of a function field with integrally closed constants and genusghas exactlyggaps.TauCeti.Place.one_mem_weierstrassGaps: the first gap is1.
References #
- H. Stichtenoth, Algebraic Function Fields and Codes, 2nd ed., GTM 254, Springer, 2009, Theorem 1.6.8.
- G. Li,
vaca22/riemann-roch-function-fields, a separate Lean formalization of Weierstrass gaps along the same function-field route.
A natural number n is a pole number at P if some nonzero function has order -n at
P and is regular at every other place (Stichtenoth, Definition preceding Theorem 1.6.8).
Although the classical terminology is principally used for positive n, this definition also
includes 0: the constant function 1 witnesses that zero is a pole number.
Equations
Instances For
Zero is a pole number at every place, witnessed by the constant function 1.
Pole numbers are closed under addition: multiply their witnessing functions.
A positive integer is a pole number exactly when the corresponding one-place Riemann--Roch filtration has a strict dimension jump.
A positive integer is a gap exactly when the corresponding consecutive Riemann--Roch dimensions are equal.
At a rational place, adjoining one more allowed pole raises the Riemann--Roch dimension by at most one.
The gaps at P among the positive integers at most n.
Equations
- P.gapNumbersUpTo n = Finset.filter P.IsGap (Finset.Icc 1 n)
Instances For
Among the integers 1, ..., n at a rational place, the number of gaps plus ℓ(nP) is
n + 1. This is the counting identity underlying the Weierstrass gap theorem.
The gaps at P in the interval 1, ..., 2g - 1. For a function field whose constants are
integrally closed this interval captures every gap, so it is the full set of Weierstrass gaps;
see mem_weierstrassGaps_iff_isGap.
Equations
- P.weierstrassGaps = P.gapNumbersUpTo (2 * TauCeti.genus k F - 1)
Instances For
No integer at least 2g is a gap: Riemann--Roch produces a function whose only pole is at
P, with the prescribed order.
The displayed finite set captures every gap at a place of a function field with integrally closed constants.
Weierstrass gap theorem (Stichtenoth, Theorem 1.6.8): at a rational place of a function
field with integrally closed constants and genus g, there are exactly g gaps.
At a rational place of a positive-genus function field with integrally closed constants, 1
is a gap.