An irreducible numerical semigroup is a semigroup that cannot be expressed as the intersection of numerical semigroups properly containing it.
It is not difficult to prove that a semigroup is irreducible if and only if it is maximal (with respect to set inclusion) in the set of all numerical semigroups having its same Frobenius number (see [RB03]). Hence, according to [FGR87] (respectively [BDF97]), symmetric (respectively pseudo-symmetric) numerical semigroups are those irreducible numerical semigroups with odd (respectively even) Frobenius number.
In [RGGJ03] it is shown that a nontrivial numerical semigroup is irreducible if and only if it has only one special gap. We use this characterization.
In old versions of the package, we first constructed an irreducible numerical semigroup with the given Frobenius number (as explained in [RG04]), and then we constructed the rest from it. The present version uses a faster procedure presented in [BR13].
Every numerical semigroup can be expressed as an intersection of irreducible numerical semigroups. If \(S\) can be expressed as \(S=S_1\cap \cdots\cap S_n\), with \(S_i\) irreducible numerical semigroups, and no factor can be removed, then we say that this decomposition is minimal. Minimal decompositions can be computed by using Algorithm 26 in [RGGJ03].
In this section we provide membership tests to the two families that conform the set of irreducible numerical semigroups. We also give a procedure to compute the set of all irreducible numerical semigroups with fixed Frobenius number (or equivalently genus, since for irreducible numerical semigroups once the Frobenius number is fixed, so is the genus). Also we give a function to compute the decomposition of a numerical semigroup as an intersection of irreducible numerical semigroups.
‣ IsIrreducible ( s ) | ( property ) |
‣ IsIrreducibleNumericalSemigroup ( s ) | ( property ) |
s is a numerical semigroup. The output is true
if s is irreducible, false
otherwise.
This filter implies IsAlmostSymmetricNumericalSemigroup
(6.3-3) and IsAcuteNumericalSemigroup
(3.1-30).
gap> IsIrreducible(NumericalSemigroup(4,6,9)); true gap> IsIrreducibleNumericalSemigroup(NumericalSemigroup(4,6,7,9)); false
‣ IsSymmetric ( s ) | ( attribute ) |
‣ IsSymmetricNumericalSemigroup ( s ) | ( attribute ) |
s is a numerical semigroup. The output is true
if s is symmetric, false
otherwise.
This filter implies IsIrreducibleNumericalSemigroup
(6.1-1).
gap> IsSymmetric(NumericalSemigroup(10,23)); true gap> IsSymmetricNumericalSemigroup(NumericalSemigroup(10,11,23)); false
‣ IsPseudoSymmetric ( s ) | ( property ) |
‣ IsPseudoSymmetricNumericalSemigroup ( s ) | ( property ) |
s is a numerical semigroup. The output is true
if s is pseudo-symmetric, false
otherwise.
This filter implies IsIrreducibleNumericalSemigroup
(6.1-1).
gap> IsPseudoSymmetric(NumericalSemigroup(6,7,8,9,11)); true gap> IsPseudoSymmetricNumericalSemigroup(NumericalSemigroup(4,6,9)); false
‣ AnIrreducibleNumericalSemigroupWithFrobeniusNumber ( f ) | ( function ) |
f is an integer. When \(f=0\) or \(f\le -2\), the output is fail
. Otherwise, the output is an irreducible numerical semigroup with Frobenius number f. From the way the procedure is implemented, the resulting semigroup has at most four generators (see [RG04]).
gap> s := AnIrreducibleNumericalSemigroupWithFrobeniusNumber(28); <Numerical semigroup with 3 generators> gap> MinimalGenerators(s); [ 3, 17, 31 ] gap> FrobeniusNumber(s); 28
‣ IrreducibleNumericalSemigroupsWithFrobeniusNumber ( f ) | ( function ) |
f is an integer. The output is the set of all irreducible numerical semigroups with Frobenius number f. The algorithm is inspired in [BR13].
gap> Length(IrreducibleNumericalSemigroupsWithFrobeniusNumber(19)); 20
‣ IrreducibleNumericalSemigroupsWithFrobeniusNumberAndMultiplicity ( f, m ) | ( function ) |
f and m are integers. The output is the set of all irreducible numerical semigroups with Frobenius number f and multiplicity m. The implementation appears in [BOR21].
gap> Length(IrreducibleNumericalSemigroupsWithFrobeniusNumberAndMultiplicity(31,11)); 16
‣ DecomposeIntoIrreducibles ( s ) | ( function ) |
s is a numerical semigroup. The output is a set of irreducible numerical semigroups containing it. These elements appear in a minimal decomposition of s as intersection into irreducibles.
gap> DecomposeIntoIrreducibles(NumericalSemigroup(5,6,8)); [ <Numerical semigroup with 3 generators>, <Numerical semigroup with 4 generators> ]
The cardinality of a minimal presentation of a numerical semigroup is always greater than or equal to its embedding dimension minus one. Complete intersection numerical semigroups are numerical semigroups reaching this bound, and they are irreducible. It can be shown that every complete intersection (other that \(\mathbb N\)) is a complete intersection if and only if it is the gluing of two complete intersections. When in this gluing, one of the copies is isomorphic to \(\mathbb N\), then we obtain a free semigroup in the sense of [BC77]. Two special kinds of free semigroups are telescopic semigroups ([KP95]) and those associated to an irreducible planar curve ([Zar86]). We use the algorithms presented in [AG13] to find the set of all complete intersections (also free, telescopic and associated to irreducible planar curves) numerical semigroups with given Frobenius number.
‣ AsGluingOfNumericalSemigroups ( s ) | ( function ) |
s is a numerical semigroup. Returns all partitions \(\{A_1,A_2\}\) of the minimal generating set of s such that s is a gluing of \(\langle A_1\rangle\) and \(\langle A_2\rangle\) by \(gcd(A_1)gcd(A_2)\).
gap> s := NumericalSemigroup( 10, 15, 16 ); <Numerical semigroup with 3 generators> gap> AsGluingOfNumericalSemigroups(s); [ [ [ 10, 15 ], [ 16 ] ], [ [ 10, 16 ], [ 15 ] ] ] gap> s := NumericalSemigroup( 18, 24, 34, 46, 51, 61, 74, 8 ); <Numerical semigroup with 8 generators> gap> AsGluingOfNumericalSemigroups(s); [ ]
‣ IsCompleteIntersection ( s ) | ( property ) |
‣ IsACompleteIntersectionNumericalSemigroup ( s ) | ( property ) |
s is a numerical semigroup. The output is true if the numerical semigroup is a complete intersection, that is, the cardinality of a (any) minimal presentation equals its embedding dimension minus one.
This filter implies IsSymmetricNumericalSemigroup
(6.1-2) and IsCyclotomicNumericalSemigroup
(10.1-8).
gap> s := NumericalSemigroup( 10, 15, 16 ); <Numerical semigroup with 3 generators> gap> IsCompleteIntersection(s); true gap> s := NumericalSemigroup( 18, 24, 34, 46, 51, 61, 74, 8 ); <Numerical semigroup with 8 generators> gap> IsACompleteIntersectionNumericalSemigroup(s); false
‣ CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber ( f ) | ( function ) |
f is an integer. The output is the set of all complete intersection numerical semigroups with Frobenius number f.
gap> Length(CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber(57)); 34
‣ IsFree ( s ) | ( property ) |
‣ IsFreeNumericalSemigroup ( s ) | ( property ) |
s is a numerical semigroup. The output is true if the numerical semigroup is free in the sense of [BC77]: it is either \(\mathbb N\) or the gluing of a copy of \(\mathbb N\) with a free numerical semigroup.
This filter implies IsACompleteIntersectionNumericalSemigroup
(6.2-2).
gap> IsFree(NumericalSemigroup(10,15,16)); true gap> IsFreeNumericalSemigroup(NumericalSemigroup(3,5,7)); false
‣ FreeNumericalSemigroupsWithFrobeniusNumber ( f ) | ( function ) |
f is an integer. The output is the set of all free numerical semigroups with Frobenius number f.
gap> Length(FreeNumericalSemigroupsWithFrobeniusNumber(57)); 33
‣ IsTelescopic ( s ) | ( property ) |
‣ IsTelescopicNumericalSemigroup ( s ) | ( property ) |
s is a numerical semigroup. The output is true if the numerical semigroup is telescopic in the sense of [KP95]: it is either \(\mathbb N\) or the gluing of \(\langle n_e\rangle\) and \(s'=\langle n_1/d,\ldots, n_{e-1}/d\rangle\), and \(s'\) is again a telescopic numerical semigroup, where \(n_1 < \cdots < n_e \) are the minimal generators of s.
This filter implies IsAperySetBetaRectangular
(6.2-12) and IsFree
(6.2-4).
gap> IsTelescopic(NumericalSemigroup(4,11,14)); false gap> IsTelescopicNumericalSemigroup(NumericalSemigroup(4,11,14)); false gap> IsFree(NumericalSemigroup(4,11,14)); true
‣ TelescopicNumericalSemigroupsWithFrobeniusNumber ( f ) | ( function ) |
f is an integer. The output is the set of all telescopic numerical semigroups with Frobenius number f.
gap> Length(TelescopicNumericalSemigroupsWithFrobeniusNumber(57)); 20
‣ IsUniversallyFree ( s ) | ( property ) |
‣ IsUniversallyFreeNumericalSemigroup ( s ) | ( property ) |
s is a numerical semigroup. The output is true if the numerical semigroup is free for all the arrangements of its minimal generators.
This filter implies IsTelescopic
(6.2-6).
gap> s:=NumericalSemigroup(10,15,18);; gap> IsUniversallyFree(s); true gap> s:=NumericalSemigroup(4,6,9);; gap> IsFree(s); true gap> IsUniversallyFree(s); false
‣ IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity ( s ) | ( property ) |
s is a numerical semigroup. The output is true if the numerical semigroup is associated to an irreducible planar curve singularity ([Zar86]). These semigroups are telescopic.
This filter implies IsAperySetAlphaRectangular
(6.2-13) and IsTelescopicNumericalSemigroup
(6.2-6).
gap> ns := NumericalSemigroup(4,11,14);; gap> IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity(ns); false gap> ns := NumericalSemigroup(4,11,19);; gap> IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity(ns); true
‣ NumericalSemigroupsPlanarSingularityWithFrobeniusNumber ( f ) | ( function ) |
f is an integer. The output is the set of all numerical semigroups associated to irreducible planar curves singularities with Frobenius number f.
gap> Length(NumericalSemigroupsPlanarSingularityWithFrobeniusNumber(57)); 7
‣ IsAperySetGammaRectangular ( S ) | ( function ) |
S is a numerical semigroup.
Test for the \(\gamma\)-rectangularity of the Apéry Set of a numerical semigroup. This test is the implementation of the algorithm given in [DMS14]. Numerical Semigroups with this property are free and thus complete intersections.
This filter implies IsFreeNumericalSemigroup
(6.2-4).
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> IsAperySetGammaRectangular(s); false gap> s:=NumericalSemigroup(4,6,11);; gap> IsAperySetGammaRectangular(s); true
‣ IsAperySetBetaRectangular ( S ) | ( function ) |
S is a numerical semigroup.
Test for the \(\beta\)-rectangularity of the Apéry Set of a numerical semigroup. This test is the implementation of the algorithm given in [DMS14]; \(\beta\)-rectangularity implies \(\gamma\)-rectangularity.
This filter implies IsAperySetGammaRectangular
(6.2-11).
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> IsAperySetBetaRectangular(s); false gap> s:=NumericalSemigroup(4,6,11);; gap> IsAperySetBetaRectangular(s); true
‣ IsAperySetAlphaRectangular ( S ) | ( function ) |
S is a numerical semigroup.
Test for the \(\alpha\)-rectangularity of the Apéry Set of a numerical semigroup. This test is the implementation of the algorithm given in [DMS14]; \(\alpha\)-rectangularity implies \(\beta\)-rectangularity.
This filter implies IsAperySetBetaRectangular
(6.2-12).
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> IsAperySetAlphaRectangular(s); false gap> s:=NumericalSemigroup(4,6,11);; gap> IsAperySetAlphaRectangular(s); true
A numerical semigroup is almost-symmetric ([BF97]) if its genus is the arithmetic mean of its Frobenius number and type. We use a procedure presented in [RG14] to determine the set of all almost-symmetric numerical semigroups with given Frobenius number. In order to do this, we first calculate the set of all almost-symmetric numerical semigroups that can be constructed from an irreducible numerical semigroup.
‣ AlmostSymmetricNumericalSemigroupsFromIrreducible ( s ) | ( function ) |
s is an irreducible numerical semigroup. The output is the set of almost-symmetric numerical semigroups that can be constructed from s by removing some of its generators (as explained in [RG14]).
gap> ns := NumericalSemigroup(5,8,9,11);; gap> AlmostSymmetricNumericalSemigroupsFromIrreducible(ns); [ <Numerical semigroup with 4 generators>, <Numerical semigroup with 5 generators>, <Numerical semigroup with 5 generators> ] gap> List(last,MinimalGeneratingSystemOfNumericalSemigroup); [ [ 5, 8, 9, 11 ], [ 5, 8, 11, 14, 17 ], [ 5, 9, 11, 13, 17 ] ]
‣ AlmostSymmetricNumericalSemigroupsFromIrreducibleAndGivenType ( s, t ) | ( function ) |
s is an irreducible numerical semigroup and t is a positive integer. The output is the set of almost-symmetric numerical semigroups with type t that can be constructed from s by removing some of its generators (as explained in [BOR18]).
gap> ns := NumericalSemigroup(5,8,9,11);; gap> AlmostSymmetricNumericalSemigroupsFromIrreducibleAndGivenType(ns,4); [ <Numerical semigroup with 5 generators>, <Numerical semigroup with 5 generators> ] gap> List(last,MinimalGenerators); [ [ 5, 8, 11, 14, 17 ], [ 5, 9, 11, 13, 17 ] ]
‣ IsAlmostSymmetric ( s ) | ( function ) |
‣ IsAlmostSymmetricNumericalSemigroup ( s ) | ( function ) |
s is a numerical semigroup. The output is true
if the numerical semigroup is almost symmetric.
gap> IsAlmostSymmetric(NumericalSemigroup(5,8,11,14,17)); true gap> IsAlmostSymmetricNumericalSemigroup(NumericalSemigroup(5,8,11,14,17)); true
‣ AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber ( f[, ts] ) | ( function ) |
f is an integer, and so is ts. The output is the set of all almost symmetric numerical semigroups with Frobenius number f, and type greater than or equal to ts. If ts is not specified, then it is considered to be equal to one, and so the output is the set of all almost symmetric numerical semigroups with Frobenius number f.
gap> Length(AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber(12)); 15 gap> Length(IrreducibleNumericalSemigroupsWithFrobeniusNumber(12)); 2 gap> List(AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber(12,4),Type); [ 12, 10, 8, 8, 6, 6, 6, 6, 4, 4, 4, 4, 4 ]
‣ AlmostSymmetricNumericalSemigroupsWithFrobeniusNumberAndType ( f, t ) | ( function ) |
f is an integer and so is t. The output is the set of all almost symmetric numerical semigroups with Frobenius number f and type t.
gap> Length(AlmostSymmetricNumericalSemigroupsWithFrobeniusNumberAndType(12,4)); 5
Let \(S\) be a numerical semigroup and let \(R\) be its semigroup ring \(K[\![S]\!]\). We say that \(S\) has the generalized Gorenstein property if its semigroup ring has this property. For the definition and characterization of generalized Gorenstein rings please see [tttt17].
A numerical semigroup is said to be nearly Gorenstein if its maximal ideal is contained in its trace ideal [HHS19]. Every almost symmetric numerical semigroup is nearly Gorenstein.
A numerical semigroup \(S\) with canonical ideal \(K\) is a generalized almost symmetric numerical semigroup if either \(2K=K\) (symmetric) or \(2K\setminus K=\{\textrm{F}(S)-x_1,\dots, \textrm{F}(S)-x_r,\textrm{F}(S)\}\) for some \(x_1,\dots,x_r \in M\setminus 2M\) (minimal generators) and \(x_i-x_j\not\in (S-M)\setminus S\) (not pseudo-Frobenius numbers), see [DS21]. As expected, every almost symmetric numerical semigroup is a generalized almost symmetric numerical semigroup.
‣ IsGeneralizedGorenstein ( s ) | ( property ) |
s is a numerical semigroup. The output is true
if the semigroup ring \(K[\![S]\!]\) is generalized Gorenstein using the characterization by Goto-Kumashiro [MK17].
gap> s:=NumericalSemigroup(3,7,8);; gap> IsAlmostSymmetric(s); false gap> IsGeneralizedGorenstein(s); true
‣ IsNearlyGorenstein ( s ) | ( property ) |
s is a numerical semigroup. The output is true
if the semigroup is nearly Gorenstein, and false
otherwise.
gap> s:=NumericalSemigroup(10,11,12,25);; gap> IsAlmostSymmetric(s); false gap> IsNearlyGorenstein(s); true gap> s:=NumericalSemigroup(3,7,8);; gap> IsNearlyGorenstein(s); false
‣ NearlyGorensteinVectors ( s ) | ( operation ) |
s is a numerical semigroup. The output is a lists of lists (making the cartesian product of them yields all possible NG-vectors). If \(n_i\) is the ith generator of s, in the ith position of the list it returns all pseudo-Frobenius numbers \(f\) of s such that \(n_i+f-f'\) is in s for all \(f\) a pseudo-Frobenius number of s, [MS21].
gap> s:=NumericalSemigroup(10,11,12,25);; gap> IsAlmostSymmetric(s); false gap> IsNearlyGorenstein(s); true gap> s:=NumericalSemigroup(3,7,8);; gap> IsNearlyGorenstein(s); false
‣ IsGeneralizedAlmostSymmetric ( s ) | ( property ) |
s is a numerical semigroup. Determines whether or not s is a generalized almost symmetric numerical semigroup.
gap> s:=NumericalSemigroup(9, 24, 39, 43, 77);; gap> IsGeneralizedAlmostSymmetric(s); true gap> IsAlmostSymmetric(s); false
generated by GAPDoc2HTML