Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 A B C Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

7 Ideals of numerical semigroups
 7.1 Definitions and basic operations
 7.2 Other functions for ideals

7 Ideals of numerical semigroups

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]).

7.1 Definitions and basic operations

7.1-1 IdealOfNumericalSemigroup
‣ IdealOfNumericalSemigroup( 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>

7.1-2 IsIdealOfNumericalSemigroup
‣ 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

7.1-3 MinimalGeneratingSystemOfIdealOfNumericalSemigroup
‣ MinimalGeneratingSystemOfIdealOfNumericalSemigroup( I )( function )
‣ MinimalGeneratingSystem( I )( function )

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 ]

7.1-4 GeneratorsOfIdealOfNumericalSemigroup
‣ GeneratorsOfIdealOfNumericalSemigroup( I )( function )
‣ GeneratorsOfIdealOfNumericalSemigroupNC( I )( function )

I is an ideal of a numerical semigroup.

The output of GeneratorsOfIdealOfNumericalSemigroup is a system of generators of the ideal. If the minimal system of generators is known, then it is used as output. GeneratorsOfIdealOfNumericalSemigroupNC always returns the set of generators stored in I!.generators.

gap> I:=[3,5,9]+NumericalSemigroup(2,11);;
gap> GeneratorsOfIdealOfNumericalSemigroup(I);
[ 3, 5, 9 ]
gap> MinimalGeneratingSystemOfIdealOfNumericalSemigroup(I);
[ 3 ]
gap> GeneratorsOfIdealOfNumericalSemigroup(I);
[ 3 ]
gap> GeneratorsOfIdealOfNumericalSemigroupNC(I);
[ 3, 5, 9 ]

7.1-5 AmbientNumericalSemigroupOfIdeal
‣ 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);
<Modular numerical semigroup satisfying 11x mod 22 <= x >

7.1-6 SmallElementsOfIdealOfNumericalSemigroup
‣ SmallElementsOfIdealOfNumericalSemigroup( I )( function )
‣ SmallElements( 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 ]

7.1-7 BelongsToIdealOfNumericalSemigroup
‣ BelongsToIdealOfNumericalSemigroup( n, I )( function )

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

7.1-8 SumIdealsOfNumericalSemigroup
‣ SumIdealsOfNumericalSemigroup( 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}.

I + J is a synonym of this function.

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 ]

7.1-9 MultipleOfIdealOfNumericalSemigroup
‣ MultipleOfIdealOfNumericalSemigroup( 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 ]

7.1-10 SubtractIdealsOfNumericalSemigroup
‣ SubtractIdealsOfNumericalSemigroup( I, J )( function )

I, J are ideals of a numerical semigroup.

The output is the ideal { z∈ Z | z+JI}.

I - J is a synonym of this function.

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 ]

7.1-11 DifferenceOfIdealsOfNumericalSemigroup
‣ DifferenceOfIdealsOfNumericalSemigroup( I, J )( function )

I, J are ideals of a numerical semigroup. J must be contained in I.

The output is the set IJ.

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> DifferenceOfIdealsOfNumericalSemigroup(last2,last);
[ 26, 27, 37, 38 ]

7.1-12 TranslationOfIdealOfNumericalSemigroup
‣ TranslationOfIdealOfNumericalSemigroup( 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

7.1-13 IntersectionIdealsOfNumericalSemigroup
‣ 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>

7.1-14 MaximalIdealOfNumericalSemigroup
‣ MaximalIdealOfNumericalSemigroup( S )( function )

Returns the maximal ideal of the numerical semigroup S.

gap> MaximalIdealOfNumericalSemigroup(NumericalSemigroup(3,7));
<Ideal of numerical semigroup>

7.1-15 CanonicalIdealOfNumericalSemigroup
‣ CanonicalIdealOfNumericalSemigroup( S )( function )

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> (m-c)-c=m;
true
gap> id:=3+s;
<Ideal of numerical semigroup>
gap> (id-c)-c=id;
true

7.2 Other functions for ideals

7.2-1 HilbertFunctionOfIdealOfNumericalSemigroup
‣ 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 ]

7.2-2 BlowUpIdealOfNumericalSemigroup
‣ 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 ]

7.2-3 ReductionNumberIdealNumericalSemigroup
‣ ReductionNumberIdealNumericalSemigroup( I )( function )

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

7.2-4 BlowUpOfNumericalSemigroup
‣ BlowUpOfNumericalSemigroup( S )( function )

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 ]

7.2-5 MicroInvariantsOfNumericalSemigroup
‣ 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\'ery 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

7.2-6 IsGradedAssociatedRingNumericalSemigroupCM
‣ IsGradedAssociatedRingNumericalSemigroupCM( S )( function )

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 ]

7.2-7 IsMonomialNumericalSemigroup
‣ IsMonomialNumericalSemigroup( S )( function )

S is a numerical semigroup.

Tests whether S a monomial numerical semigroup.

Let R a Noetherian ring such that K ⊆ R ⊆ K[[t]], K is a field of characteristic zero, the algebraic closure of R is K[[t]], and the conductor (R : K[[t]]) is not zero. If v : K((t))-> Z is the natural valuation for K((t)), then v(R) is a numerical semigroup.

Let S be a numerical semigroup minimally generated by {n_1,...,n_e}. The semigroup ring associated to S is K[[S]]=K[[t^n_1,...,t^n_e]]. A ring is called a semigroup ring if it is of the form K[[S]], for some numerical semigroup S. We say that S is a monomial numerical semigroup if for any R as above with v(R)=S, R is a semigroup ring. See [Mic02] for details.

gap> IsMonomialNumericalSemigroup(NumericalSemigroup(4,6,7));
true
gap> IsMonomialNumericalSemigroup(NumericalSemigroup(4,6,11));
false

7.2-8 AperyListOfIdealOfNumericalSemigroupWRTElement
‣ AperyListOfIdealOfNumericalSemigroupWRTElement( I, n )( function )

Computes the sets of elements x of I such that x-n 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 ]

7.2-9 AperyTableOfNumericalSemigroup
‣ AperyTableOfNumericalSemigroup( s )( function )

Computes the Apéry table associated to the numerical semigroup s as explained in [BJA13], 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).

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 ] ]

7.2-10 StarClosureOfIdealOfNumericalSemigroup
‣ 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 [Spi14].

gap> s:=NumericalSemigroup(3,5,7);;
gap> StarClosureOfIdealOfNumericalSemigroup([0,2]+s,[[0,4]+s]);;
gap> MinimalGeneratingSystemOfIdealOfNumericalSemigroup(last);
[ 0, 2, 4 ]
						
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 A B C Bib Ind

generated by GAPDoc2HTML