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

NumericalSemigroups -- Invariants of numerical semigroups

Description

Numerical semigroups are 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.

Combinatorics of Semigroups

Working with the Kunz cone

Properties of semigroup rings

Arf Semigroups

Authors

Version

This documentation describes version 1.0 of NumericalSemigroups, released June 8, 2026.

Citation

If you have used this package in your research, please cite it as follows:

@misc{NumericalSemigroupsSource,
  title = {{NumericalSemigroups: A \emph{Macaulay2} package. Version~1.0}},
  author = {David Eisenbud and Frank-Olaf Schreyer and Theodore Wittmer Lysek},
  howpublished = {A \emph{Macaulay2} package available at
    \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/packages}}
}

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
    • aperyConeEquations -- Inequalities defining the Kunz cones
    • muConeEquations -- see aperyConeEquations -- Inequalities defining the Kunz cones
    • aperyFacetRays (missing documentation)
    • aperySemigroupRing -- computes the semigroup ring using both the multiplicity and the full Apery set
    • aperySet -- Compute the apery set of a numerical semigroup
    • arfClosure -- Compute the Arf closure of a numerical semigroup
    • arfIndex -- Computes the Arf index 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
    • 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
    • findSemigroups -- Find all semigroups with a given number of gaps, multiplicity and/or conductor
    • fractionalIdeal -- turn a fractional ideal into a proper ideal
    • gaps -- The gap sequence of a semigroup
    • infinitelyNearModules -- The sequence of blowups of a semigroup ring as fractional ideals
    • infinitelyNearSemigroups -- The sequence of blowup semigroups of a numerical semigroup
    • isArf -- test whether a numerical semigroup is Arf
    • isGapSequence -- test whether a list of integers can be the list of gaps of a semigroup
    • isKnownExample -- Is L a known Weierstrass semigroup?
    • isMinimalMultiplicity (missing documentation)
    • isSymmetric -- test whether the semigroup generated by L is symmetric
    • kunzMatrix -- determine the set of facet equations satisfied by a semigroup
    • kunzPoset (missing documentation)
    • kunzRing -- artinian reduction of a semigroup ring
    • mu -- Compute the point representing a semigroup in the Kunz cone
    • randomSemigroup -- Random semingroup on a given face of the Kunz cone
    • semigroup -- Compute the semigroup generated by a list of positive integers
    • semigroupFromMu -- Inverse of the function mu
    • semigroupIdeal -- The ideal defining the semigroup ring
    • semigroupRing -- forms the semigroup ring over "BaseField"
    • semigroupsFromMatrix -- applies semigroupFromMu to the columns of a matrix
    • socle -- elements of the semigroup that are in the socle mod the multiplicity
    • sums -- sum of two sequences
    • syzFormat (missing documentation)
    • 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
    • aperyConeEquations(List) -- see aperyConeEquations -- Inequalities defining the Kunz cones
    • aperyConeEquations(ZZ) -- see aperyConeEquations -- Inequalities defining the Kunz cones
    • muConeEquations(List) -- see aperyConeEquations -- Inequalities defining the Kunz cones
    • muConeEquations(ZZ) -- see aperyConeEquations -- Inequalities defining the Kunz cones
    • aperyFacetRays(List) (missing documentation)
    • 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
    • arfClosure(List) -- see arfClosure -- Compute the Arf closure of a numerical semigroup
    • arfIndex(List) -- see arfIndex -- Computes the Arf index 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
    • 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
    • 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
    • fractionalIdeal(List,List) -- see fractionalIdeal -- turn a fractional ideal into a proper ideal
    • fractionalIdeal(Ring,List) (missing documentation)
    • gaps(List) -- see gaps -- The gap sequence of a semigroup
    • genus(List) -- Compute the number of gaps (genus) of a semigroup
    • infinitelyNearModules(Ring) -- see infinitelyNearModules -- The sequence of blowups of a semigroup ring as fractional ideals
    • infinitelyNearSemigroups(List) -- see infinitelyNearSemigroups -- The sequence of blowup semigroups of a numerical semigroup
    • isArf(List) -- see isArf -- test whether a numerical semigroup is Arf
    • isGapSequence(List) -- see isGapSequence -- test whether a list of integers can be the list of gaps of a semigroup
    • isKnownExample(List) -- see isKnownExample -- Is L a known Weierstrass semigroup?
    • isSymmetric(List) -- see isSymmetric -- test whether the semigroup generated by L is symmetric
    • 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
    • kunzPoset(List) (missing documentation)
    • kunzRing(List) -- see kunzRing -- artinian reduction of a semigroup ring
    • 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
    • randomSemigroup(List,ZZ) -- see randomSemigroup -- Random semingroup on a given face of the Kunz cone
    • randomSemigroup(ZZ,ZZ) -- see randomSemigroup -- Random semingroup on a given face of the Kunz cone
    • semigroup(List) -- see semigroup -- Compute the semigroup generated by a list of positive integers
    • semigroupFromMu(List) -- see semigroupFromMu -- Inverse of the function mu
    • semigroupIdeal(List) -- see semigroupIdeal -- The ideal defining the semigroup ring
    • semigroupRing(List) -- see semigroupRing -- forms the semigroup ring over "BaseField"
    • semigroupsFromMatrix(Matrix) -- see semigroupsFromMatrix -- applies semigroupFromMu to the columns of a matrix
    • 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
    • syzFormat(List) (missing documentation)
    • type(List) -- see type -- type of the local semigroup ring
    • weight(List) -- see weight -- weight of a semigroup
  • Symbols
    • muFacetRays (missing documentation)
    • reduceByList (missing documentation)

For the programmer

The object NumericalSemigroups is a package, defined in NumericalSemigroups.m2.


The source of this document is in NumericalSemigroups.m2:1545:0.