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 [RGSGGJM03] 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 this section we show how to construct the set of all numerical semigroups with a given Frobenius number. In old versions of the package, we first constructed an irreducible numerical semigroup with the given Frobenius number (as explained in [RGS04]), and then we constructed the rest from it. That is why we separated both functions. 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 [RGSGGJM03].
‣ IsIrreducibleNumericalSemigroup ( s ) | ( property ) |
‣ IsIrreducible ( s ) | ( property ) |
s is a numerical semigroup. The output is true if s is irreducible, false otherwise.
gap> IsIrreducibleNumericalSemigroup(NumericalSemigroup(4,6,9)); true gap> IsIrreducibleNumericalSemigroup(NumericalSemigroup(4,6,7,9)); false
‣ IsSymmetricNumericalSemigroup ( s ) | ( attribute ) |
‣ IsSymmetric ( s ) | ( attribute ) |
s is a numerical semigroup. The output is true if s is symmetric, false otherwise.
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.
gap> IsPseudoSymmetricNumericalSemigroup(NumericalSemigroup(6,7,8,9,11)); true gap> IsPseudoSymmetricNumericalSemigroup(NumericalSemigroup(4,6,9)); false
‣ AnIrreducibleNumericalSemigroupWithFrobeniusNumber ( f ) | ( function ) |
f is an integer greater than or equal to -1. 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 [RGS04]).
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 greater than or equal to -1. The output is the set of all irreducible numerical semigroups with Frobenius number f.
gap> Length(IrreducibleNumericalSemigroupsWithFrobeniusNumber(19)); 20
‣ 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 alwas greater than or equal to its embedding dimension minus one. Complete intersection numerical semigroups are numerical semigroups reching 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 [AGS13] 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.
gap> s := NumericalSemigroup( 10, 15, 16 ); <Numerical semigroup with 3 generators> gap> IsACompleteIntersectionNumericalSemigroup(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 greater than or equal to -1. 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.
gap> IsFreeNumericalSemigroup(NumericalSemigroup(10,15,16)); true gap> IsFreeNumericalSemigroup(NumericalSemigroup(3,5,7)); false
‣ FreeNumericalSemigroupsWithFrobeniusNumber ( f ) | ( function ) |
f is an integer greater than or equal to -1. 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.
gap> IsTelescopicNumericalSemigroup(NumericalSemigroup(4,11,14)); false gap> IsFreeNumericalSemigroup(NumericalSemigroup(4,11,14)); true
‣ TelescopicNumericalSemigroupsWithFrobeniusNumber ( f ) | ( function ) |
f is an integer greater than or equal to -1. The output is the set of all telescopic numerical semigroups with frobenius number f.
gap> Length(TelescopicNumericalSemigroupsWithFrobeniusNumber(57)); 20
‣ 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.
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 greater than or equal to -1. 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.
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.
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.
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 ([BR97]) if its genus is the arithmetic mean of its Frobenius number and type. We use a procedure presented in [RGS14] 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-symetric numerical semigroups that can be constructed from s by removing some of its generators as explained in [RGS14]).
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 ] ]
‣ IsAlmostSymmetric ( s ) | ( function ) |
‣ IsAlmostSymmetricNumericalSemigroup ( s ) | ( function ) |
s is a numerical semigroup. The output is true if the numerical semigroup is almost symmetric.
gap> IsAlmostSymmetricNumericalSemigroup(NumericalSemigroup(5,8,11,14,17)); true
‣ AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber ( f ) | ( function ) |
f is an integer greater than or equal to -1. 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
generated by GAPDoc2HTML