GAP (NumericalSgps) - Chapter 3: Basic operations with numerical semigroups

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

[MathJax off]

3 Basic operations with numerical semigroups
3.1 The definitions
3.1-1 MultiplicityOfNumericalSemigroup
3.1-2 GeneratorsOfNumericalSemigroup
3.1-3 EmbeddingDimensionOfNumericalSemigroup
3.1-4 SmallElementsOfNumericalSemigroup
3.1-5 FirstElementsOfNumericalSemigroup
3.1-6 AperyListOfNumericalSemigroupWRTElement
3.1-7 AperyListOfNumericalSemigroup
3.1-8 AperyListOfNumericalSemigroupWRTInteger
3.1-9 AperyListOfNumericalSemigroupAsGraph
3.1-10 KunzCoordinatesOfNumericalSemigroup
3.1-11 KunzPolytope
3.2 Frobenius Number
3.2-1 FrobeniusNumberOfNumericalSemigroup
3.2-2 FrobeniusNumber
3.2-3 ConductorOfNumericalSemigroup
3.2-4 PseudoFrobeniusOfNumericalSemigroup
3.2-5 TypeOfNumericalSemigroup
3.3 Gaps
3.3-1 GapsOfNumericalSemigroup
3.3-2 GenusOfNumericalSemigroup
3.3-3 FundamentalGapsOfNumericalSemigroup
3.3-4 SpecialGapsOfNumericalSemigroup

### 3 Basic operations with numerical semigroups

#### 3.1 The definitions

##### 3.1-1 MultiplicityOfNumericalSemigroup

`‣ MultiplicityOfNumericalSemigroup`( NS ) | ( attribute )

NS is a numerical semigroup. Returns the multiplicity of NS, which is the smallest positive integer belonging to NS.

    gap> S := NumericalSemigroup("modular", 7,53);
    <Modular numerical semigroup satisfying 7x mod 53 <= x >
    gap> MultiplicityOfNumericalSemigroup(S);
    8

##### 3.1-2 GeneratorsOfNumericalSemigroup

`‣ GeneratorsOfNumericalSemigroup`( S ) | ( function )

`‣ MinimalGeneratingSystemOfNumericalSemigroup`( S ) | ( attribute )

`‣ MinimalGeneratingSystem`( S ) | ( attribute )

S is a numerical semigroup. `GeneratorsOfNumericalSemigroup` returns a set of generators of `S`, which may not be minimal. `MinimalGeneratingSystemOfNumericalSemigroup` returns the minimal set of generators of `S`.

From Version 0.980, `ReducedSetOfGeneratorsOfNumericalSemigroup` is just a synonym of `MinimalGeneratingSystemOfNumericalSemigroup` and `GeneratorsOfNumericalSemigroupNC` is just a synonym of `GeneratorsOfNumericalSemigroup`. The names are kept for compatibility with code produced for previous versions, but will be removed in the future.

    gap> S := NumericalSemigroup("modular", 5,53);
    <Modular numerical semigroup satisfying 5x mod 53 <= x >
    gap> GeneratorsOfNumericalSemigroup(S);
    [ 11, 12, 13, 32, 53 ]
    gap> S := NumericalSemigroup(3, 5, 53);
    <Numerical semigroup with 3 generators>
    gap> GeneratorsOfNumericalSemigroup(S);
    [ 3, 5, 53 ]
    gap> MinimalGeneratingSystemOfNumericalSemigroup(S);
    [ 3, 5 ]
    gap> MinimalGeneratingSystem(S)=MinimalGeneratingSystemOfNumericalSemigroup(S);
    true

##### 3.1-3 EmbeddingDimensionOfNumericalSemigroup

`‣ EmbeddingDimensionOfNumericalSemigroup`( NS ) | ( attribute )

`NS` is a numerical semigroup. It returns the cardinality of its minimal generating system.

##### 3.1-4 SmallElementsOfNumericalSemigroup

`‣ SmallElementsOfNumericalSemigroup`( NS ) | ( attribute )

`‣ SmallElements`( NS ) | ( attribute )

`NS` is a numerical semigroup. It returns the list of small elements of `NS`. Of course, the time consumed to return a result may depend on the way the semigroup is given.

    gap> SmallElementsOfNumericalSemigroup(NumericalSemigroup(3,5,7));
    [ 0, 3, 5 ]
    gap> SmallElements(NumericalSemigroup(3,5,7));
    [ 0, 3, 5 ]

##### 3.1-5 FirstElementsOfNumericalSemigroup

`‣ FirstElementsOfNumericalSemigroup`( n, NS ) | ( function )

`NS` is a numerical semigroup. It returns the list with the first n elements of `NS`.

    gap> FirstElementsOfNumericalSemigroup(2,NumericalSemigroup(3,5,7));
    [ 0, 3 ]
    gap> FirstElementsOfNumericalSemigroup(10,NumericalSemigroup(3,5,7));
    [ 0, 3, 5, 6, 7, 8, 9, 10, 11, 12 ]

##### 3.1-6 AperyListOfNumericalSemigroupWRTElement

`‣ AperyListOfNumericalSemigroupWRTElement`( S, m ) | ( operation )

S is a numerical semigroup and m is a positive element of S. Computes the Apéry list of S with respect to m. It contains for every \(i\in \{0,\ldots,\textit{m}-1\}\), in the \(i+1\)th position, the smallest element in the semigroup congruent with \(i\) modulo m.

    gap> S := NumericalSemigroup("modular", 5,53);
    <Modular numerical semigroup satisfying 5x mod 53 <= x >
    gap> AperyListOfNumericalSemigroupWRTElement(S,12);
    [ 0, 13, 26, 39, 52, 53, 54, 43, 32, 33, 22, 11 ]

##### 3.1-7 AperyListOfNumericalSemigroup

`‣ AperyListOfNumericalSemigroup`( S ) | ( operation )

S is a numerical semigroup. It computes the Apéry list of S with respect to the multiplicity of S.

    gap> S := NumericalSemigroup("modular", 5,53);
    <Modular numerical semigroup satisfying 5x mod 53 <= x >
    gap> AperyListOfNumericalSemigroup(S);
    [ 0, 12, 13, 25, 26, 38, 39, 51, 52, 53, 32 ]

##### 3.1-8 AperyListOfNumericalSemigroupWRTInteger

`‣ AperyListOfNumericalSemigroupWRTInteger`( S, m ) | ( function )

S is a numerical semigroup and m is a positive integer. Computes the Apéry list of S with respect to m, that is, the set of elements \(x\) in S such that \(x-\)m is not in S. If m is an element in S, then the output, as sets, is the same as AperyListOfNumericalSemigroupWRTInteger, though without side effects, in the sense that this information is no longer used by the package.

    gap>  s:=NumericalSemigroup(10,13,19,27);
    <Numerical semigroup with 4 generators>
    gap> AperyListOfNumericalSemigroupWRTInteger(s,11);
    [ 0, 10, 13, 19, 20, 23, 26, 27, 29, 32, 33, 36, 39, 42, 45, 46, 52, 55 ]
    gap> Length(last);
    18
    gap> AperyListOfNumericalSemigroupWRTInteger(s,10);
    [ 0, 13, 19, 26, 27, 32, 38, 45, 51, 54 ]
    gap> AperyListOfNumericalSemigroupWRTElement(s,10);
    [ 0, 51, 32, 13, 54, 45, 26, 27, 38, 19 ]
    gap> Length(last);
    10

##### 3.1-9 AperyListOfNumericalSemigroupAsGraph

`‣ AperyListOfNumericalSemigroupAsGraph`( ap ) | ( function )

ap is the Apéry list of a numerical semigroup. This function returns the adjacency list of the graph \((ap, E)\) where the edge \(u -> v\) is in \(E\) iff \(v - u\) is in \(ap\). The 0 is ignored.

    gap> s:=NumericalSemigroup(3,7);;
    gap> AperyListOfNumericalSemigroupWRTElement(s,10);
    [ 0, 21, 12, 3, 14, 15, 6, 7, 18, 9 ]
    gap> AperyListOfNumericalSemigroupAsGraph(last);
    [ ,, [ 3, 6, 9, 12, 15, 18, 21 ],,, [ 6, 9, 12, 15, 18, 21 ],
    [ 7, 14, 21 ],, [ 9, 12, 15, 18, 21 ],,, [ 12, 15, 18, 21 ],,
    [ 14, 21 ], [ 15, 18, 21 ],,, [ 18, 21 ],,, [ 21 ] ]

##### 3.1-10 KunzCoordinatesOfNumericalSemigroup

`‣ KunzCoordinatesOfNumericalSemigroup`( S, m ) | ( function )

S is a numerical semigroup, and m is a nonzero element of S. The second argument is optional, and if missing it is assumed to be the multiplicity of S.

Then the Apéry set of m in S has the form \([0,k_1m+1,...,k_{m-1}m+m-1]\), and the output is the \((m-1)\)-uple \([k_1,k_2,...,k_{m-1}]\)

    gap> s:=NumericalSemigroup(3,5,7);
    <Numerical semigroup with 3 generators>
    gap> KunzCoordinatesOfNumericalSemigroup(s);
    [ 2, 1 ]
    gap> KunzCoordinatesOfNumericalSemigroup(s,5);
    [ 1, 1, 0, 1 ]

##### 3.1-11 KunzPolytope

`‣ KunzPolytope`( m ) | ( function )

m is a positive ingeger.

The Kunz coordinates of the semigroups with that multiplicity m are solutions of a system of inequalities \(Ax\ge b\) (see [CGB02]). The output is the matrix \((A|-b)\).

    gap> KunzPolytope(3);
    [ [ 1, 0, -1 ], [ 0, 1, -1 ], [ 2, -1, 0 ], [ -1, 2, 1 ] ]

#### 3.2 Frobenius Number

The largest nonnegative integer not belonging to a numerical semigroup \(S\) is the Frobenius number of \(S\). If \(S\) is the set of nonnegative integers, then clearly its Frobenius number is \(-1\), otherwise its Frobenius number coincides with the maximum of the gaps (or fundamental gaps) of \(S\). An integer \(z\) is a pseudo-Frobenius number of \(S\) if \(z+S\setminus\{0\}\subseteq S\).

##### 3.2-1 FrobeniusNumberOfNumericalSemigroup

`‣ FrobeniusNumberOfNumericalSemigroup`( NS ) | ( attribute )

`NS` is a numerical semigroup. It returns the Frobenius number of `NS`. Of course, the time consumed to return a result may depend on the way the semigroup is given or on the knowledge already produced on the semigroup.

    gap> FrobeniusNumberOfNumericalSemigroup(NumericalSemigroup(3,5,7));
    4

##### 3.2-2 FrobeniusNumber

`‣ FrobeniusNumber`( NS ) | ( attribute )

This is just a synonym of `FrobeniusNumberOfNumericalSemigroup` (3.2-1).

##### 3.2-3 ConductorOfNumericalSemigroup

`‣ ConductorOfNumericalSemigroup`( NS ) | ( attribute )

This is just a synonym of `FrobeniusNumberOfNumericalSemigroup` (`NS`)\(+1\).

##### 3.2-4 PseudoFrobeniusOfNumericalSemigroup

`‣ PseudoFrobeniusOfNumericalSemigroup`( S ) | ( attribute )

`S` is a numerical semigroup. It returns set of pseudo-Frobenius numbers of S.

    gap> S := NumericalSemigroup("modular", 5,53);
    <Modular numerical semigroup satisfying 5x mod 53 <= x >
    gap> PseudoFrobeniusOfNumericalSemigroup(S);
    [ 21, 40, 41, 42 ]

##### 3.2-5 TypeOfNumericalSemigroup

`‣ TypeOfNumericalSemigroup`( NS ) | ( attribute )

Stands for `Length(PseudoFrobeniusOfNumericalSemigroup (NS))`.

#### 3.3 Gaps

A gap of a numerical semigroup \(S\) is a nonnegative integer not belonging to \(S\). The fundamental gaps of \(S\) are those gaps that are maximal with respect to the partial order induced by division in \({\mathbb N}\). The special gaps of a numerical semigroup \(S\), are those fundamental gaps such that if they are added to the given numerical semigroup, then the resulting set is again a numerical semigroup.

##### 3.3-1 GapsOfNumericalSemigroup

`‣ GapsOfNumericalSemigroup`( NS ) | ( attribute )

`NS` is a numerical semigroup. It returns the set of gaps of `NS`.

    gap> GapsOfNumericalSemigroup(NumericalSemigroup(3,5,7));
    [ 1, 2, 4 ]

##### 3.3-2 GenusOfNumericalSemigroup

`‣ GenusOfNumericalSemigroup`( NS ) | ( attribute )

`NS` is a numerical semigroup. It returns the number of gaps of `NS`.

##### 3.3-3 FundamentalGapsOfNumericalSemigroup

`‣ FundamentalGapsOfNumericalSemigroup`( S ) | ( attribute )

`S` is a numerical semigroup. It returns the set of fundamental gaps of S.

    gap> S := NumericalSemigroup("modular", 5,53);
    <Modular numerical semigroup satisfying 5x mod 53 <= x >
    gap> FundamentalGapsOfNumericalSemigroup(S);
    [ 16, 17, 18, 19, 27, 28, 29, 30, 31, 40, 41, 42 ]
    gap> GapsOfNumericalSemigroup(S);
    [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16, 17, 18, 19, 20, 21, 27, 28, 29,
      30, 31, 40, 41, 42 ]

##### 3.3-4 SpecialGapsOfNumericalSemigroup

`‣ SpecialGapsOfNumericalSemigroup`( S ) | ( attribute )

`S` is a numerical semigroup. It returns the special gaps of S.

    gap> S := NumericalSemigroup("modular", 5,53);
    <Modular numerical semigroup satisfying 5x mod 53 <= x >
    gap> SpecialGapsOfNumericalSemigroup(S);
    [ 40, 41, 42 ]

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

generated by GAPDoc2HTML