Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 4183461[1X12 [33X[0;0YGood semigroups[133X[101X23[33X[0;0YWe will only cover here good semigroups of [22XN^2[122X.[133X45[33X[0;0YA good semigroup [22XS[122X is a submonoid of [22XN^2[122X, with the following properties.[133X67[33X[0;0Y(G1) It is closed under infimums (minimum componentwise).[133X89[33X[0;0Y(G2) if [22Xa, b ∈ M[122X and [22Xa_i = b_i[122X for some [22Xi ∈ {1, 2}[122X, then there exists [22Xc ∈ M[122X10such that [22Xc_i > a_i = b_i[122X and [22Xc_j = min{a_j,b_j}[122X, with [22Xj∈{1,2}∖ {i}[122X.[133X1112[33X[0;0Y(G3) there exists [22XC∈N^n[122X such that [22XC+N^n⊆ S[122X.[133X1314[33X[0;0YValue semigroups of algebroid branches are good semigroups, but there are15good semigroups that are not of this form. Since good semigroups are closed16under infimums, if [22XC_1[122X and [22XC_2[122X fulfill [22XC_i+N^n⊆ S[122X, then [22XC_1∧ C_2+N^n⊆ S[122X. So17there is a minimum [22XC[122X fulfilling [22XC+N^n⊆ S[122X, which is called the conductor of18[22XS[122X.[133X1920[33X[0;0YThe contents of this chapter are described in [DGSM16].[133X212223[1X12.1 [33X[0;0YDefining good semigroups[133X[101X2425[1X12.1-1 IsGoodSemigroup[101X2627[29X[2XIsGoodSemigroup[102X( [3XS[103X ) [32X function2829[33X[0;0YDetects if [3XS[103X is an object of type good semigroup.[133X3031[1X12.1-2 NumericalSemigroupDuplication[101X3233[29X[2XNumericalSemigroupDuplication[102X( [3XS[103X, [3XE[103X ) [32X function3435[33X[0;0Y[3XS[103X is a numerical semigroup and [3XE[103X is an ideal of [3XS[103X with [22XE⊆ S[122X. The output is36[22XS⋈ E= D∪ (E× E)∪{ a∧ b∣ a∈ D, b∈ E× E},[122X where [22XD={(s,s)∣ s∈ S}[122X.[133X3738[4X[32X Example [32X[104X39[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X40[4X[25Xgap>[125X [27Xe:=6+s;;[127X[104X41[4X[25Xgap>[125X [27Xdup:=NumericalSemigroupDuplication(s,e);[127X[104X42[4X[28X<Good semigroup>[128X[104X43[4X[25Xgap>[125X [27Xl:=Cartesian([1..11],[1..11]);;[127X[104X44[4X[25Xgap>[125X [27XIntersection(dup,l);[127X[104X45[4X[28X[ [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ], [ 6, 10 ],[128X[104X46[4X[28X [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ], [ 9, 9 ],[128X[104X47[4X[28X [ 9, 10 ], [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ], [ 11, 6 ],[128X[104X48[4X[28X [ 11, 9 ], [ 11, 11 ] ][128X[104X49[4X[25Xgap>[125X [27X[384938749837,349823749827] in dup;[127X[104X50[4X[28Xtrue[128X[104X51[4X[32X[104X5253[1X12.1-3 AmalgamationOfNumericalSemigroups[101X5455[29X[2XAmalgamationOfNumericalSemigroups[102X( [3XS[103X, [3XE[103X, [3Xb[103X ) [32X function5657[33X[0;0Y[3XS[103X is a numerical semigroup, [3XE[103X is an ideal of a numerical semigroup [22XT[122X with [22XE⊆58T[122X, and [3Xb[103X is an integer such that multiplication by [3Xb[103X is a morphism from [3XS[103X to59[22XT[122X, say [22Xg[122X. The output is [22XS⋈^g E= D∪(g^-1(E)× E)∪ {a∧ b∣ a∈ D, b∈ g^-1(E)× E},[122X60where [22XD={(s,b s)∣ s∈ S}[122X.[133X6162[4X[32X Example [32X[104X63[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(2,3);;[127X[104X64[4X[25Xgap>[125X [27Xt:=NumericalSemigroup(3,4);;[127X[104X65[4X[25Xgap>[125X [27Xe:=3+t;;[127X[104X66[4X[25Xgap>[125X [27Xdup:=AmalgamationOfNumericalSemigroups(s,e,2);;[127X[104X67[4X[25Xgap>[125X [27X[2,3] in dup;[127X[104X68[4X[28Xtrue[128X[104X69[4X[32X[104X7071[1X12.1-4 CartesianProductOfNumericalSemigroups[101X7273[29X[2XCartesianProductOfNumericalSemigroups[102X( [3XS[103X, [3XT[103X ) [32X function7475[33X[0;0Y[3XS[103X and [3XT[103X are numerical semigroups. The output is [22XS× T[122X, which is a good76semigroup.[133X7778[4X[32X Example [32X[104X79[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(2,3);;[127X[104X80[4X[25Xgap>[125X [27Xt:=NumericalSemigroup(3,4);;[127X[104X81[4X[25Xgap>[125X [27XIsGoodSemigroup(CartesianProductOfNumericalSemigroups(s,t));[127X[104X82[4X[28Xtrue[128X[104X83[4X[32X[104X8485[1X12.1-5 GoodSemigroup[101X8687[29X[2XGoodSemigroup[102X( [3XX[103X, [3XC[103X ) [32X function8889[33X[0;0Y[3XX[103X is a list of points with nonnegative integer coordinates and [22XC[122X is a pair90of nonnegative integer (a list with two elements). If [22XM[122X is the affine and91infimum closure of [3XX[103X, decides if it is a good semigroup, and if so, outputs92it.[133X9394[4X[32X Example [32X[104X95[4X[25Xgap>[125X [27XG:=[[4,3],[7,13],[11,17],[14,27],[15,27],[16,20],[25,12],[25,16]];[127X[104X96[4X[28X[ [ 4, 3 ], [ 7, 13 ], [ 11, 17 ], [ 14, 27 ], [ 15, 27 ], [ 16, 20 ],[128X[104X97[4X[28X [ 25, 12 ], [ 25, 16 ] ][128X[104X98[4X[25Xgap>[125X [27XC:=[25,27];[127X[104X99[4X[28X[ 25, 27 ][128X[104X100[4X[25Xgap>[125X [27XGoodSemigroup(G,C);[127X[104X101[4X[28X<Good semigroup>[128X[104X102[4X[32X[104X103104105[1X12.2 [33X[0;0YNotable elements[133X[101X106107[1X12.2-1 BelongsToGoodSemigroup[101X108109[29X[2XBelongsToGoodSemigroup[102X( [3Xv[103X, [3XS[103X ) [32X operation110[29X[2X\in[102X( [3Xv[103X, [3XS[103X ) [32X operation111112[33X[0;0Y[3XS[103X is a good semigroup and [3Xv[103X is a pair of integers. The output is [10Xtrue[110X if [3Xv[103X113is in [3XS[103X, and [10Xfalse[110X otherwise. Other ways to use this operation are [10X\in(v,S)[110X114and [10Xv in S[110X.[133X115116[4X[32X Example [32X[104X117[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(2,3);;[127X[104X118[4X[25Xgap>[125X [27Xe:=6+s;;[127X[104X119[4X[25Xgap>[125X [27Xdup:=NumericalSemigroupDuplication(s,e);;[127X[104X120[4X[25Xgap>[125X [27XBelongsToGoodSemigroup([2,2],dup);[127X[104X121[4X[28Xtrue[128X[104X122[4X[25Xgap>[125X [27X[2,2] in dup;[127X[104X123[4X[28Xtrue[128X[104X124[4X[25Xgap>[125X [27X[3,2] in dup;[127X[104X125[4X[28Xfalse[128X[104X126[4X[32X[104X127128[1X12.2-2 Conductor[101X129130[29X[2XConductor[102X( [3XS[103X ) [32X function131[29X[2XConductorOfGoodSemigroup[102X( [3XS[103X ) [32X function132133[33X[0;0Y[3XS[103X is a good semigroup. The output is its conductor.[133X134135[4X[32X Example [32X[104X136[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X137[4X[25Xgap>[125X [27Xe:=6+s;;[127X[104X138[4X[25Xgap>[125X [27Xdup:=NumericalSemigroupDuplication(s,e);[127X[104X139[4X[28X<Good semigroup>[128X[104X140[4X[25Xgap>[125X [27XConductor(dup);[127X[104X141[4X[28X[ 11, 11 ][128X[104X142[4X[25Xgap>[125X [27XConductorOfGoodSemigroup(dup);[127X[104X143[4X[28X[ 11, 11 ][128X[104X144[4X[32X[104X145146[1X12.2-3 SmallElements[101X147148[29X[2XSmallElements[102X( [3XS[103X ) [32X function149[29X[2XSmallElementsOfGoodSemigroup[102X( [3XS[103X ) [32X function150151[33X[0;0Y[3XS[103X is a good semigroup. The output is its set of small elements, that is, the152elements smaller than its conductor with respect to the usual partial153ordering.[133X154155[4X[32X Example [32X[104X156[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X157[4X[25Xgap>[125X [27Xe:=6+s;;[127X[104X158[4X[25Xgap>[125X [27Xdup:=NumericalSemigroupDuplication(s,e);[127X[104X159[4X[28X<Good semigroup>[128X[104X160[4X[25Xgap>[125X [27XSmallElementsOfGoodSemigroup(dup);[127X[104X161[4X[28X[ [ 0, 0 ], [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ],[128X[104X162[4X[28X [ 6, 10 ], [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ],[128X[104X163[4X[28X [ 9, 9 ], [ 9, 10 ], [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ],[128X[104X164[4X[28X [ 11, 6 ], [ 11, 9 ], [ 11, 11 ] ][128X[104X165[4X[32X[104X166167[1X12.2-4 RepresentsSmallElementsOfGoodSemigroup[101X168169[29X[2XRepresentsSmallElementsOfGoodSemigroup[102X( [3XX[103X ) [32X function170171[33X[0;0Y[3XX[103X is a list of points in the nonnegative orthant of the plane with integer172coordinates. Determines if it represents the set of small elements of a good173semigroup.[133X174175[4X[32X Example [32X[104X176[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X177[4X[25Xgap>[125X [27Xe:=6+s;;[127X[104X178[4X[25Xgap>[125X [27Xdup:=NumericalSemigroupDuplication(s,e);[127X[104X179[4X[28X<Good semigroup>[128X[104X180[4X[25Xgap>[125X [27XSmallElementsOfGoodSemigroup(dup);[127X[104X181[4X[28X[ [ 0, 0 ], [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ], [ 6, 10 ],[128X[104X182[4X[28X [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ], [ 9, 9 ], [ 9, 10 ],[128X[104X183[4X[28X [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ], [ 11, 6 ], [ 11, 9 ], [ 11, 11 ] ][128X[104X184[4X[25Xgap>[125X [27XRepresentsSmallElementsOfGoodSemigroup(last);[127X[104X185[4X[28Xtrue[128X[104X186[4X[32X[104X187188[1X12.2-5 GoodSemigroupBySmallElements[101X189190[29X[2XGoodSemigroupBySmallElements[102X( [3XX[103X ) [32X function191192[33X[0;0Y[3XX[103X is a list of points in the nonnegative orthant of the plane with integer193coordinates. Determines if it represents the set of small elements of a good194semigroup, and then outputs the good semigroup having [3XX[103X as set of small195elements.[133X196197[4X[32X Example [32X[104X198[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X199[4X[25Xgap>[125X [27Xe:=6+s;;[127X[104X200[4X[25Xgap>[125X [27Xdup:=NumericalSemigroupDuplication(s,e);[127X[104X201[4X[28X<Good semigroup>[128X[104X202[4X[25Xgap>[125X [27XSmallElementsOfGoodSemigroup(dup);[127X[104X203[4X[28X[ [ 0, 0 ], [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ], [ 6, 10 ],[128X[104X204[4X[28X [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ], [ 9, 9 ], [ 9, 10 ],[128X[104X205[4X[28X [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ], [ 11, 6 ], [ 11, 9 ], [ 11, 11 ] ][128X[104X206[4X[25Xgap>[125X [27XG:=GoodSemigroupBySmallElements(last);[127X[104X207[4X[28X<Good semigroup>[128X[104X208[4X[25Xgap>[125X [27Xdup=G;[127X[104X209[4X[28Xtrue[128X[104X210[4X[32X[104X211212[1X12.2-6 MaximalElementsOfGoodSemigroup[101X213214[29X[2XMaximalElementsOfGoodSemigroup[102X( [3XS[103X ) [32X attribute215216[33X[0;0Y[3XS[103X is a good semigroup. The output is the set of elements [22X(x,y)[122X of [3XS[103X with the217following property: there is no other element [22X(x',y')[122X in [3XS[103X with [22X(x,y)le218(x',y')[122X sharing a coordinate with [22X(x,y)[122X.[133X219220[4X[32X Example [32X[104X221[4X[25Xgap>[125X [27XG:=[[4,3],[7,13],[11,17]];;[127X[104X222[4X[25Xgap>[125X [27Xg:=GoodSemigroup(G,[11,17]);;[127X[104X223[4X[25Xgap>[125X [27Xmx:=MaximalElementsOfGoodSemigroup(g);[127X[104X224[4X[28X[ [ 0, 0 ], [ 4, 3 ], [ 7, 13 ], [ 8, 6 ] ][128X[104X225[4X[32X[104X226227[1X12.2-7 IrreducibleMaximalElementsOfGoodSemigroup[101X228229[29X[2XIrreducibleMaximalElementsOfGoodSemigroup[102X( [3XS[103X ) [32X attribute230231[33X[0;0Y[3XS[103X is a good semigroup. The output is the set of elements nonzero maximal232elements that cannot be expressed as a sum of two nonzero maximal elements233of the good semigroup.[133X234235[4X[32X Example [32X[104X236[4X[25Xgap>[125X [27XG:=[[4,3],[7,13],[11,17]];;[127X[104X237[4X[25Xgap>[125X [27Xg:=GoodSemigroup(G,[11,17]);;[127X[104X238[4X[25Xgap>[125X [27XIrreducibleMaximalElementsOfGoodSemigroup(g);[127X[104X239[4X[28X[ [ 4, 3 ], [ 7, 13 ] ][128X[104X240[4X[32X[104X241242[1X12.2-8 GoodSemigroupByMaximalElements[101X243244[29X[2XGoodSemigroupByMaximalElements[102X( [3XS[103X, [3XT[103X, [3XM[103X, [3XC[103X ) [32X function245246[33X[0;0Y[3XS[103X and [3XT[103X are numerical semigroups, [3XM[103X is a list of pairs in [22XS× T[122X. [3XC[103X is the247conductor, and thus a pair of nonnegative integers. The output is the set of248elements of [22XS× T[122X that are not above an element in [3XM[103X, that is, if they share249a coordinate with an element in [3XM[103X, then they must be smaller or equal to250that element with respect to the usual partial ordering. The output is a251good semigroup, if [3XM[103X is an correct set of maximal elements.[133X252253[4X[32X Example [32X[104X254[4X[25Xgap>[125X [27XG:=[[4,3],[7,13],[11,17]];;[127X[104X255[4X[25Xgap>[125X [27Xg:=GoodSemigroup(G,[11,17]);;[127X[104X256[4X[25Xgap>[125X [27Xsm:=SmallElements(g);;[127X[104X257[4X[25Xgap>[125X [27Xmx:=MaximalElementsOfGoodSemigroup(g);;[127X[104X258[4X[25Xgap>[125X [27Xs:=NumericalSemigroupBySmallElements(Set(sm,x->x[1]));;[127X[104X259[4X[25Xgap>[125X [27Xt:=NumericalSemigroupBySmallElements(Set(sm,x->x[2]));;[127X[104X260[4X[25Xgap>[125X [27XConductor(g);[127X[104X261[4X[28X[ 11, 15 ][128X[104X262[4X[25Xgap>[125X [27Xgg:=GoodSemigroupByMaximalElements(s,t,mx,[11,15]);[127X[104X263[4X[28X<Good semigroup>[128X[104X264[4X[25Xgap>[125X [27Xgg=g;[127X[104X265[4X[28Xtrue[128X[104X266[4X[32X[104X267268[1X12.2-9 MinimalGoodGeneratingSystemOfGoodSemigroup[101X269270[29X[2XMinimalGoodGeneratingSystemOfGoodSemigroup[102X( [3XS[103X ) [32X function271272[33X[0;0Y[3XS[103X is a good semigroup. The output is its minimal good generating system273(which is unique in the local case).[133X274275[4X[32X Example [32X[104X276[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X277[4X[25Xgap>[125X [27Xe:=6+s;;[127X[104X278[4X[25Xgap>[125X [27Xdup:=NumericalSemigroupDuplication(s,e);[127X[104X279[4X[28X<Good semigroup>[128X[104X280[4X[25Xgap>[125X [27XMinimalGoodGeneratingSystemOfGoodSemigroup(dup);[127X[104X281[4X[28X[ [ 3, 3 ], [ 5, 5 ], [ 6, 11 ], [ 7, 7 ], [ 11, 6 ] ][128X[104X282[4X[32X[104X283284[1X12.2-10 MinimalGenerators[101X285286[29X[2XMinimalGenerators[102X( [3XS[103X ) [32X attribute287288[33X[0;0YThis is just a synonym of [10X MinimalGoodGeneratingSystemOfGoodSemigroup[110X ([10XS[110X).[133X289290[4X[32X Example [32X[104X291[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X292[4X[25Xgap>[125X [27Xe:=6+s;;[127X[104X293[4X[25Xgap>[125X [27Xdup:=NumericalSemigroupDuplication(s,e);[127X[104X294[4X[28X<Good semigroup>[128X[104X295[4X[25Xgap>[125X [27XMinimalGenerators(dup);[127X[104X296[4X[28X[ [ 3, 3 ], [ 5, 5 ], [ 6, 11 ], [ 7, 7 ], [ 11, 6 ] ][128X[104X297[4X[32X[104X298299300[1X12.3 [33X[0;0YSymmetric semigroups[133X[101X301302[1X12.3-1 IsSymmetricGoodSemigroup[101X303304[29X[2XIsSymmetricGoodSemigroup[102X( [3XS[103X ) [32X attribute305[29X[2XIsSymmetric[102X( [3XS[103X ) [32X attribute306307[33X[0;0Y[3XS[103X is a good semigroup. Determines if [3XS[103X is a symmetric good semigroup.[133X308309[4X[32X Example [32X[104X310[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X311[4X[25Xgap>[125X [27Xe:=CanonicalIdealOfNumericalSemigroup(s);;[127X[104X312[4X[25Xgap>[125X [27Xe:=15+e;;[127X[104X313[4X[25Xgap>[125X [27Xdup:=NumericalSemigroupDuplication(s,e);;[127X[104X314[4X[25Xgap>[125X [27XIsSymmetricGoodSemigroup(dup);[127X[104X315[4X[28Xtrue[128X[104X316[4X[32X[104X317318[1X12.3-2 ArfGoodSemigroupClosure[101X319320[29X[2XArfGoodSemigroupClosure[102X( [3XS[103X ) [32X function321[29X[2XArfClosure[102X( [3XS[103X ) [32X operation322323[33X[0;0Y[3XS[103X is a good semigroup. Determines the Arf good semigroup closure of [3XS[103X.[133X324325[4X[32X Example [32X[104X326[4X[25Xgap>[125X [27XG:=[[3,3],[4,4],[5,4],[4,6]];[127X[104X327[4X[28X[ [ 3, 3 ], [ 4, 4 ], [ 5, 4 ], [ 4, 6 ] ][128X[104X328[4X[25Xgap>[125X [27XC:=[6,6];[127X[104X329[4X[28X[ 6, 6 ][128X[104X330[4X[25Xgap>[125X [27XS:=GoodSemigroup(G,C);[127X[104X331[4X[28X<Good semigroup>[128X[104X332[4X[25Xgap>[125X [27XSmallElements(S);[127X[104X333[4X[28X[ [ 0, 0 ], [ 3, 3 ], [ 4, 4 ], [ 4, 6 ], [ 5, 4 ], [ 6, 6 ] ][128X[104X334[4X[25Xgap>[125X [27XA:=ArfGoodSemigroupClosure(S);[127X[104X335[4X[28X<Good semigroup>[128X[104X336[4X[25Xgap>[125X [27XSmallElements(A);[127X[104X337[4X[28X[ [ 0, 0 ], [ 3, 3 ], [ 4, 4 ] ][128X[104X338[4X[32X[104X339340341[1X12.4 [33X[0;0YGood ideals[133X[101X342343[33X[0;0YA relative ideal [22XI[122X of a relative good semigroup [22XM[122X is a relative good ideal344if [22XI[122X fulfills conditions (G1) and (G2) of the definition of good semigroup.[133X345346[1X12.4-1 GoodIdeal[101X347348[29X[2XGoodIdeal[102X( [3XX[103X, [3XS[103X ) [32X function349350[33X[0;0Y[3XX[103X is a list of points with nonnegative integer coordinates and [22XS[122X is good351semigroup. Decides if the closure of [22XX+S[122X under infimums is a relative good352ideal of [22XS[122X, and if so, outputs it.[133X353354[4X[32X Example [32X[104X355[4X[25Xgap>[125X [27XG:=[[4,3],[7,13],[11,17],[14,27],[15,27],[16,20],[25,12],[25,16]];[127X[104X356[4X[28X[ [ 4, 3 ], [ 7, 13 ], [ 11, 17 ], [ 14, 27 ], [ 15, 27 ], [ 16, 20 ],[128X[104X357[4X[28X[ 25, 12 ], [ 25, 16 ] ][128X[104X358[4X[25Xgap>[125X [27XC:=[25,27];[127X[104X359[4X[28X[ 25, 27 ][128X[104X360[4X[25Xgap>[125X [27Xg := GoodSemigroup(G,C);[127X[104X361[4X[28X<Good semigroup>[128X[104X362[4X[25Xgap>[125X [27Xi:=GoodIdeal([[2,3]],g);[127X[104X363[4X[28X<Good ideal of good semigroup>[128X[104X364[4X[32X[104X365366[1X12.4-2 GoodGeneratingSystemOfGoodIdeal[101X367368[29X[2XGoodGeneratingSystemOfGoodIdeal[102X( [3XI[103X ) [32X function369370[33X[0;0Y[3XI[103X is a good ideal of a good semigroup. The output is a good generating371system of [3XI[103X.[133X372373[4X[32X Example [32X[104X374[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X375[4X[25Xgap>[125X [27Xe:=10+s;;[127X[104X376[4X[25Xgap>[125X [27Xd:=NumericalSemigroupDuplication(s,e);;[127X[104X377[4X[25Xgap>[125X [27Xe:=GoodIdeal([[2,3],[3,2],[2,2]],d);;[127X[104X378[4X[25Xgap>[125X [27XGoodGeneratingSystemOfGoodIdeal(e);[127X[104X379[4X[28X[ [ 2, 2 ], [ 2, 3 ], [ 3, 2 ] ][128X[104X380[4X[32X[104X381382[1X12.4-3 AmbientGoodSemigroupOfGoodIdeal[101X383384[29X[2XAmbientGoodSemigroupOfGoodIdeal[102X( [3XI[103X ) [32X function385386[33X[0;0YIf [3XI[103X is a good ideal of a good semigroup [22XM[122X, then the output is [22XM[122X. The output387is a good generating system of [3XI[103X.[133X388389[4X[32X Example [32X[104X390[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X391[4X[25Xgap>[125X [27Xe:=10+s;;[127X[104X392[4X[25Xgap>[125X [27Xa:=AmalgamationOfNumericalSemigroups(s,e,5);;[127X[104X393[4X[25Xgap>[125X [27Xe:=GoodIdeal([[2,3],[3,2],[2,2]],a);;[127X[104X394[4X[25Xgap>[125X [27Xa=AmbientGoodSemigroupOfGoodIdeal(e);[127X[104X395[4X[28Xtrue[128X[104X396[4X[32X[104X397398[1X12.4-4 MinimalGoodGeneratingSystemOfGoodIdeal[101X399400[29X[2XMinimalGoodGeneratingSystemOfGoodIdeal[102X( [3XI[103X ) [32X function401402[33X[0;0Y[3XI[103X is a good ideal of a good semigroup. The output is the minimal good403generating system of [3XI[103X.[133X404405[4X[32X Example [32X[104X406[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X407[4X[25Xgap>[125X [27Xe:=10+s;;[127X[104X408[4X[25Xgap>[125X [27Xd:=NumericalSemigroupDuplication(s,e);;[127X[104X409[4X[25Xgap>[125X [27Xe:=GoodIdeal([[2,3],[3,2],[2,2]],d);;[127X[104X410[4X[25Xgap>[125X [27XMinimalGoodGeneratingSystemOfGoodIdeal(e);[127X[104X411[4X[28X[ [ 2, 3 ], [ 3, 2 ] ][128X[104X412[4X[32X[104X413414[1X12.4-5 BelongsToGoodIdeal[101X415416[29X[2XBelongsToGoodIdeal[102X( [3Xv[103X, [3XI[103X ) [32X operation417[29X[2X\in[102X( [3Xv[103X, [3XI[103X ) [32X operation418419[33X[0;0Y[3XI[103X is a good ideal of a good semigroup and [3Xv[103X is a pair of integers. The420output is [10Xtrue[110X if [3Xv[103X is in [3XI[103X, and [10Xfalse[110X otherwise. Other ways to use this421operation are [10X\in(v,I)[110X and [10Xv in I[110X.[133X422423[4X[32X Example [32X[104X424[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X425[4X[25Xgap>[125X [27Xe:=10+s;;[127X[104X426[4X[25Xgap>[125X [27Xd:=NumericalSemigroupDuplication(s,e);;[127X[104X427[4X[25Xgap>[125X [27Xe:=GoodIdeal([[2,3],[3,2]],d);;[127X[104X428[4X[25Xgap>[125X [27X[1,1] in e;[127X[104X429[4X[28Xfalse[128X[104X430[4X[25Xgap>[125X [27X[2,2] in e;[127X[104X431[4X[28Xtrue[128X[104X432[4X[32X[104X433434[1X12.4-6 SmallElementsOfGoodIdeal[101X435436[29X[2XSmallElementsOfGoodIdeal[102X( [3XI[103X ) [32X function437[29X[2XSmallElements[102X( [3XI[103X ) [32X function438439[33X[0;0Y[3XI[103X is a good ideal. The output is its set of small elements, that is, the440elements smaller than its conductor and larger than its minimum element441(with respect to the usual partial ordering).[133X442443[4X[32X Example [32X[104X444[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X445[4X[25Xgap>[125X [27Xe:=10+s;;[127X[104X446[4X[25Xgap>[125X [27Xd:=NumericalSemigroupDuplication(s,e);;[127X[104X447[4X[25Xgap>[125X [27Xe:=GoodIdeal([[2,3],[3,2]],d);;[127X[104X448[4X[25Xgap>[125X [27XSmallElements(e);[127X[104X449[4X[28X[ [ 2, 2 ], [ 2, 3 ], [ 3, 2 ], [ 5, 5 ], [ 5, 6 ], [ 6, 5 ], [ 7, 7 ] ][128X[104X450[4X[32X[104X451452[1X12.4-7 CanonicalIdealOfGoodSemigroup[101X453454[29X[2XCanonicalIdealOfGoodSemigroup[102X( [3XS[103X ) [32X function455456[33X[0;0Y[3XS[103X is a good semigroup. The output is the canonical ideal of [3XS[103X.[133X457458[4X[32X Example [32X[104X459[4X[25Xgap>[125X [27Xs:=NumericalSemigroup(3,5,7);;[127X[104X460[4X[25Xgap>[125X [27Xe:=10+s;;[127X[104X461[4X[25Xgap>[125X [27Xd:=NumericalSemigroupDuplication(s,e);;[127X[104X462[4X[25Xgap>[125X [27Xc:=CanonicalIdealOfGoodSemigroup(d);;[127X[104X463[4X[25Xgap>[125X [27XMinimalGoodGeneratingSystemOfGoodIdeal(c);[127X[104X464[4X[28X[ [ 0, 0 ], [ 2, 2 ] ][128X[104X465[4X[32X[104X466467468469