GAP (NumericalSgps) - Chapter 6: Irreducible numerical semigroups

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B C Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

6 Irreducible numerical semigroups
6.1 Irreducible numerical semigroups
6.1-1 IsIrreducible
6.1-2 IsSymmetric
6.1-3 IsPseudoSymmetric
6.1-4 AnIrreducibleNumericalSemigroupWithFrobeniusNumber
6.1-5 IrreducibleNumericalSemigroupsWithFrobeniusNumber
6.1-6 IrreducibleNumericalSemigroupsWithFrobeniusNumberAndMultiplicity
6.1-7 DecomposeIntoIrreducibles
6.2 Complete intersection numerical semigroups
6.2-1 AsGluingOfNumericalSemigroups
6.2-2 IsCompleteIntersection
6.2-3 CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber
6.2-4 IsFree
6.2-5 FreeNumericalSemigroupsWithFrobeniusNumber
6.2-6 IsTelescopic
6.2-7 TelescopicNumericalSemigroupsWithFrobeniusNumber
6.2-8 IsUniversallyFree
6.2-9 IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity
6.2-10 NumericalSemigroupsPlanarSingularityWithFrobeniusNumber
6.2-11 IsAperySetGammaRectangular
6.2-12 IsAperySetBetaRectangular
6.2-13 IsAperySetAlphaRectangular
6.3 Almost-symmetric numerical semigroups
6.3-1 AlmostSymmetricNumericalSemigroupsFromIrreducible
6.3-2 AlmostSymmetricNumericalSemigroupsFromIrreducibleAndGivenType
6.3-3 IsAlmostSymmetric
6.3-4 AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber
6.3-5 AlmostSymmetricNumericalSemigroupsWithFrobeniusNumberAndType
6.4 Several approaches generalizing the concept of symmetry
6.4-1 IsGeneralizedGorenstein
6.4-2 IsNearlyGorenstein
6.4-3 NearlyGorensteinVectors
6.4-4 IsGeneralizedAlmostSymmetric

### 6 Irreducible numerical semigroups

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 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. 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].

#### 6.1 Irreducible numerical semigroups

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.

##### 6.1-1 IsIrreducible

`‣ 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-31).

    gap> IsIrreducible(NumericalSemigroup(4,6,9));
    true
    gap> IsIrreducibleNumericalSemigroup(NumericalSemigroup(4,6,7,9));
    false

##### 6.1-2 IsSymmetric

`‣ 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

##### 6.1-3 IsPseudoSymmetric

`‣ 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

##### 6.1-4 AnIrreducibleNumericalSemigroupWithFrobeniusNumber

`‣ 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 [RGS04]).

    gap> s := AnIrreducibleNumericalSemigroupWithFrobeniusNumber(28);
    <Numerical semigroup with 3 generators>
    gap> MinimalGenerators(s);
    [ 3, 17, 31 ]
    gap> FrobeniusNumber(s);
    28

##### 6.1-5 IrreducibleNumericalSemigroupsWithFrobeniusNumber

`‣ 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

##### 6.1-6 IrreducibleNumericalSemigroupsWithFrobeniusNumberAndMultiplicity

`‣ 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 [ttt19].

    gap> Length(IrreducibleNumericalSemigroupsWithFrobeniusNumberAndMultiplicity(31,11));
    16

##### 6.1-7 DecomposeIntoIrreducibles

`‣ 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> ]

#### 6.2 Complete intersection numerical semigroups

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 [AGS13] to find the set of all complete intersections (also free, telescopic and associated to irreducible planar curves) numerical semigroups with given Frobenius number.

##### 6.2-1 AsGluingOfNumericalSemigroups

`‣ 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);
    [  ]

##### 6.2-2 IsCompleteIntersection

`‣ 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

##### 6.2-3 CompleteIntersectionNumericalSemigroupsWithFrobeniusNumber

`‣ 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

##### 6.2-4 IsFree

`‣ 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

##### 6.2-5 FreeNumericalSemigroupsWithFrobeniusNumber

`‣ 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

##### 6.2-6 IsTelescopic

`‣ 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

##### 6.2-7 TelescopicNumericalSemigroupsWithFrobeniusNumber

`‣ 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

##### 6.2-8 IsUniversallyFree

`‣ 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

##### 6.2-9 IsNumericalSemigroupAssociatedIrreduciblePlanarCurveSingularity

`‣ 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

##### 6.2-10 NumericalSemigroupsPlanarSingularityWithFrobeniusNumber

`‣ 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

##### 6.2-11 IsAperySetGammaRectangular

`‣ 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

##### 6.2-12 IsAperySetBetaRectangular

`‣ 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

##### 6.2-13 IsAperySetAlphaRectangular

`‣ 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

#### 6.3 Almost-symmetric numerical semigroups

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 [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.

##### 6.3-1 AlmostSymmetricNumericalSemigroupsFromIrreducible

`‣ 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 [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 ] ]

##### 6.3-2 AlmostSymmetricNumericalSemigroupsFromIrreducibleAndGivenType

`‣ 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 ] ]

##### 6.3-3 IsAlmostSymmetric

`‣ 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

##### 6.3-4 AlmostSymmetricNumericalSemigroupsWithFrobeniusNumber

`‣ 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 ]

##### 6.3-5 AlmostSymmetricNumericalSemigroupsWithFrobeniusNumberAndType

`‣ 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

#### 6.4 Several approaches generalizing the concept of symmetry

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.

##### 6.4-1 IsGeneralizedGorenstein

`‣ 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

##### 6.4-2 IsNearlyGorenstein

`‣ 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

##### 6.4-3 NearlyGorensteinVectors

`‣ 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

##### 6.4-4 IsGeneralizedAlmostSymmetric

`‣ 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

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A B C Bib Ind

generated by GAPDoc2HTML