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

3 Basic operations with numerical semigroups
 3.1 The definitions
 3.2 Frobenius Number
 3.3 Gaps

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 )
‣ ReducedSetOfGeneratorsOfNumericalSemigroup( S[, bool, n] )( 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 ReducedSetOfGeneratorsOfNumericalSemigroupNC Returns a set with possibly fewer generators than those recorded in S!.generators. It changes S!.generators to the set returned. The function has 1 to 3 arguments. One of them a numerical semigroup. Then an argument is a boolean (true means that all the elements not belonging to the Apery set with respect to the multiplicity are removed; the default is "false") and another argument is a positive integer n (meaning that generators that can be written as the sum of n or less generators are removed; the default is "2"). The boolean or the integer may not be present. If a minimal generating set for S is known or no generating set is known, then the minimal generating system is returned. 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 ]
gap> ReducedSetOfGeneratorsOfNumericalSemigroup(NumericalSemigroup(5,7,9,10,25));
[ 5, 7, 9, 25 ]
gap> ReducedSetOfGeneratorsOfNumericalSemigroup(true,NumericalSemigroup(5,7,9,10,25,28));   
[ 5, 7, 9, 28 ]
gap> ReducedSetOfGeneratorsOfNumericalSemigroup(NumericalSemigroup(5,7,9,10,25,28),3);   
[ 5, 7, 9 ]

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 )

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-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∈ {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-7 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∖{0}⊆ 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 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 A B C Bib Ind

generated by GAPDoc2HTML