  
  [1X5 [33X[0;0YConstructing numerical semigroups from others[133X[101X
  
  [33X[0;0YThis  chapter  provides  several functions to construct numerical semigroups
  from  others (via intersections, quotients by an integer, removing or adding
  integers, etc.).[133X
  
  
  [1X5.1 [33X[0;0YAdding and removing elements of a numerical semigroup[133X[101X
  
  [33X[0;0YIn  this  section  we  show how to construct new numerical semigroups from a
  given  numerical semigroup. Two dual operations are presented. The first one
  removes  a  minimal  generator from a numerical semigroup. The second adds a
  special gap to a semigroup (see [RGSGGJM03]).[133X
  
  [1X5.1-1 RemoveMinimalGeneratorFromNumericalSemigroup[101X
  
  [33X[1;0Y[29X[2XRemoveMinimalGeneratorFromNumericalSemigroup[102X( [3Xn[103X, [3XS[103X ) [32X function[133X
  
  [33X[0;0Y[3XS[103X is a numerical semigroup and [3Xn[103X is one if its minimal generators.[133X
  
  [33X[0;0YThe  output  is  the numerical semigroup [22X[3XS[103X ∖{[3Xn[103X}[122X (see [RGSGGJM03]; [22XS∖{n}[122X is a
  numerical semigroup if and only if [22Xn[122X is a minimal generator of [22XS[122X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);[127X[104X
    [4X[28X<Numerical semigroup with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XRemoveMinimalGeneratorFromNumericalSemigroup(7,s);[127X[104X
    [4X[28X<Numerical semigroup with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27XMinimalGeneratingSystemOfNumericalSemigroup(last);[127X[104X
    [4X[28X[ 3, 5 ][128X[104X
  [4X[32X[104X
  
  [1X5.1-2 AddSpecialGapOfNumericalSemigroup[101X
  
  [33X[1;0Y[29X[2XAddSpecialGapOfNumericalSemigroup[102X( [3Xg[103X, [3XS[103X ) [32X function[133X
  
  [33X[0;0Y[3XS[103X is a numerical semigroup and [3Xg[103X is a special gap of [3XS[103X.[133X
  
  [33X[0;0YThe  output  is the numerical semigroup [22X[3XS[103X ∪{[3Xg[103X}[122X (see [RGSGGJM03], where it is
  explained why this set is a numerical semigroup).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X
    [4X[25Xgap>[125X [27Xs2:=RemoveMinimalGeneratorFromNumericalSemigroup(5,s);[127X[104X
    [4X[28X<Numerical semigroup with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27Xs3:=AddSpecialGapOfNumericalSemigroup(5,s2);[127X[104X
    [4X[28X<Numerical semigroup>[128X[104X
    [4X[25Xgap>[125X [27XSmallElementsOfNumericalSemigroup(s) =[127X[104X
    [4X[25X>[125X [27XSmallElementsOfNumericalSemigroup(s3);[127X[104X
    [4X[28Xtrue                [128X[104X
    [4X[25Xgap>[125X [27Xs=s3;[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  
  [1X5.2   [33X[0;0YIntersections,  quotients,  dilatations,  numerical  duplications  and[101X
  [1Xmultiples by integers[133X[101X
  
  [33X[0;0YWe  provide  functions to build numerical semigroups from others by means of
  intersections, quotients, multiples and related constructions.[133X
  
  [1X5.2-1 Intersection[101X
  
  [33X[1;0Y[29X[2XIntersection[102X( [3XS[103X, [3XT[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XIntersectionOfNumericalSemigroups[102X( [3XS[103X, [3XT[103X ) [32X function[133X
  
  [33X[0;0Y[3XS[103X  and  [3XT[103X  are  numerical  semigroups.  Computes the intersection of [3XS[103X and [3XT[103X
  (which is a numerical semigroup).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XS := NumericalSemigroup("modular", 5,53);[127X[104X
    [4X[28X<Modular numerical semigroup satisfying 5x mod 53 <= x >[128X[104X
    [4X[25Xgap>[125X [27XT := NumericalSemigroup(2,17);[127X[104X
    [4X[28X<Numerical semigroup with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XSmallElements(S);[127X[104X
    [4X[28X[ 0, 11, 12, 13, 22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 43 ][128X[104X
    [4X[25Xgap>[125X [27XSmallElements(T);[127X[104X
    [4X[28X[ 0, 2, 4, 6, 8, 10, 12, 14, 16 ][128X[104X
    [4X[25Xgap>[125X [27XIntersection(S,T);[127X[104X
    [4X[28X<Numerical semigroup>[128X[104X
    [4X[25Xgap>[125X [27XSmallElements(last);[127X[104X
    [4X[28X[ 0, 12, 22, 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 38, 39, 43 ][128X[104X
    [4X[25Xgap>[125X [27XIntersectionOfNumericalSemigroups(S,T) = Intersection(S,T);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X5.2-2 QuotientOfNumericalSemigroup[101X
  
  [33X[1;0Y[29X[2XQuotientOfNumericalSemigroup[102X( [3XS[103X, [3Xn[103X ) [32X function[133X
  [33X[1;0Y[29X[2X\/[102X( [3XS[103X, [3Xn[103X ) [32X operation[133X
  
  [33X[0;0Y[3XS[103X  is  a numerical semigroup and [3Xn[103X is an integer. Computes the quotient of [3XS[103X
  by  [3Xn[103X,  that  is,  the  set  [22X{  x∈  N  | nx ∈ S}[122X, which is again a numerical
  semigroup.  [10XS / n[110X may be used as a short for [10XQuotientOfNumericalSemigroup(S,
  n)[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,29);[127X[104X
    [4X[28X<Numerical semigroup with 2 generators>[128X[104X
    [4X[25Xgap>[125X [27XSmallElements(s);[127X[104X
    [4X[28X[ 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 29, 30, 32, 33, 35, 36, 38,[128X[104X
    [4X[28X39, 41, 42, 44, 45, 47, 48, 50, 51, 53, 54, 56 ][128X[104X
    [4X[25Xgap>[125X [27Xt:=QuotientOfNumericalSemigroup(s,7);[127X[104X
    [4X[28X<Numerical semigroup>[128X[104X
    [4X[25Xgap>[125X [27XSmallElements(t);[127X[104X
    [4X[28X[ 0, 3, 5, 6, 8 ][128X[104X
    [4X[25Xgap>[125X [27Xu := s / 7;[127X[104X
    [4X[28X<Numerical semigroup>[128X[104X
    [4X[25Xgap>[125X [27XSmallElements(u);[127X[104X
    [4X[28X[ 0, 3, 5, 6, 8 ][128X[104X
  [4X[32X[104X
  
  [1X5.2-3 MultipleOfNumericalSemigroup[101X
  
  [33X[1;0Y[29X[2XMultipleOfNumericalSemigroup[102X( [3XS[103X, [3Xa[103X, [3Xb[103X ) [32X function[133X
  
  [33X[0;0Y[3XS[103X is a numerical semigroup, and [3Xa[103X and [3Xb[103X are positive integers. Computes [22Xa S∪
  {b,b+1,->}[122X.  If  [3Xb[103X  is  smaller  than [22Xa c[122X, with [22Xc[122X the conductor of [22XS[122X, then a
  warning is displayed.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XN:=NumericalSemigroup(1);;[127X[104X
    [4X[25Xgap>[125X [27Xs:=MultipleOfNumericalSemigroup(N,4,20);;[127X[104X
    [4X[25Xgap>[125X [27XSmallElements(s);[127X[104X
    [4X[28X[ 0, 4, 8, 12, 16, 20 ][128X[104X
  [4X[32X[104X
  
  [1X5.2-4 NumericalDuplication[101X
  
  [33X[1;0Y[29X[2XNumericalDuplication[102X( [3XS[103X, [3XE[103X, [3Xb[103X ) [32X function[133X
  
  [33X[0;0Y[3XS[103X  is  a  numerical semigroup, and [3XE[103X and ideal of [3XS[103X, and [3Xb[103X is a positive odd
  integer,  so that [22X2S∪ (2E+b)[122X is a numerical semigroup (this extends slightly
  the  original  definition  where  [3Xb[103X  was imposed to be in [3XS[103X, [DS13]; now the
  condition imposed is [22XE+E+b⊆ S[122X). Computes [22X2S∪ (2E+b)[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);[127X[104X
    [4X[28X<Numerical semigroup with 3 generators>[128X[104X
    [4X[25Xgap>[125X [27Xe:=6+s;[127X[104X
    [4X[28X<Ideal of numerical semigroup>[128X[104X
    [4X[25Xgap>[125X [27Xndup:=NumericalDuplication(s,e,3);[127X[104X
    [4X[28X<Numerical semigroup with 4 generators>[128X[104X
    [4X[25Xgap>[125X [27XSmallElements(ndup);[127X[104X
    [4X[28X[ 0, 6, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24 ][128X[104X
  [4X[32X[104X
  
  [1X5.2-5 AsNumericalDuplication[101X
  
  [33X[1;0Y[29X[2XAsNumericalDuplication[102X( [3XT[103X ) [32X function[133X
  
  [33X[0;0Y[3XT[103X  is  a  numerical  semigroup. Detects whether or not [3XT[103X can be expressed as
  [10XNumericalDuplication[110X(S,E,b),  with  E  a proper ideal of S. Returns the list
  [S,E,b] if this is possible, and [10Xfail[110X otherwise.[133X
  
  [33X[0;0YNotice  that a numerical semigroup can be represented in different ways as a
  numerical duplication.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X
    [4X[25Xgap>[125X [27Xndup:=NumericalDuplication(s,6+s,11);;[127X[104X
    [4X[25Xgap>[125X [27Xasdup:=AsNumericalDuplication(ndup);[127X[104X
    [4X[28X[ <Numerical semigroup with 3 generators>, <Ideal of numerical semigroup>, 3 ][128X[104X
    [4X[25Xgap>[125X [27Xndup = CallFuncList(NumericalDuplication,asdup);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  [1X5.2-6 InductiveNumericalSemigroup[101X
  
  [33X[1;0Y[29X[2XInductiveNumericalSemigroup[102X( [3Xa[103X, [3Xb[103X ) [32X function[133X
  
  [33X[0;0Y[3Xa[103X  and  [3Xb[103X  are lists of positive integers, with [22Xk[122X the length of [3Xa[103X and [3Xb[103X, and
  such  that  [22Xb[i+1]ge a[i]b[i][122X ([22X0le ile k-1[122X). Computes inductively [22XS_0= N[122X and
  [22XS_i+1=a[i]S_i∪ {a[i]b[i],a[i]b[i]+1,->}[122X, and returns [22XS_k[122X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xs:=InductiveNumericalSemigroup([4,2],[5,23]);;[127X[104X
    [4X[25Xgap>[125X [27XSmallElements(s);[127X[104X
    [4X[28X[ 0, 8, 16, 24, 32, 40, 42, 44, 46 ][128X[104X
  [4X[32X[104X
  
  [1X5.2-7 DilatationOfNumericalSemigroup[101X
  
  [33X[1;0Y[29X[2XDilatationOfNumericalSemigroup[102X( [3XS[103X, [3Xa[103X ) [32X function[133X
  
  [33X[0;0Y[3XS[103X is a numerical semigroup, and [3Xa[103X is a positive integer. If [22XM[122X is the maximal
  ideal  of  [3XS[103X, then [3Xa[103X must be in [22XM-2M[122X. Computes the numerical semigroup [22X{0} ∪
  {a+s ∣ s∈ M}[122X, see [BS19].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,4,5);;[127X[104X
    [4X[25Xgap>[125X [27Xm:=MaximalIdeal(s);;[127X[104X
    [4X[25Xgap>[125X [27XSmallElements(m-2*m);[127X[104X
    [4X[28X[ -3 ][128X[104X
    [4X[25Xgap>[125X [27Xd:=DilatationOfNumericalSemigroup(s,3);[127X[104X
    [4X[28X<Numerical semigroup>[128X[104X
    [4X[25Xgap>[125X [27XSmallElements(d);[127X[104X
    [4X[28X[ 0, 6 ][128X[104X
  [4X[32X[104X
  
  
  [1X5.3  [33X[0;0YConstructing  the  set  of  all numerical semigroups containing a given[101X
  [1Xnumerical semigroup[133X[101X
  
  [33X[0;0YIn  order  to  construct  the set of numerical semigroups containing a fixed
  numerical  semigroup [22XS[122X, one first constructs its unitary extensions, that is
  to  say,  the  sets  [22XS∪{g}[122X  that  are numerical semigroups with [22Xg[122X a positive
  integer. This is achieved by constructing the special gaps of the semigroup,
  and  then adding each of them to the numerical semigroup. Then we repeat the
  process for each of these new numerical semigroups until we reach [22XN[122X.[133X
  
  [33X[0;0YThese procedures are described in [RGSGGJM03].[133X
  
  [1X5.3-1 OverSemigroups[101X
  
  [33X[1;0Y[29X[2XOverSemigroups[102X( [3Xs[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XOverSemigroupsNumericalSemigroup[102X( [3Xs[103X ) [32X function[133X
  
  [33X[0;0Y[3Xs[103X  is  a  numerical semigroup. The output is the set of numerical semigroups
  containing it.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xs := NumericalSemigroup(3,5,7);;[127X[104X
    [4X[25Xgap>[125X [27XOverSemigroups(s);[127X[104X
    [4X[28X[ <The numerical semigroup N>, <Numerical semigroup with 2 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 3 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 3 generators> ][128X[104X
    [4X[25Xgap>[125X [27XList(last,s->MinimalGenerators(s));[127X[104X
    [4X[28X[ [ 1 ], [ 2, 3 ], [ 3 .. 5 ], [ 3, 5, 7 ] ][128X[104X
    [4X[25Xgap>[125X [27XOverSemigroupsNumericalSemigroup(s) = OverSemigroups(s);[127X[104X
    [4X[28Xtrue[128X[104X
  [4X[32X[104X
  
  
  [1X5.4 [33X[0;0YConstructing the set of numerical semigroup with given Frobenius number[133X[101X
  
  [33X[0;0YFinding the set of all numerical semigroups with a given Frobenius number is
  not  accomplished  via  over  semigroups.  In  order to achieve this, we use
  fundamental gaps. If the multiplicity is fixed, then the construction relies
  on  the  calculation of irreducible numerical semigroups with that Frobenius
  number and multiplicity.[133X
  
  [1X5.4-1 NumericalSemigroupsWithFrobeniusNumberFG[101X
  
  [33X[1;0Y[29X[2XNumericalSemigroupsWithFrobeniusNumberFG[102X( [3Xf[103X ) [32X function[133X
  
  [33X[0;0Y[3Xf[103X  is  an  integer.  The  output  is  the  set  of numerical semigroups with
  Frobenius number [3Xf[103X. The algorithm implemented is given in [RGSGGJM04].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XLength(NumericalSemigroupsWithFrobeniusNumberFG(15));[127X[104X
    [4X[28X200[128X[104X
  [4X[32X[104X
  
  [1X5.4-2 NumericalSemigroupsWithFrobeniusNumberAndMultiplicity[101X
  
  [33X[1;0Y[29X[2XNumericalSemigroupsWithFrobeniusNumberAndMultiplicity[102X( [3Xf[103X, [3Xm[103X ) [32X function[133X
  
  [33X[0;0Y[3Xf[103X  and  [3Xm[103X  are  integers. The output is the set of numerical semigroups with
  Frobenius number [3Xf[103X and multiplicity [3Xm[103X. The algorithm implemented is given in
  [ttt19].[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XLength(NumericalSemigroupsWithFrobeniusNumberAndMultiplicity(15,6));[127X[104X
    [4X[28X28[128X[104X
  [4X[32X[104X
  
  [1X5.4-3 NumericalSemigroupsWithFrobeniusNumber[101X
  
  [33X[1;0Y[29X[2XNumericalSemigroupsWithFrobeniusNumber[102X( [3Xf[103X, [3Xm[103X ) [32X function[133X
  
  [33X[0;0Y[3Xf[103X     is     an     integer.     As     happens     with     the    function
  [2XNumericalSemigroupsWithFrobeniusNumberFG[102X  ([14X5.4-1[114X),  the output is the set of
  numerical   semigroups   with   Frobenius   number   [3Xf[103X.   It  makes  use  of
  [2XNumericalSemigroupsWithFrobeniusNumberAndMultiplicity[102X ([14X5.4-2[114X) to compute the
  semigroups   with   the   Frobenius   number  given  for  all  the  possible
  multiplicities.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XLength(NumericalSemigroupsWithFrobeniusNumber(15));[127X[104X
    [4X[28X200[128X[104X
  [4X[32X[104X
  
  
  [1X5.5 [33X[0;0YConstructing the set of numerical semigroups with genus g[133X[101X
  
  [33X[0;0YGiven  a  numerical  semigroup  of  genus  g (that is, with exactly g gaps),
  removing  minimal generators, one obtains numerical semigroups of genus g+1.
  In  order  to  avoid  repetitions, we only remove minimal generators greater
  than  the  Frobenius number of the numerical semigroup (this is accomplished
  with the local function sons).[133X
  
  [33X[0;0YThese procedures are described in [RGSGGB03] and [BA08].[133X
  
  [1X5.5-1 NumericalSemigroupsWithGenus[101X
  
  [33X[1;0Y[29X[2XNumericalSemigroupsWithGenus[102X( [3Xg[103X ) [32X function[133X
  
  [33X[0;0Y[3Xg[103X  is  a  nonnegative integer. The output is the set of numerical semigroups
  with  genus [3Xg[103X. If the user just wants to use some numerical semigroup with a
  given genus pseudo-randomly choosen, he is probably looking for the function
  [2XRandomNumericalSemigroupWithGenus[102X ([14XB.1-7[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XNumericalSemigroupsWithGenus(5);[127X[104X
    [4X[28X[ <Numerical semigroup with 6 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 5 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 5 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 5 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 5 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 4 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 4 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 4 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 4 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 3 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 3 generators>, [128X[104X
    [4X[28X  <Numerical semigroup with 2 generators> ][128X[104X
    [4X[25Xgap>[125X [27XList(last,MinimalGenerators);[127X[104X
    [4X[28X[ [ 6 .. 11 ], [ 5, 7, 8, 9, 11 ], [ 5, 6, 8, 9 ], [ 5, 6, 7, 9 ], [128X[104X
    [4X[28X  [ 5, 6, 7, 8 ], [ 4, 6, 7 ], [ 4, 7, 9, 10 ], [ 4, 6, 9, 11 ], [128X[104X
    [4X[28X  [ 4, 5, 11 ], [ 3, 8, 10 ], [ 3, 7, 11 ], [ 2, 11 ] ][128X[104X
  [4X[32X[104X
  
  
  [1X5.6  [33X[0;0YConstructing  the  set  of  numerical  semigroups  with  a given set of[101X
  [1Xpseudo-Frobenius numbers[133X[101X
  
  [33X[0;0YRefer to [2XPseudoFrobeniusOfNumericalSemigroup[102X ([14X3.1-25[114X).[133X
  
  [33X[0;0YThese procedures are described in [DGSRP16], and are used to find the set of
  numerical semigroups with a prescribed set of pseudo-Frobenius numbers.[133X
  
  [1X5.6-1 ForcedIntegersForPseudoFrobenius[101X
  
  [33X[1;0Y[29X[2XForcedIntegersForPseudoFrobenius[102X( [3XPF[103X ) [32X function[133X
  
  [33X[0;0Y[3XPF[103X  is a list of positive integers (given as a list or individual elements).
  The output is:[133X
  
  [30X    [33X[0;6Yin case there exists a numerical semigroup [22XS[122X such that [22XPF(S)=PF[122X:[133X
  
        [30X    [33X[0;12Ya list [22X[forced_gaps,forced_elts][122X such that:[133X
  
              [30X    [33X[0;18Y[22Xforced_gaps[122X  is  contained  in  [22XN  -  S[122X  for any numerical
                    semigroup S such that [22XPF(S)={g_1,...,g_n}[122X[133X
  
              [30X    [33X[0;18Yforced_elts  is contained in [22XS[122X for any numerical semigroup
                    [22XS[122X such that [22XPF(S)={g_1,...,g_n}[122X[133X
  
  [30X    [33X[0;6Y"fail" in case it is found some condition that fails.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xpf := [ 58, 64, 75 ];[127X[104X
    [4X[28X[ 58, 64, 75 ][128X[104X
    [4X[25Xgap>[125X [27XForcedIntegersForPseudoFrobenius(pf);                              [127X[104X
    [4X[28X[ [ 1, 2, 3, 4, 5, 6, 7, 8, 11, 15, 16, 17, 25, 29, 32, 58, 64, 75 ], [128X[104X
    [4X[28X  [ 0, 59, 60, 67, 68, 69, 70, 71, 72, 73, 74, 76 ] ][128X[104X
  [4X[32X[104X
  
  [1X5.6-2 SimpleForcedIntegersForPseudoFrobenius[101X
  
  [33X[1;0Y[29X[2XSimpleForcedIntegersForPseudoFrobenius[102X( [3Xfg[103X, [3Xfe[103X, [3XPF[103X ) [32X function[133X
  
  [33X[0;0YIs just a quicker version of [2XForcedIntegersForPseudoFrobenius[102X ([14X5.6-1[114X)[133X
  
  [33X[0;0Y[3Xfg[103X  is a list of integers that we require to be gaps of the semigroup; [3Xfe[103X is
  a  list of integers that we require to be elements of the semigroup; [3XPF[103X is a
  list of positive integers. The output is:[133X
  
  [30X    [33X[0;6Yin case there exists a numerical semigroup [22XS[122X such that [22XPF(S)=PF[122X:[133X
  
        [30X    [33X[0;12Ya list [22X[forced_gaps,forced_elts][122X such that:[133X
  
              [30X    [33X[0;18Y[22Xforced_gaps[122X  is  contained  in  [22XN  -  S[122X  for any numerical
                    semigroup S such that [22XPF(S)={g_1,...,g_n}[122X[133X
  
              [30X    [33X[0;18Yforced_elts  is contained in [22XS[122X for any numerical semigroup
                    [22XS[122X such that [22XPF(S)={g_1,...,g_n}[122X[133X
  
  [30X    [33X[0;6Y"fail" in case it is found some condition that fails.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xpf := [ 15, 20, 27, 35 ];;                                               [127X[104X
    [4X[25Xgap>[125X [27Xfint := ForcedIntegersForPseudoFrobenius(pf); [127X[104X
    [4X[28X[ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 16, 20, 27, 35 ], [128X[104X
    [4X[28X  [ 0, 19, 23, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36 ] ][128X[104X
    [4X[25Xgap>[125X [27Xfree := Difference([1..Maximum(pf)],Union(fint));[127X[104X
    [4X[28X[ 11, 13, 14, 17, 18, 21, 22, 24 ][128X[104X
    [4X[25Xgap>[125X [27XSimpleForcedIntegersForPseudoFrobenius(fint[1],Union(fint[2],[free[1]]),pf);[127X[104X
    [4X[28X[ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16, 20, 24, 27, 35 ], [128X[104X
    [4X[28X  [ 0, 11, 19, 22, 23, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36 ] ][128X[104X
  [4X[32X[104X
  
  [1X5.6-3 NumericalSemigroupsWithPseudoFrobeniusNumbers[101X
  
  [33X[1;0Y[29X[2XNumericalSemigroupsWithPseudoFrobeniusNumbers[102X( [3XPF[103X ) [32X function[133X
  
  [33X[0;0Y[3XPF[103X  is a list of positive integers (given as a list or individual elements).
  The  output  is:  a  list of numerical semigroups S such that PF(S)=PF. When
  Length(PF)=1,       it       makes       use       of      the      function
  [2XNumericalSemigroupsWithFrobeniusNumber[102X ([14X5.4-3[114X)[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xpf := [ 58, 64, 75 ];[127X[104X
    [4X[28X[ 58, 64, 75 ][128X[104X
    [4X[25Xgap>[125X [27XLength(NumericalSemigroupsWithPseudoFrobeniusNumbers(pf));[127X[104X
    [4X[28X561[128X[104X
    [4X[25Xgap>[125X [27Xpf := [11,19,22];;[127X[104X
    [4X[25Xgap>[125X [27XNumericalSemigroupsWithPseudoFrobeniusNumbers(pf);[127X[104X
    [4X[28X[ <Numerical semigroup>, <Numerical semigroup>, <Numerical semigroup>, [128X[104X
    [4X[28X  <Numerical semigroup>, <Numerical semigroup> ][128X[104X
    [4X[25Xgap>[125X [27XList(last,MinimalGenerators);   [127X[104X
    [4X[28X[ [ 7, 9, 17, 20 ], [ 7, 10, 13, 16, 18 ], [ 9, 12, 14, 15, 16, 17, 20 ], [128X[104X
    [4X[28X  [ 10, 13, 14, 15, 16, 17, 18, 21 ], [128X[104X
    [4X[28X  [ 12, 13, 14, 15, 16, 17, 18, 20, 21, 23 ] ][128X[104X
    [4X[25Xgap>[125X [27XSet(last2,PseudoFrobeniusOfNumericalSemigroup);    [127X[104X
    [4X[28X[ [ 11, 19, 22 ] ][128X[104X
    [4X[28Xg[128X[104X
  [4X[32X[104X
  
  [1X5.6-4 ANumericalSemigroupWithPseudoFrobeniusNumbers[101X
  
  [33X[1;0Y[29X[2XANumericalSemigroupWithPseudoFrobeniusNumbers[102X( [3XPF[103X ) [32X function[133X
  
  [33X[0;0Y[3XPF[103X  is a list of positive integers (given as a list or individual elements).
  Alternatively,  a  record  with fields "pseudo_frobenius" and "max_attempts"
  may  be  given.  The  output is: A numerical semigroup S such that [22XPF(S)=PF[122X.
  Returns  fail  if  it  concludes  that it does not exist and suggests to use
  NumericalSemigroupsWithPseudoFrobeniusNumbers   if   it   is   not  able  to
  conclude...[133X
  
  [33X[0;0YWhen  [22XLength(PF)=1[122X  or [22XLength(PF)=2[122X and [22X2*PF[1] = PF[2][122X, it makes use of the
  function [2XAnIrreducibleNumericalSemigroupWithFrobeniusNumber[102X ([14X6.1-4[114X).[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27Xpf := [ 83, 169, 173, 214, 259 ];;                     [127X[104X
    [4X[25Xgap>[125X [27XANumericalSemigroupWithPseudoFrobeniusNumbers(pf);[127X[104X
    [4X[28X<Numerical semigroup>[128X[104X
    [4X[25Xgap>[125X [27Xgen := MinimalGeneratingSystem(last);[127X[104X
    [4X[28X[ 38, 57, 64, 72, 79, 98, 99, 106, 118, 120, 124, 132, 134, 146, 147, 154, [128X[104X
    [4X[28X  165, 168, 179 ][128X[104X
    [4X[25Xgap>[125X [27Xns := NumericalSemigroup(gen);       [127X[104X
    [4X[28X<Numerical semigroup with 19 generators>[128X[104X
    [4X[25Xgap>[125X [27XPseudoFrobeniusOfNumericalSemigroup(ns);[127X[104X
    [4X[28X[ 83, 169, 173, 214, 259 ][128X[104X
  [4X[32X[104X
  
