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

NumericalSemigroups -- Compute invariants of a numerical semigroup

Description

In this package we consider numerical semigroups: that is, cofinite subsets of the natural numbers that are closed under sums. We generally refer to these simply as semigroups. A semigroup S thus includes the empty sum, 0, but we input semigroups by giving generators, all nonzero. The smallest nonzero element of S is the multiplicity. The Apery set (really sequence) of a semigroup S is the the list {a_1..a_m-1} where a_i is the smallest element in S such that a_i = i mod m. The conductor is 1 plus the largest element not in S. We generally specify a semigroup by giving a list of positive integers L with gcd = 1, representing the semigroup of all sums of elements of L.

Combinatorial properties of the Kunz cone

Properties of semigroup rings

Weierstrass semigroups

The question whether every semigroup is a Weierstrass semigroup was answered negatively by Buchweitz: the semigroup generated by {13, 14, 15, 16, 17, 18, 20, 22, 23} is not a Weierstrass semigroup, as demonstrated in buchweitz. On the other hand Pinkham gave a positive criterion with deformation theory. A semigroup is a Weierstrass semigroup if and only if the graded semigroup ring of L has a smoothing deformation with strictly positive deformation parameters.

In this section we implemented Pinkham's approach in POSITIVE CHARACTERISTIC. We plan to extend the smoothing results to characteristic 0 in the future.

Authors

Version

This documentation describes version 1.0 of NumericalSemigroups.

Source code

The source code from which this documentation is derived is in the file NumericalSemigroups.m2.

Exports

  • Functions and commands
    • allSemigroups -- Compute the Hilbert basis and module generators of a cone of semigroups
    • apery -- Compute the apery set, multiplicity and conductor
    • aperySemigroupRing -- computes the semigroup ring using both the multiplicity and the full Apery set
    • aperySet -- Compute the apery set of a numerical semigroup
    • buchweitz -- An example of a semigroup that is not a Weierstrass semigroup
    • buchweitzCriterion -- Does L satisfies the Buchweitz criterion?
    • buchweitzSemigroups -- Finds semigroups that are not Weierstrass semigroups by the Buchweitz test
    • burchIndex -- Compute the burchIndex of the Burch ring of a semigroup
    • coneEquations -- Find the equations of the Kunz cones
    • coneRays -- All the rays of the (homogeneous) Kunz cone
    • def1 -- degrees of a basis of T^1
    • effectiveWeight -- see ewt -- Effective weight of a semigroup (Pflueger)
    • ewt -- Effective weight of a semigroup (Pflueger)
    • facetRays -- computes the rays spanning the face in which a semigroup lies
    • findPoint -- Find a kk-rational point in a variety
    • findSemigroups -- Find all semigroups with a given number of gaps, multiplicity and/or conductor
    • flatteningRelations -- Compute the flattening relations of an unfolding
    • fractionalIdeal -- turn a fractional ideal into a proper ideal
    • gaps -- The gap sequence of a semigroup
    • getFlatFamily -- Compute the flat family depending on a subset of parameters of the universal unfolding
    • heuristicSmoothness -- Check whether an affine curve is smooth
    • isARandomFiberSmooth -- Test whether a random fiber is smooth
    • isGapSequence -- test whether a list of integers can be the list of gaps of a semigroup
    • isSmoothableSemigroup -- Look for a smoothing family
    • isSymmetric -- test whether the semigroup generated by L is symmetric
    • isWeierstrassSemigroup -- Experimentally decide whether L is a Weierstrass semigroup
    • knownExample -- Is L a known Weierstrass semigroup?
    • kunzMatrix -- determine the set of facet equations satisfied by a semigroup
    • kunzRing -- artinian reduction of a semigroup ring
    • LabBookProtocol -- Weierstrass Semigroups in Low genus
    • makeUnfolding -- Makes the universal homogeneous unfolding of an ideal with positive degree parameters
    • mu -- Compute the point representing a semigroup in the Kunz cone
    • nonWeierstrassSemigroups -- Find possibly non Weierstrass Semigroups
    • semigroup -- Compute the semigroup generated by a list of positive integers
    • semigroupIdeal -- The ideal defining the semigroup ring
    • semigroupRing -- forms the semigroup ring over "BaseField"
    • socle -- elements of the semigroup that are in the socle mod the multiplicity
    • sums -- sum of two sequences
    • type -- type of the local semigroup ring
    • weight -- weight of a semigroup
  • Methods
    • allSemigroups(List) -- see allSemigroups -- Compute the Hilbert basis and module generators of a cone of semigroups
    • allSemigroups(ZZ) -- see allSemigroups -- Compute the Hilbert basis and module generators of a cone of semigroups
    • apery(List) -- see apery -- Compute the apery set, multiplicity and conductor
    • aperySemigroupRing(List) -- see aperySemigroupRing -- computes the semigroup ring using both the multiplicity and the full Apery set
    • aperySet(HashTable) -- see aperySet -- Compute the apery set of a numerical semigroup
    • aperySet(List) -- see aperySet -- Compute the apery set of a numerical semigroup
    • buchweitz(ZZ) -- see buchweitz -- An example of a semigroup that is not a Weierstrass semigroup
    • buchweitzCriterion(List) -- see buchweitzCriterion -- Does L satisfies the Buchweitz criterion?
    • buchweitzCriterion(ZZ,List) -- see buchweitzCriterion -- Does L satisfies the Buchweitz criterion?
    • buchweitzSemigroups(ZZ) -- see buchweitzSemigroups -- Finds semigroups that are not Weierstrass semigroups by the Buchweitz test
    • buchweitzSemigroups(ZZ,ZZ) -- see buchweitzSemigroups -- Finds semigroups that are not Weierstrass semigroups by the Buchweitz test
    • buchweitzSemigroups(ZZ,ZZ,ZZ) -- see buchweitzSemigroups -- Finds semigroups that are not Weierstrass semigroups by the Buchweitz test
    • burchIndex(List) -- see burchIndex -- Compute the burchIndex of the Burch ring of a semigroup
    • conductor(List) -- conductor of a semigroup
    • coneEquations(List) -- see coneEquations -- Find the equations of the Kunz cones
    • coneEquations(ZZ) -- see coneEquations -- Find the equations of the Kunz cones
    • coneRays(ZZ) -- see coneRays -- All the rays of the (homogeneous) Kunz cone
    • def1(List) -- see def1 -- degrees of a basis of T^1
    • effectiveWeight(List) -- see ewt -- Effective weight of a semigroup (Pflueger)
    • ewt(List) -- see ewt -- Effective weight of a semigroup (Pflueger)
    • facetRays(List) -- see facetRays -- computes the rays spanning the face in which a semigroup lies
    • findPoint(Ideal) -- see findPoint -- Find a kk-rational point in a variety
    • findSemigroups(ZZ) -- see findSemigroups -- Find all semigroups with a given number of gaps, multiplicity and/or conductor
    • findSemigroups(ZZ,ZZ) -- see findSemigroups -- Find all semigroups with a given number of gaps, multiplicity and/or conductor
    • findSemigroups(ZZ,ZZ,ZZ) -- see findSemigroups -- Find all semigroups with a given number of gaps, multiplicity and/or conductor
    • flatteningRelations(Ideal,Ring,Matrix) -- see flatteningRelations -- Compute the flattening relations of an unfolding
    • fractionalIdeal(List,List) -- see fractionalIdeal -- turn a fractional ideal into a proper ideal
    • gaps(List) -- see gaps -- The gap sequence of a semigroup
    • genus(List) -- Compute the number of gaps (genus) of a semigroup
    • getFlatFamily(List,RR,ZZ) -- see getFlatFamily -- Compute the flat family depending on a subset of parameters of the universal unfolding
    • heuristicSmoothness(Ideal) -- see heuristicSmoothness -- Check whether an affine curve is smooth
    • isARandomFiberSmooth(Ideal,Ideal,Matrix) -- see isARandomFiberSmooth -- Test whether a random fiber is smooth
    • isGapSequence(List) -- see isGapSequence -- test whether a list of integers can be the list of gaps of a semigroup
    • isSmoothableSemigroup(List,RR,ZZ) -- see isSmoothableSemigroup -- Look for a smoothing family
    • isSymmetric(List) -- see isSymmetric -- test whether the semigroup generated by L is symmetric
    • isWeierstrassSemigroup(List,RR) -- see isWeierstrassSemigroup -- Experimentally decide whether L is a Weierstrass semigroup
    • knownExample(List) -- see knownExample -- Is L a known Weierstrass semigroup?
    • kunzMatrix(HashTable) -- see kunzMatrix -- determine the set of facet equations satisfied by a semigroup
    • kunzMatrix(List) -- see kunzMatrix -- determine the set of facet equations satisfied by a semigroup
    • kunzRing(List) -- see kunzRing -- artinian reduction of a semigroup ring
    • LabBookProtocol(ZZ) -- see LabBookProtocol -- Weierstrass Semigroups in Low genus
    • makeUnfolding(Ideal) -- see makeUnfolding -- Makes the universal homogeneous unfolding of an ideal with positive degree parameters
    • makeUnfolding(List) -- see makeUnfolding -- Makes the universal homogeneous unfolding of an ideal with positive degree parameters
    • mingens(List) -- Find a mininmal set of semigroup generators
    • mu(HashTable) -- see mu -- Compute the point representing a semigroup in the Kunz cone
    • mu(List) -- see mu -- Compute the point representing a semigroup in the Kunz cone
    • nonWeierstrassSemigroups(ZZ,ZZ) -- see nonWeierstrassSemigroups -- Find possibly non Weierstrass Semigroups
    • nonWeierstrassSemigroups(ZZ,ZZ,List) -- see nonWeierstrassSemigroups -- Find possibly non Weierstrass Semigroups
    • semigroup(List) -- see semigroup -- Compute the semigroup generated by a list of positive integers
    • semigroupIdeal(List) -- see semigroupIdeal -- The ideal defining the semigroup ring
    • semigroupRing(List) -- see semigroupRing -- forms the semigroup ring over "BaseField"
    • socle(List) -- see socle -- elements of the semigroup that are in the socle mod the multiplicity
    • sums(List,List) -- see sums -- sum of two sequences
    • sums(ZZ,List) -- see sums -- sum of two sequences
    • type(List) -- see type -- type of the local semigroup ring
    • weight(List) -- see weight -- weight of a semigroup

For the programmer

The object NumericalSemigroups is a package.