Macaulay2 » Documentation
Packages » NumericalSemigroups :: gaps
next | previous | forward | backward | up | index | toc

gaps -- The gap sequence of a semigroup

Synopsis

Description

If semigroup L is the Weierstrass semigroup of a Riemann surface C at a point, then #gaps L = g = h^0(omega_C), the genus of C. Furthermore, the number of elements of sums(n, G) is bounded by the dimension of h^0(omega_C^n) = n*(2g-2)-g+1 = (2n-1)g-2n+1. However, for an arbitrary semigroup the number #sums(n,G) may be larger; the first such example was found by Ragnar Buchweitz, and is given below.

The function isGapSequence returns either false or generators of the semigroup of which the sequence is the gap sequence.

i1 : G=toList(1..12)|{19,21,24,25}

o1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 19, 21, 24, 25}

o1 : List
i2 : g = #G

o2 = 16
i3 : for n from 1 to 3 list (#sums(n,G),n*(2*g-2) - g + 1)

o3 = {(16, 15), (46, 45), (73, 75)}

o3 : List
i4 : L=isGapSequence G

o4 = {13, 14, 15, 16, 17, 18, 20, 22, 23}

o4 : List
i5 : G ==gaps L

o5 = true

Caveat

See also

Ways to use gaps:

For the programmer

The object gaps is a method function.