Goto Chapter: | Top | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | A | B | Bib | Ind

### 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 )

`> GeneratorsOfNumericalSemigroupNC`( S ) | ( function )

`> MinimalGeneratingSystemOfNumericalSemigroup`( S ) | ( attribute )

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

    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 ]

##### 3.1-3 SmallElementsOfNumericalSemigroup

`> SmallElementsOfNumericalSemigroup`( 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 ]

##### 3.1-4 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 wrt m. It contains for every iin 0,...,m-1, in the i+1th 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-5 DrawAperyListOfNumericalSemigroup

`> DrawAperyListOfNumericalSemigroup`( ap ) | ( function )

ap is the Apéry list of a numerical semigroup. This function draws the graph (ap, E) where the edge u -> v is in E iff v - u is in ap. To use this function, `Graphviz` (http://www.graphviz.org) should be installed and also `Evince` (http://www.gnome.org/projects/evince/) or `ggv` (http://directory.fsf.org/ggv.html).

##### 3.1-6 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);
    <Numerical semigroup with 2 generators>
    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.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\0subseteq 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 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.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 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 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-3 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 | Previous Chapter | Next Chapter

Goto Chapter: | Top | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | A | B | Bib | Ind

generated by GAPDoc2HTML