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] 

8 Numerical semigroups with maximal embedding dimension
 8.1 Numerical semigroups with maximal embedding dimension
 8.2 Numerical semigroups with the Arf property and Arf closures
 8.3 Saturated numerical semigroups

8 Numerical semigroups with maximal embedding dimension

If S is a numerical semigroup and m is its multiplicity (the least positive integer belonging to it), then the embedding dimension e of S (the cardinality of the minimal system of generators of S) is less than or equal to m. We say that S has maximal embedding dimension (MED for short) when e=m. The intersection of two numerical semigroups with the same multiplicity and maximal embedding dimension is again of maximal embedding dimension. Thus we define the MED closure of a non-empty subset of positive integers M={m < m_1 < ⋯ < m_n <⋯} with gcd(M)=1 as the intersection of all MED numerical semigroups with multiplicity m.

Given a MED numerical semigroup S, we say that M={m_1 < ⋯< m_k} is a MED system of generators if the MED closure of M is S. Moreover, M is a minimal MED generating system for S provided that every proper subset of M is not a MED system of generators of S. Minimal MED generating systems are unique, and in general are smaller than the classical minimal generating systems (see [RGSGGB03]).

8.1 Numerical semigroups with maximal embedding dimension

This section describes the basic functions to deal with maximal embedding dimension numerical semigroups, and MED generating systems.

8.1-1 IsMED
‣ IsMED( S )( property )
‣ IsMEDNumericalSemigroup( S )( property )

S is a numerical semigroup. Returns true if S is a MED numerical semigroup and false otherwise.

gap> IsMED(NumericalSemigroup(3,5,7));
true
gap> IsMEDNumericalSemigroup(NumericalSemigroup(3,5));
false

8.1-2 MEDClosure
‣ MEDClosure( S )( operation )
‣ MEDNumericalSemigroupClosure( S )( function )

S is a numerical semigroup. Returns the MED closure of S.

gap> s := MEDClosure(NumericalSemigroup(3,5));
<Numerical semigroup>
gap> MinimalGenerators(s);
[ 3, 5, 7 ]
gap> MEDNumericalSemigroupClosure(NumericalSemigroup(3,5)) = s;
true

8.1-3 MinimalMEDGeneratingSystemOfMEDNumericalSemigroup
‣ MinimalMEDGeneratingSystemOfMEDNumericalSemigroup( S )( function )

S is a MED numerical semigroup. Returns the minimal MED generating system of S.

gap> MinimalMEDGeneratingSystemOfMEDNumericalSemigroup(
> NumericalSemigroup(3,5,7));
[ 3, 5 ]

8.2 Numerical semigroups with the Arf property and Arf closures

A numerical semigroup S is Arf if for every x,y,z in S with x≥ y≥ z, one has that x+y-z∈ S. Numerical semigroups with the Arf property are a special kind of numerical semigroups with maximal embedding dimension.

The intersection of two Arf numerical semigroups is again Arf, and thus we can consider the Arf closure of a set of nonnegative integers with greatest common divisor equal to one. Analogously as with MED numerical semigroups, we define Arf systems of generators and minimal Arf generating system for an Arf numerical semigroup. These are also unique (see [RGSGGB04]).

8.2-1 IsArf
‣ IsArf( S )( property )
‣ IsArfNumericalSemigroup( S )( property )

S is a numerical semigroup. Returns true if S is an Arf numerical semigroup and false otherwise.

This property implies IsMED (8.1-1) and IsAcuteNumericalSemigroup (3.1-31).

gap>  IsArf(NumericalSemigroup(3,5,7));
true
gap>  IsArfNumericalSemigroup(NumericalSemigroup(3,7,11));
false
gap> IsMED(NumericalSemigroup(3,7,11));
true

8.2-2 ArfClosure
‣ ArfClosure( S )( operation )
‣ ArfNumericalSemigroupClosure( S )( function )

S is a numerical semigroup. Returns the Arf closure of S.

gap> s := NumericalSemigroup(3,7,11);;
gap> t := ArfClosure(s);
<Numerical semigroup>
gap> MinimalGenerators(t);
[ 3, 7, 8 ]
gap> ArfNumericalSemigroupClosure(s) = t;
true

8.2-3 ArfCharactersOfArfNumericalSemigroup
‣ ArfCharactersOfArfNumericalSemigroup( S )( function )
‣ MinimalArfGeneratingSystemOfArfNumericalSemigroup( S )( function )

S is an Arf numerical semigroup. Returns the minimal Arf generating system of S. The current version of this algorithm is due to G. Zito.

gap> s := NumericalSemigroup(3,7,8);
<Numerical semigroup with 3 generators>
gap> ArfCharactersOfArfNumericalSemigroup(s);
[ 3, 7 ]
gap> MinimalArfGeneratingSystemOfArfNumericalSemigroup(s);
[ 3, 7 ]

8.2-4 ArfNumericalSemigroupsWithFrobeniusNumber
‣ ArfNumericalSemigroupsWithFrobeniusNumber( f )( function )

f is an integer. The output is the set of all Arf numerical semigroups with Frobenius number f. The current version of this algorithm is due to G. Zito.

gap> ArfNumericalSemigroupsWithFrobeniusNumber(10);
[ <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>,
  <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>,
  <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup> ]
gap> Set(last,MinimalGenerators);
[ [ 3, 11, 13 ], [ 4, 11, 13, 14 ], [ 6, 9, 11, 13, 14, 16 ],
  [ 6, 11, 13, 14, 15, 16 ], [ 7, 9, 11, 12, 13, 15, 17 ],
  [ 7, 11, 12, 13, 15, 16, 17 ], [ 8, 11, 12, 13, 14, 15, 17, 18 ],
  [ 9, 11, 12, 13, 14, 15, 16, 17, 19 ], [ 11 .. 21 ] ]

8.2-5 ArfNumericalSemigroupsWithFrobeniusNumberUpTo
‣ ArfNumericalSemigroupsWithFrobeniusNumberUpTo( f )( function )

f is an integer. The output is the set of all Arf numerical semigroups with Frobenius number less than or equal to f. The current version of this algorithm is due to G. Zito.

gap> Length(ArfNumericalSemigroupsWithFrobeniusNumberUpTo(10));
46

8.2-6 ArfNumericalSemigroupsWithGenus
‣ ArfNumericalSemigroupsWithGenus( g )( function )

g is a nonnegative integer. The output is the set of all Arf numerical semigroups with genus equal to g. The current version of this algorithm is due to G. Zito.

gap> Length(ArfNumericalSemigroupsWithGenus(10));
21

8.2-7 ArfNumericalSemigroupsWithGenusUpTo
‣ ArfNumericalSemigroupsWithGenusUpTo( g )( function )

g is a nonnegative integer. The output is the set of all Arf numerical semigroups with genus less than or equal to g. The current version of this algorithm is due to G. Zito.

gap> Length(ArfNumericalSemigroupsWithGenusUpTo(10));
86

8.2-8 ArfNumericalSemigroupsWithGenusAndFrobeniusNumber
‣ ArfNumericalSemigroupsWithGenusAndFrobeniusNumber( g, f )( function )

f and g are integers. The output is the set of all Arf numerical semigroups with genus g and Frobenius number f. The algorithm is explained in [GSHKR17].

gap> ArfNumericalSemigroupsWithGenusAndFrobeniusNumber(10,13);
[ <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>,
  <Numerical semigroup>, <Numerical semigroup> ]
gap> List(last,MinimalGenerators);
[ [ 8, 10, 12, 14, 15, 17, 19, 21 ], [ 6, 10, 14, 15, 17, 19 ],
  [ 5, 12, 14, 16, 18 ], [ 6, 9, 14, 16, 17, 19 ], [ 4, 14, 15, 17 ] ]

8.2-9 ArfSpecialGaps
‣ ArfSpecialGaps( s )( operation )

s is an Arf numerical semigroup. The output is the set of gaps g of s such that s∪ {g} is an Arf numerical semigroup. The implementation is based on [Süe22].

gap> s:=NumericalSemigroup(10,24,25,26,27,28,29,31,32,33);;
gap> ArfSpecialGaps(s);
[ 15, 22, 23 ]

8.2-10 ArfOverSemigroups
‣ ArfOverSemigroups( s )( operation )

s is an Arf numerical semigroup. The output is the set of Arf oversemigroups of s. The implementation is based on [Süe22].

gap> s:=NumericalSemigroup(6,9,11,13,14,16);;
gap> List(ArfOverSemigroups(s),MinimalGenerators);
[ [ 1 ], [ 2, 3 ], [ 2, 5 ], [ 2, 7 ], [ 2, 9 ], [ 3 .. 5 ], [ 3, 5, 7 ], 
  [ 3, 7, 8 ], [ 3, 8, 10 ], [ 3, 10, 11 ], [ 3, 11, 13 ], [ 4 .. 7 ], 
  [ 4, 6, 7, 9 ], [ 4, 6, 9, 11 ], [ 5 .. 9 ], [ 6 .. 11 ], 
  [ 6, 8, 9, 10, 11, 13 ], [ 6, 9, 10, 11, 13, 14 ], 
  [ 6, 9, 11, 13, 14, 16 ] ]

8.2-11 IsArfIrreducible
‣ IsArfIrreducible( s )( property )

s is an Arf numerical semigroup. Detects if s is Arf-irreducible, that is, irreducible in the Frobenius variety of Arf numerical semigroups. The implementation is based on [Süe22].

gap> s:=NumericalSemigroupBySmallElements([0,10,17,20]);;
gap> IsArfIrreducible(s);
true
gap> IsIrreducible(s);
false

8.2-12 DecomposeIntoArfIrreducibles
‣ DecomposeIntoArfIrreducibles( s )( operation )

s is an Arf numerical semigroup. The output is a set of Arf irreuducible numerical semigroups whose intersection is s. This decomposition is not redundant in the sense that no semigroup can be removes. The implementation is based on [Süe22].

gap> s:=NumericalSemigroup(6,9,11,13,14,16);;
gap> List(DecomposeIntoArfIrreducibles(s),MinimalGenerators);
[ [ 2, 9 ], [ 3, 11, 13 ] ]

8.3 Saturated numerical semigroups

A numerical semigroup S is saturated if the following condition holds: s, s_1 , ... , s_r in S are such that s_i ≤ s for all i in {1, ... , r} and z_1 , ... , z_r in Z are such that z_1 s_1 + ⋯ + z_r s_r≥ 0, then s + z_1 s_1 + ⋯ + z_r s_r in S. Saturated numerical semigroups are a special kind of numerical semigroups with maximal embedding dimension.

The intersection of two saturated numerical semigroups is again saturated, and thus we can consider the saturated closure of a set of nonnegative integers with greatest common divisor equal to one (see [RGS09]).

8.3-1 IsSaturated
‣ IsSaturated( S )( property )
‣ IsSaturatedNumericalSemigroup( S )( property )

S is a numerical semigroup. Returns true if S is a saturated numerical semigroup and false otherwise.

This property implies IsArf (8.2-1).

gap> IsSaturated(NumericalSemigroup(4,6,9,11));
true
gap> IsSaturatedNumericalSemigroup(NumericalSemigroup(8, 9, 12, 13, 15, 19 ));
false

8.3-2 SaturatedClosure
‣ SaturatedClosure( S )( operation )
‣ SaturatedNumericalSemigroupClosure( S )( function )

S is a numerical semigroup. Returns the saturated closure of S.

gap> s := NumericalSemigroup(8, 9, 12, 13, 15);;
gap> SaturatedClosure(s);
<Numerical semigroup>
gap> MinimalGenerators(last);
[ 8 .. 15 ]
gap> SaturatedNumericalSemigroupClosure(s) = SaturatedClosure(s);
true

8.3-3 SaturatedNumericalSemigroupsWithFrobeniusNumber
‣ SaturatedNumericalSemigroupsWithFrobeniusNumber( f )( function )

f is an integer. The output is the set of all saturated numerical semigroups with Frobenius number f.

gap> SaturatedNumericalSemigroupsWithFrobeniusNumber(10);
[ <Numerical semigroup with 3 generators>,
  <Numerical semigroup with 4 generators>,
  <Numerical semigroup with 6 generators>,
  <Numerical semigroup with 6 generators>,
  <Numerical semigroup with 7 generators>,
  <Numerical semigroup with 8 generators>,
  <Numerical semigroup with 9 generators>,
  <Numerical semigroup with 11 generators> ]
gap>  List(last,MinimalGenerators);
[ [ 3, 11, 13 ], [ 4, 11, 13, 14 ], [ 6, 9, 11, 13, 14, 16 ],
  [ 6, 11, 13, 14, 15, 16 ], [ 7, 11, 12, 13, 15, 16, 17 ],
  [ 8, 11, 12, 13, 14, 15, 17, 18 ], [ 9, 11, 12, 13, 14, 15, 16, 17, 19 ],
  [ 11 .. 21 ] ]
 [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