  
  [1X8 Numerical semigroups with maximal embedding dimension[0X
  
  
  [1X8.1 Numerical semigroups with maximal embedding dimension[0X
  
  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  < cdots < m_n <cdots} 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 < cdots< 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 that the classical minimal generating systems
  (see [GB03]).
  
  [1X8.1-1 IsMEDNumericalSemigroup[0m
  
  [2X> IsMEDNumericalSemigroup( [0X[3XS[0X[2X ) _____________________________________[0Xfunction
  
  [3XS[0m is a numerical semigroup.
  
  Returns true if [3XS[0m is a MED numerical semigroup and false otherwise.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> IsMEDNumericalSemigroup(NumericalSemigroup(3,5,7)); [0X
    [4Xtrue [0X
    [4Xgap> IsMEDNumericalSemigroup(NumericalSemigroup(3,5)); [0X
    [4Xfalse[0X
    [4X[0X
    [4X                        [0X
  [4X------------------------------------------------------------------[0X
  
  [1X8.1-2 MEDNumericalSemigroupClosure[0m
  
  [2X> MEDNumericalSemigroupClosure( [0X[3XS[0X[2X ) ________________________________[0Xfunction
  
  [3XS[0m is a numerical semigroup.
  
  Returns the MED closure of [3XS[0m.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> MEDNumericalSemigroupClosure(NumericalSemigroup(3,5)); [0X
    [4X<Numerical semigroup> [0X
    [4Xgap> MinimalGeneratingSystemOfNumericalSemigroup(last); [0X
    [4X[ 3, 5, 7 ][0X
    [4X[0X
    [4X                        [0X
  [4X------------------------------------------------------------------[0X
  
  [1X8.1-3 MinimalMEDGeneratingSystemOfMEDNumericalSemigroup[0m
  
  [2X> MinimalMEDGeneratingSystemOfMEDNumericalSemigroup( [0X[3XS[0X[2X ) ___________[0Xfunction
  
  [3XS[0m is a MED numerical semigroup.
  
  Returns the minimal MED generating system of [3XS[0m.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> MinimalMEDGeneratingSystemOfMEDNumericalSemigroup( [0X
    [4X> NumericalSemigroup(3,5,7)); [0X
    [4X[ 3, 5 ][0X
    [4X[0X
    [4X                        [0X
  [4X------------------------------------------------------------------[0X
  
  
  [1X8.2 Numerical semigroups with the Arf property and Arf closures[0X
  
  Numerical  semigroups  with the Arf property are a special kind of numerical
  semigroups  with maximal embedding dimension. A numerical semigroup S is Arf
  if for every x,y,z in S with x>= y>= z, one has that x+y-zin S.
  
  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 [GB04]).
  
  [1X8.2-1 IsArfNumericalSemigroup[0m
  
  [2X> IsArfNumericalSemigroup( [0X[3XS[0X[2X ) _____________________________________[0Xfunction
  
  [3XS[0m is a numerical semigroup.
  
  Returns true if [3XS[0m is an Arf numerical semigroup and false otherwise.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap>  IsArfNumericalSemigroup(NumericalSemigroup(3,5,7)); [0X
    [4Xtrue [0X
    [4Xgap>  IsArfNumericalSemigroup(NumericalSemigroup(3,7,11)); [0X
    [4Xfalse [0X
    [4Xgap> IsMEDNumericalSemigroup(NumericalSemigroup(3,7,11)); [0X
    [4Xtrue[0X
    [4X[0X
    [4X                        [0X
  [4X------------------------------------------------------------------[0X
  
  [1X8.2-2 ArfNumericalSemigroupClosure[0m
  
  [2X> ArfNumericalSemigroupClosure( [0X[3XS[0X[2X ) ________________________________[0Xfunction
  
  [3XS[0m is a numerical semigroup.
  
  Returns the Arf closure of [3XS[0m.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> ArfNumericalSemigroupClosure(NumericalSemigroup(3,7,11)); [0X
    [4X<Numerical semigroup> [0X
    [4Xgap> MinimalGeneratingSystemOfNumericalSemigroup(last); [0X
    [4X[ 3, 7, 8 ][0X
    [4X[0X
    [4X                        [0X
  [4X------------------------------------------------------------------[0X
  
  [1X8.2-3 MinimalArfGeneratingSystemOfArfNumericalSemigroup[0m
  
  [2X> MinimalArfGeneratingSystemOfArfNumericalSemigroup( [0X[3XS[0X[2X ) ___________[0Xfunction
  
  [3XS[0m is an Arf numerical semigroup.
  
  Returns the minimal MED generating system of [3XS[0m.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> MinimalArfGeneratingSystemOfArfNumericalSemigroup( [0X
    [4X> NumericalSemigroup(3,7,8)); [0X
    [4X[ 3, 7 ][0X
    [4X[0X
    [4X                        [0X
  [4X------------------------------------------------------------------[0X
  
