  
  [1m[4m[31m4. Presentations of Numerical Semigroups[0m
  
  In  this  chapter  we  explain  how  to  compute a minimal presentation of a
  numerical semigroup. There are three functions involved in this process.
  
  
  [1m[4m[31m4.1 Presentations of Numerical Semigroups[0m
  
  [1m[4m[31m4.1-1 FortenTruncatedNCForNumericalSemigroups[0m
  
  [1m[34m> FortenTruncatedNCForNumericalSemigroups( [0m[22m[34mL[0m[1m[34m ) _____________________[0mfunction
  
  [22m[34mL[0m  contains  the  list  of  coefficients  of  a single linear equation. This
  function  gives  a  minimal generator of the affine semigroup of nonnegative
  solutions  of  this  equation  with  the  first coordinate equal to one (see
  [CD94]). Returns [22m[32mfail[0m if no solution exists.
  
  [22m[35m---------------------------  Example  ----------------------------[0m
    [22m[35mgap> FortenTruncatedNCForNumericalSemigroups([ -57, 3 ]);[0m
    [22m[35m[ 1, 19 ][0m
    [22m[35mgap> FortenTruncatedNCForNumericalSemigroups([ -57, 33 ]);[0m
    [22m[35mfail[0m
    [22m[35mgap> FortenTruncatedNCForNumericalSemigroups([ -57, 19 ]);[0m
    [22m[35m[ 1, 3 ][0m
  [22m[35m------------------------------------------------------------------[0m
  
  [1m[4m[31m4.1-2 MinimalPresentationOfNumericalSemigroup[0m
  
  [1m[34m> MinimalPresentationOfNumericalSemigroup( [0m[22m[34mS[0m[1m[34m ) _____________________[0mfunction
  
  [22m[34mS[0m is a numerical semigroup. The output is a list of lists with two elements.
  Each  list  of  two  elements  represents  a  relation  between  the minimal
  generators  of the numerical semigroup. If x_1,y_1,...,x_k,y_k is the output
  and  m_1,...,m_n  is  the  minimal  system  of  generators  of the numerical
  semigroup,       then       x_i,y_i=a_i_1,...,a_i_n,b_i_1,...,b_i_n      and
  a_i_1m_1+cdots+a_i_nm_n= b_i_1m_1+ cdots +b_i_nm_n.
  
  Any  other  relation  among  the  minimal generators of the semigroup can be
  deduced from the ones given in the output.
  
  The algorithm implemented is described in [R96] (see also [RG99]).
  
  [22m[35m---------------------------  Example  ----------------------------[0m
    [22m[35mgap> s:=NumericalSemigroup(3,5,7);[0m
    [22m[35m<Numerical semigroup with 3 generators>[0m
    [22m[35mgap> MinimalPresentationOfNumericalSemigroup(s);[0m
    [22m[35m[ [ [ 1, 0, 1 ], [ 0, 2, 0 ] ], [ [ 4, 0, 0 ], [ 0, 1, 1 ] ],[0m
    [22m[35m  [ [ 3, 1, 0 ], [ 0, 0, 2 ] ] ][0m
    [22m[35m[0m
    [22m[35m                        [0m
  [22m[35m------------------------------------------------------------------[0m
  
  The  first element in the list means that 1times 3+1times 7=2times 5, and so
  on.
  
  [1m[4m[31m4.1-3 GraphAssociatedToElementInNumericalSemigroup[0m
  
  [1m[34m> GraphAssociatedToElementInNumericalSemigroup( [0m[22m[34mn, S[0m[1m[34m ) _____________[0mfunction
  
  [22m[34mS[0m is a numerical semigroup and [22m[34mn[0m is an element in [22m[34mS[0m.
  
  The  output is a pair. If m_1,...,m_n is the set of minimal generators of [22m[34mS[0m,
  then the first component is the set of vertices of the graph associated to [22m[34mn[0m
  in  [22m[34mS[0m, that is, the set m_i | n-m_iin S, and the second component is the set
  of edges of this graph, that is, m_i,m_j | n-(m_i+m_j)in S.
  
  This  function  is  used  to compute a minimal presentation of the numerical
  semigroup [22m[34mS[0m, as explained in [R96].
  
  [22m[35m---------------------------  Example  ----------------------------[0m
    [22m[35mgap> s:=NumericalSemigroup(3,5,7);[0m
    [22m[35m<Numerical semigroup with 3 generators>[0m
    [22m[35mgap> GraphAssociatedToElementInNumericalSemigroup(10,s);[0m
    [22m[35m[ [ 3, 5, 7 ], [ [ 3, 7 ], [ 5, 5 ], [ 7, 3 ] ] ][0m
    [22m[35m[0m
    [22m[35m                        [0m
  [22m[35m------------------------------------------------------------------[0m
  
