Let S be a numerical semigroup. A set I of integers is an ideal relative to a numerical semigroup S provided that I+S⊆ I and that there exists d∈ S such that d+I⊆ S.
If {i_1,...,i_k} is a subset of Z, then the set I={i_1,...,i_k}+S=⋃_n=1^k i_n+S is an ideal relative to S, and {i_1,..., i_k} is a system of generators of I. A system of generators M is minimal if no proper subset of M generates the same ideal. Usually, ideals are specified by means of its generators and the ambient numerical semigroup to which they are ideals (for more information see for instance [BDF97]).
‣ IdealOfNumericalSemigroup ( l, S ) | ( function ) |
‣ + ( l, S ) | ( function ) |
S is a numerical semigroup and l a list of integers. The output is the ideal of S generated by l.
There are several shortcuts for this function, as shown in the example.
gap> IdealOfNumericalSemigroup([3,5],NumericalSemigroup(9,11)); <Ideal of numerical semigroup> gap> [3,5]+NumericalSemigroup(9,11); <Ideal of numerical semigroup> gap> last=last2; true gap> 3+NumericalSemigroup(5,9); <Ideal of numerical semigroup>
‣ IsIdealOfNumericalSemigroup ( Obj ) | ( function ) |
Tests if the object Obj is an ideal of a numerical semigroup.
gap> I:=[1..7]+NumericalSemigroup(7,19);; gap> IsIdealOfNumericalSemigroup(I); true gap> IsIdealOfNumericalSemigroup(2); false
‣ MinimalGenerators ( I ) | ( attribute ) |
‣ MinimalGeneratingSystem ( I ) | ( attribute ) |
‣ MinimalGeneratingSystemOfIdealOfNumericalSemigroup ( I ) | ( attribute ) |
I is an ideal of a numerical semigroup. The output is the minimal system of generators of I.
gap> I:=[3,5,9]+NumericalSemigroup(2,11);; gap> MinimalGeneratingSystemOfIdealOfNumericalSemigroup(I); [ 3 ] gap> MinimalGeneratingSystem(I); [ 3 ] gap> MinimalGenerators([3,5]+NumericalSemigroup(2,11)); [ 3 ]
‣ Generators ( I ) | ( attribute ) |
‣ GeneratorsOfIdealOfNumericalSemigroup ( I ) | ( attribute ) |
I is an ideal of a numerical semigroup. The output is a system of generators of the ideal.
Remark: from Version 1.0.1 on, this value does not change even when a set of minimal generators is computed.
gap> I:=[3,5,9]+NumericalSemigroup(2,11);; gap> GeneratorsOfIdealOfNumericalSemigroup(I); [ 3, 5, 9 ] gap> Generators(I); [ 3, 5, 9 ]
‣ AmbientNumericalSemigroupOfIdeal ( I ) | ( function ) |
I is an ideal of a numerical semigroup, say S. The output is S.
gap> I:=[3,5,9]+NumericalSemigroup(2,11);; gap> AmbientNumericalSemigroupOfIdeal(I); <Numerical semigroup with 2 generators>
‣ IsIntegral ( I ) | ( property ) |
‣ IsIntegralIdealOfNumericalSemigroup ( I ) | ( property ) |
I is an ideal of a numerical semigroup, say S. Detects if I⊆ S.
gap> s:=NumericalSemigroup(3,7,5);; gap> IsIntegralIdealOfNumericalSemigroup(4+s); false gap> IsIntegralIdealOfNumericalSemigroup(10+s); true gap> IsIntegral(10+s); true
‣ SmallElements ( I ) | ( function ) |
‣ SmallElementsOfIdealOfNumericalSemigroup ( I ) | ( function ) |
I is an ideal of a numerical semigroup. The output is a list with the elements in I that are less than or equal to the greatest integer not belonging to the ideal plus one.
gap> I:=[3,5,9]+NumericalSemigroup(2,11);; gap> SmallElementsOfIdealOfNumericalSemigroup(I); [ 3, 5, 7, 9, 11, 13 ] gap> SmallElements(I) = SmallElementsOfIdealOfNumericalSemigroup(I); true gap> J:=[2,11]+NumericalSemigroup(2,11);; gap> SmallElementsOfIdealOfNumericalSemigroup(J); [ 2, 4, 6, 8, 10 ]
‣ Conductor ( NS ) | ( attribute ) |
‣ ConductorOfIdealOfNumericalSemigroup ( I ) | ( function ) |
I is an ideal of a numerical semigroup. The output is the largest element in SmallElements(I).
gap> s:=NumericalSemigroup(3,7,5);; gap> ConductorOfIdealOfNumericalSemigroup(10+s); 15 gap> Conductor(10+s); 15
‣ Minimum ( I ) | ( operation ) |
I is an ideal of a numerical semigroup. The output is the minimum of I.
gap> J:=[2,11]+NumericalSemigroup(2,11);; gap> Minimum(J); 2
‣ BelongsToIdealOfNumericalSemigroup ( n, I ) | ( function ) |
‣ \in ( n, I ) | ( operation ) |
I is an ideal of a numerical semigroup, n is an integer. The output is true if n belongs to I.
n in I can be used for short.
gap> J:=[2,11]+NumericalSemigroup(2,11);; gap> BelongsToIdealOfNumericalSemigroup(9,J); false gap> 9 in J; false gap> BelongsToIdealOfNumericalSemigroup(10,J); true gap> 10 in J; true
‣ SumIdealsOfNumericalSemigroup ( I, J ) | ( function ) |
‣ + ( I, J ) | ( function ) |
I, J are ideals of a numerical semigroup. The output is the sum of both ideals { i+j | i∈ I, j∈ J}.
gap> I:=[3,5,9]+NumericalSemigroup(2,11);; gap> J:=[2,11]+NumericalSemigroup(2,11);; gap> I+J; <Ideal of numerical semigroup> gap> MinimalGeneratingSystemOfIdealOfNumericalSemigroup(last); [ 5, 14 ] gap> SumIdealsOfNumericalSemigroup(I,J); <Ideal of numerical semigroup> gap> MinimalGeneratingSystemOfIdealOfNumericalSemigroup(last); [ 5, 14 ]
‣ MultipleOfIdealOfNumericalSemigroup ( n, I ) | ( function ) |
‣ * ( n, I ) | ( function ) |
I is an ideal of a numerical semigroup, n is a non negative integer. The output is the ideal I+⋯+I (n times).
n * I can be used for short.
gap> I:=[0,1]+NumericalSemigroup(3,5,7);; gap> MinimalGeneratingSystemOfIdealOfNumericalSemigroup(2*I); [ 0, 1, 2 ]
‣ SubtractIdealsOfNumericalSemigroup ( I, J ) | ( function ) |
‣ - ( I, J ) | ( function ) |
I, J are ideals of a numerical semigroup. The output is the ideal { z∈ Z | z+J⊆ I}.
I - J is a synonym of SubtractIdealsOfNumericalSemigroup
.
S-J is a synonym of (0+S)-J, if S is the ambient semigroup of I and J. The following example appears in [HS04].
gap> S:=NumericalSemigroup(14, 15, 20, 21, 25);; gap> I:=[0,1]+S;; gap> II:=S-I;; gap> MinimalGeneratingSystemOfIdealOfNumericalSemigroup(I); [ 0, 1 ] gap> MinimalGeneratingSystemOfIdealOfNumericalSemigroup(II); [ 14, 20 ] gap> MinimalGeneratingSystemOfIdealOfNumericalSemigroup(I+II); [ 14, 15, 20, 21 ]
‣ Difference ( I, J ) | ( operation ) |
‣ DifferenceOfIdealsOfNumericalSemigroup ( I, J ) | ( function ) |
I, J are ideals of a numerical semigroup. J must be contained in I. The output is the set I∖ J.
gap> S:=NumericalSemigroup(14, 15, 20, 21, 25);; gap> I:=[0,1]+S; <Ideal of numerical semigroup> gap> 2*I-2*I; <Ideal of numerical semigroup> gap> I-I; <Ideal of numerical semigroup> gap> ii := 2*I-2*I; <Ideal of numerical semigroup> gap> i := I-I; <Ideal of numerical semigroup> gap> DifferenceOfIdealsOfNumericalSemigroup(last2,last); [ 26, 27, 37, 38 ] gap> Difference(ii,i); [ 26, 27, 37, 38 ] gap> Difference(i,ii); [ ]
‣ TranslationOfIdealOfNumericalSemigroup ( k, I ) | ( function ) |
‣ + ( k, I ) | ( function ) |
Given an ideal I of a numerical semigroup S and an integer k returns an ideal of the numerical semigroup S generated by {i_1+k,...,i_n+k} where {i_1,...,i_n} is the system of generators of I.
As a synonym to TranslationOfIdealOfNumericalSemigroup(k, I)
the expression k + I
may be used.
gap> s:=NumericalSemigroup(13,23);; gap> l:=List([1..6], _ -> Random([8..34])); [ 22, 29, 34, 25, 10, 12 ] gap> I:=IdealOfNumericalSemigroup(l, s);; gap> It:=TranslationOfIdealOfNumericalSemigroup(7,I); <Ideal of numerical semigroup> gap> It2:=7+I; <Ideal of numerical semigroup> gap> It2=It; true
‣ Intersection ( I, J ) | ( operation ) |
‣ IntersectionIdealsOfNumericalSemigroup ( I, J ) | ( function ) |
Given two ideals I and J of a numerical semigroup S returns the ideal of the numerical semigroup S which is the intersection of the ideals I and J.
gap> i:=IdealOfNumericalSemigroup([75,89],s);; gap> j:=IdealOfNumericalSemigroup([115,289],s);; gap> IntersectionIdealsOfNumericalSemigroup(i,j); <Ideal of numerical semigroup>
‣ MaximalIdealOfNumericalSemigroup ( S ) | ( function ) |
Returns the maximal ideal of the numerical semigroup S.
gap> MaximalIdealOfNumericalSemigroup(NumericalSemigroup(3,7)); <Ideal of numerical semigroup>
‣ CanonicalIdealOfNumericalSemigroup ( S ) | ( function ) |
S is a numerical semigroup. Computes a canonical ideal of S ([BF06]): { x ∈ Z | g-x not ∈ S}.
gap> s:=NumericalSemigroup(4,6,11);; gap> m:=MaximalIdealOfNumericalSemigroup(s);; gap> c:=CanonicalIdealOfNumericalSemigroup(s); <Ideal of numerical semigroup> gap> c-(c-m)=m; true gap> id:=3+s; <Ideal of numerical semigroup> gap> c-(c-id)=id; true
‣ IsCanonicalIdeal ( E ) | ( property ) |
‣ IsCanonicalIdealOfNumericalSemigroup ( E ) | ( property ) |
E is an ideal of a numerical semigroup, say S. Determines if E is a translation of the canonical ideal of S, or equivalently, for every ideal J, E-(E-J)=J.
gap> s:=NumericalSemigroup(3,5,7);; gap> c:=3+CanonicalIdealOfNumericalSemigroup(s);; gap> c-(c-(3+s))=3+s; true gap> IsCanonicalIdealOfNumericalSemigroup(c); true
‣ TypeSequenceOfNumericalSemigroup ( S ) | ( function ) |
S is a numerical semigroup.
Computes the type sequence of a numerical semigroup. That is, the secuence t_i(S)=♯(S(i)∖ S(i-1)), with S(i)={ s∈ S∣ sge s_i} and s_i the ith element of S.
This function is the implementation of the algorithm given in [BDF97].
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> TypeSequenceOfNumericalSemigroup(s); [ 13, 3, 4, 4, 7, 3, 3, 3, 2, 2, 2, 3, 3, 2, 4, 3, 2, 1, 3, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 3, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1 ] gap> s:=NumericalSemigroup(4,6,11);; gap> TypeSequenceOfNumericalSemigroup(s); [ 1, 1, 1, 1, 1, 1, 1 ]
‣ HilbertFunctionOfIdealOfNumericalSemigroup ( n, I ) | ( function ) |
I is an ideal of a numerical semigroup, n is a non negative integer. I must be contained in its ambient semigroup. The output is the cardinality of the set nI∖ (n+1)I.
gap> I:=[6,9,11]+NumericalSemigroup(6,9,11);; gap> List([1..7],n->HilbertFunctionOfIdealOfNumericalSemigroup(n,I)); [ 3, 5, 6, 6, 6, 6, 6 ]
‣ BlowUpIdealOfNumericalSemigroup ( I ) | ( function ) |
I is an ideal of a numerical semigroup. The output is the ideal ⋃_n≥ 0 nI-nI.
gap> I:=[0,2]+NumericalSemigroup(6,9,11);; gap> BlowUpIdealOfNumericalSemigroup(I);; gap> SmallElementsOfIdealOfNumericalSemigroup(last); [ 0, 2, 4, 6, 8 ]
‣ ReductionNumber ( I ) | ( attribute ) |
‣ ReductionNumberIdealNumericalSemigroup ( I ) | ( attribute ) |
I is an ideal of a numerical semigroup. The output is the least integer such that n I + i=(n+1)I, where i=min(I).
gap> I:=[0,2]+NumericalSemigroup(6,9,11);; gap> ReductionNumberIdealNumericalSemigroup(I); 2
‣ BlowUpOfNumericalSemigroup ( S ) | ( function ) |
S is a numerical semigroup. If M is the maximal ideal of the numerical semigroup, then the output is the numerical semigroup ⋃_n≥ 0 nM-nM.
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> BlowUpOfNumericalSemigroup(s); <Numerical semigroup with 10 generators> gap> SmallElementsOfNumericalSemigroup(last); [ 0, 5, 10, 12, 15, 17, 20, 22, 24, 25, 27, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44 ] gap> m:=MaximalIdealOfNumericalSemigroup(s); <Ideal of numerical semigroup> gap> BlowUpIdealOfNumericalSemigroup(m); <Ideal of numerical semigroup> gap> SmallElementsOfIdealOfNumericalSemigroup(last); [ 0, 5, 10, 12, 15, 17, 20, 22, 24, 25, 27, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44 ]
‣ LipmanSemigroup ( S ) | ( function ) |
This is just a synonym of BlowUpOfNumericalSemigroup
(7.2-4).
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> LipmanSemigroup(s); <Numerical semigroup with 10 generators> gap> SmallElementsOfNumericalSemigroup(last); [ 0, 5, 10, 12, 15, 17, 20, 22, 24, 25, 27, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44 ]
‣ RatliffRushNumberOfIdealOfNumericalSemigroup ( I ) | ( function ) |
I is an ideal of a numerical semigroup. The output is the least integer such that (n+1)I-nI is the Ratliff-Rush closure of I.
gap> I:=[0,2]+NumericalSemigroup(6,9,11);; gap> RatliffRushNumberOfIdealOfNumericalSemigroup(I); 1
‣ RatliffRushClosureOfIdealOfNumericalSemigroup ( I ) | ( function ) |
I is an ideal of a numerical semigroup. The output is the Ratliff-Rush closure of I: ⋃_n∈ N}(n+1)I-nI (see [DGH01]).
gap> I:=[0,2]+NumericalSemigroup(6,9,11);; gap> RatliffRushClosureOfIdealOfNumericalSemigroup(I); <Ideal of numerical semigroup> gap> MinimalGenerators(last); [ 0, 2, 4 ]
‣ AsymptoticRatliffRushNumberOfIdealOfNumericalSemigroup ( I ) | ( function ) |
I is an ideal of a numerical semigroup. The output is the least n such that the Ratliff-Rush closure of mI equals mI for all mge n(see [DGH01]).
gap> I:=[0,2]+NumericalSemigroup(6,9,11);; gap> AsymptoticRatliffRushNumberOfIdealOfNumericalSemigroup(I); 2
‣ MultiplicitySequenceOfNumericalSemigroup ( S ) | ( function ) |
S is a numerical semigroup. The output is a list with the multiplicities of the sequence S⊆ L(S)⊆ ⋯ ⊆ N, where L(⋅) means LipmanSemigroup
(7.2-5).
gap> s:=NumericalSemigroup(3,5); <Numerical semigroup with 2 generators> gap> MultiplicitySequenceOfNumericalSemigroup(s); [ 3, 2, 1 ]
‣ MicroInvariantsOfNumericalSemigroup ( S ) | ( function ) |
Returns the microinvariants of the numerical semigroup S defined in [Eli01]. For their computation we have used the formula given in [BF06]. The Apéry set of S and its blow up are involved in this computation.
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> bu:=BlowUpOfNumericalSemigroup(s);; gap> ap:=AperyListOfNumericalSemigroupWRTElement(s,30);; gap> apbu:=AperyListOfNumericalSemigroupWRTElement(bu,30);; gap> (ap-apbu)/30; [ 0, 4, 4, 3, 2, 1, 3, 4, 4, 3, 2, 3, 1, 4, 4, 3, 3, 1, 4, 4, 4, 3, 2, 4, 2, 5, 4, 3, 3, 2 ] gap> MicroInvariantsOfNumericalSemigroup(s)=last; true
‣ AperyListOfIdealOfNumericalSemigroupWRTElement ( I, n ) | ( function ) |
I is an ideal and n is an integer. Computes the set of elements x of I such that x-n is not in the ideal I, where n is supposed to be in the ambient semigroup of I. The element in the ith position of the output list (starting in 0) is congruent with i modulo n.
gap> s:=NumericalSemigroup(10,11,13);; gap> i:=[12,14]+s;; gap> AperyListOfIdealOfNumericalSemigroupWRTElement(i,10); [ 40, 51, 12, 23, 14, 25, 36, 27, 38, 49 ]
‣ AperyTableOfNumericalSemigroup ( s ) | ( function ) |
Computes the Apéry table associated to the numerical semigroup s as explained in [CBJZA13], that is, a list containing the Apéry list of s with respect to its multiplicity and the Apéry lists of kM (with M the maximal ideal of s) with respect to the multiplicity of s, for k∈{1,...,r}, where r is the reduction number of M (see ReductionNumberIdealNumericalSemigroup
(7.2-3)).
gap> s:=NumericalSemigroup(10,11,13);; gap> AperyTableOfNumericalSemigroup(s); [ [ 0, 11, 22, 13, 24, 35, 26, 37, 48, 39 ], [ 10, 11, 22, 13, 24, 35, 26, 37, 48, 39 ], [ 20, 21, 22, 23, 24, 35, 26, 37, 48, 39 ], [ 30, 31, 32, 33, 34, 35, 36, 37, 48, 39 ], [ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 ] ]
‣ StarClosureOfIdealOfNumericalSemigroup ( i, is ) | ( function ) |
i is an ideal and is is a set of ideals (all from the same numerical semigroups). The output is i^*_is}, where *_is is the star operation generated by is: (s-(s-i))⋂_k∈ is (k-(k-i)). The implementation uses Section 3 of [Spi15].
gap> s:=NumericalSemigroup(3,5,7);; gap> StarClosureOfIdealOfNumericalSemigroup([0,2]+s,[[0,4]+s]);; gap> MinimalGeneratingSystemOfIdealOfNumericalSemigroup(last); [ 0, 2, 4 ]
In this section we document the functions implemented by K. Stokes related to patterns of ideals in numerical semigroups. The correctness of the algorithms can be found in [Sto15].
‣ IsAdmissiblePattern ( p ) | ( function ) |
p is the list of integers that are the coefficients of a pattern.
Returns true or false depending if the pattern is admissible or not (see [BAGS06]).
gap> IsAdmissiblePattern([1,1,-1]); true gap> IsAdmissiblePattern([1,-2]); false
‣ IsStronglyAdmissiblePattern ( p ) | ( function ) |
p is the list of integers that are the coefficients of a pattern.
Returns true or false depending if the pattern is strongly admissible or not (see [BAGS06]).
gap> IsAdmissiblePattern([1,-1]); true gap> IsStronglyAdmissiblePattern([1,-1]); false gap> IsStronglyAdmissiblePattern([1,1,-1]); true
‣ AsIdealOfNumericalSemigroup ( I, T ) | ( function ) |
I is an ideal of a numerical semigroup S, and T is a numerical semigroup. Detects if I is an ideal of T and contained in T (integral ideal), and if so, returns I as an ideal of T. It returns fail
if I is an ideal of some semigroup but not an integral ideal of t.
gap> s:=NumericalSemigroup(3,7,5);; gap> t:=NumericalSemigroup(10,11,14);; gap> AsIdealOfNumericalSemigroup(10+s,t); fail gap> AsIdealOfNumericalSemigroup(100+s,t); <Ideal of numerical semigroup>
‣ BoundForConductorOfImageOfPattern ( p, C ) | ( function ) |
p is the list of integers that are the coefficients of an admissible pattern. C is a positive integer. Calculates an upper bound of the smallest element K in p(I) such that all integers larger than K are contained in p(I), where I is an ideal of a numerical semigroup. Instead of taking I as parameter, the function takes C, which is assumed to be the conductor of I.
gap> BoundForConductorOfImageOfPattern([1,1,-1],10); 10
‣ ApplyPatternToIdeal ( p, I ) | ( function ) |
p is the list of integers that are the coefficients of a strongly admissible pattern. I is an ideal of a numerical semigroup.
Calculates p(I). Outputs p(I), represented as [d,p(I)/d]
, where d
is the gcd of the coefficients of p. All elements of p(I) are divisible by d, and p(I)/d is an ideal of some numerical semigroup. It is returned as the maximal ideal of the numerical semigroup p(I)/d ∪ {0}. The parent numerical semigroup can later be changed with the function AsIdealOfNumericalSemigroup
.
gap> s:=NumericalSemigroup(3,7,5);; gap> i:=10+s;; gap> ApplyPatternToIdeal([1,1,-1],i); [ 1, <Ideal of numerical semigroup> ]
‣ ApplyPatternToNumericalSemigroup ( p, S ) | ( function ) |
p is the list of integers that are the coefficients of a strongly admissible pattern. S is a numerical semigroup.
Outputs ApplyPatternToIdeal(p,0+S)
.
gap> s:=NumericalSemigroup(3,7,5);; gap> ApplyPatternToNumericalSemigroup([1,1,-1],s); [ 1, <Ideal of numerical semigroup> ] gap> SmallElements(last[2]); [ 0, 3, 5 ]
‣ IsAdmittedPatternByIdeal ( p, I, J ) | ( function ) |
p is the list of integers that are the coefficients of a strongly admissible pattern. I and J are ideals of certain numerical semigroups.
Tests whether or not p(I) is contained in J.
gap> s:=NumericalSemigroup(3,7,5);; gap> i:=[3,5]+s;; gap> IsAdmittedPatternByIdeal([1,1,-1],i,i); false gap> IsAdmittedPatternByIdeal([1,1,-1],i,0+s); true
‣ IsAdmittedPatternByNumericalSemigroup ( p, S, T ) | ( function ) |
p is the list of integers that are the coefficients of a strongly admissible pattern. S and T are numerical semigroups.
Tests whether or not p(S) is contained in T.
gap> IsAdmittedPatternByNumericalSemigroup([1,1,-1],s,s); true gap> IsArfNumericalSemigroup(s); true
This section contains several functions to test properties of the graded (with respect to the maximal ideal) of the semigroup ring K[[S]] (with S a numerical semigroup).
‣ IsGradedAssociatedRingNumericalSemigroupCM ( S ) | ( property ) |
S is a numerical semigroup. Returns true if the graded ring associated to K[[S]] is Cohen-Macaulay, and false otherwise. This test is the implementation of the algorithm given in [BF06].
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> IsGradedAssociatedRingNumericalSemigroupCM(s); false gap> MicroInvariantsOfNumericalSemigroup(s); [ 0, 4, 4, 3, 2, 1, 3, 4, 4, 3, 2, 3, 1, 4, 4, 3, 3, 1, 4, 4, 4, 3, 2, 4, 2, 5, 4, 3, 3, 2 ] gap> List(AperyListOfNumericalSemigroupWRTElement(s,30), > w->MaximumDegreeOfElementWRTNumericalSemigroup (w,s)); [ 0, 1, 4, 1, 2, 1, 3, 1, 4, 3, 2, 3, 1, 1, 4, 3, 3, 1, 4, 1, 4, 3, 2, 4, 2, 5, 4, 3, 1, 2 ] gap> last=last2; false gap> s:=NumericalSemigroup(4,6,11);; gap> IsGradedAssociatedRingNumericalSemigroupCM(s); true gap> MicroInvariantsOfNumericalSemigroup(s); [ 0, 2, 1, 1 ] gap> List(AperyListOfNumericalSemigroupWRTElement(s,4), > w->MaximumDegreeOfElementWRTNumericalSemigroup(w,s)); [ 0, 2, 1, 1 ]
‣ IsGradedAssociatedRingNumericalSemigroupBuchsbaum ( S ) | ( property ) |
S is a numerical semigroup.
Returns true if the graded ring associated to K[[S]] is Buchsbaum, and false otherwise. This test is the implementation of the algorithm given in [DMV09].
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> IsGradedAssociatedRingNumericalSemigroupBuchsbaum(s); true
‣ TorsionOfAssociatedGradedRingNumericalSemigroup ( S ) | ( function ) |
S is a numerical semigroup.
This function returns the set of elements in the numerical semigroup S corresponding to a K-basis of the torsion submodule of the associated graded ring of the numerical semigroup ring K[[S]]. It uses the Apery table as explained in [CBJZA13].
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> TorsionOfAssociatedGradedRingNumericalSemigroup(s); [ 181, 153, 157, 193, 169, 148 ]
‣ BuchsbaumNumberOfAssociatedGradedRingNumericalSemigroup ( S ) | ( function ) |
S is a numerical semigroup.
This function returns the smallest non-negative integer k for which the associated graded ring G of a given numerical semigroup ring is k-Buchsbaum, that is, the least k for which the torsion submodule of G is annihilated by the k-th power of the homogeneous maximal ideal of G.
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> BuchsbaumNumberOfAssociatedGradedRingNumericalSemigroup(s); 1 gap> IsGradedAssociatedRingNumericalSemigroupBuchsbaum(s); true
‣ IsMpure ( S ) | ( property ) |
‣ IsMpureNumericalSemigroup ( S ) | ( property ) |
S is a numerical semigroup.
Test for the M-Purity of the numerical semigroup S S. This test is based on [Bry10].
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> IsMpureNumericalSemigroup(s); false gap> s:=NumericalSemigroup(4,6,11);; gap> IsMpureNumericalSemigroup(s); true
‣ IsPure ( S ) | ( property ) |
‣ IsPureNumericalSemigroup ( S ) | ( property ) |
S is a numerical semigroup.
Test for the purity of the numerical semigroup S S. This test is based on [Bry10].
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> IsPureNumericalSemigroup(s); false gap> s:=NumericalSemigroup(4,6,11);; gap> IsPureNumericalSemigroup(s); true
‣ IsGradedAssociatedRingNumericalSemigroupGorenstein ( S ) | ( function ) |
S is a numerical semigroup.
Returns true if the graded ring associated to K[[S]] is Gorenstein, and false otherwise. This test is the implementation of the algorithm given in [DMS11].
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> IsGradedAssociatedRingNumericalSemigroupGorenstein(s); false gap> s:=NumericalSemigroup(4,6,11);; gap> IsGradedAssociatedRingNumericalSemigroupGorenstein(s); true
‣ IsGradedAssociatedRingNumericalSemigroupCI ( S ) | ( function ) |
S is a numerical semigroup.
Returns true if the Complete Intersection property of the associated graded ring of a numerical semigroup ring associated to K[[S]], and false otherwise. This test is the implementation of the algorithm given in [DMS13].
gap> s:=NumericalSemigroup(30, 35, 42, 47, 148, 153, 157, 169, 181, 193);; gap> IsGradedAssociatedRingNumericalSemigroupCI(s); false gap> s:=NumericalSemigroup(4,6,11);; gap> IsGradedAssociatedRingNumericalSemigroupCI(s); true
generated by GAPDoc2HTML