GAP (NumericalSgps) - Chapter 4: Presentations of Numerical Semigroups

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

[MathJax on]

4 Presentations of Numerical Semigroups
4.1 Presentations of Numerical Semigroups
4.1-1 MinimalPresentation
4.1-2 GraphAssociatedToElementInNumericalSemigroup
4.1-3 BettiElements
4.1-4 DegreesOfPrimitiveElementsOfNumericalSemigroup
4.1-5 ShadedSetOfElementInNumericalSemigroup
4.2 Uniquely Presented Numerical Semigroups
4.2-1 IsUniquelyPresented
4.2-2 IsGeneric

### 4 Presentations of Numerical Semigroups

In this chapter we explain how to compute a minimal presentation of a numerical semigroup. Recall that a minimal presentation is a minimal generating system of the kernel congruence of the factorization map of the numerical semigroup. If S is a numerical semigroup minimally generated by {n_1,...,n_e}, then the factorization map is the epimorphism φ: N^e-> S, (x_1,...,x_e)↦ x_1n_1+dots+ x_en_e; its kernel is the congruence { (a,b) ∣ φ(a)=φ(b)}.

The set of minimal generators is stored in a set, and so it may not be arranged as the user gave them. This may affect the arrangement of the coordinates of the pairs in a minimal presentation, since every coordinate is associated to a minimal generator.

#### 4.1 Presentations of Numerical Semigroups

In this section we provide a way to compute minimal presentations of a numerical semigroup. These presentations are constructed from some special elelements in the semigroup (Betti elemenents) whose associated graphs are nonconnected. A generalization of these graphs are the simplicial complexes called shaded sets of an element.

##### 4.1-1 MinimalPresentation

`‣ MinimalPresentation`( S ) | ( operation )

`‣ MinimalPresentationOfNumericalSemigroup`( S ) | ( function )

S 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+⋯+a_i_nm_n= b_i_1m_1+ ⋯ +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 [Ros96a] (see also [RGS99b]).

    gap> s:=NumericalSemigroup(3,5,7);;
    gap> MinimalPresentation(s);
    [ [ [ 0, 2, 0 ], [ 1, 0, 1 ] ], [ [ 3, 1, 0 ], [ 0, 0, 2 ] ],
    [ [ 4, 0, 0 ], [ 0, 1, 1 ] ] ]
    gap> MinimalPresentationOfNumericalSemigroup(s);
    [ [ [ 0, 2, 0 ], [ 1, 0, 1 ] ], [ [ 3, 1, 0 ], [ 0, 0, 2 ] ],
    [ [ 4, 0, 0 ], [ 0, 1, 1 ] ] ]

The first element in the list means that 1× 3+1× 7=2× 5, and the others have similar meanings.

##### 4.1-2 GraphAssociatedToElementInNumericalSemigroup

`‣ GraphAssociatedToElementInNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup and n is an element in S.

The output is a pair. If {m_1,...,m_n} is the set of minimal generators of S, then the first component is the set of vertices of the graph associated to n in S, that is, the set { m_i | n-m_i∈ S}, and the second component is the set of edges of this graph, that is, { {m_i,m_j} | n-(m_i+m_j)∈ S}.

This function is used to compute a minimal presentation of the numerical semigroup S, as explained in [Ros96a].

    gap> s:=NumericalSemigroup(3,5,7);;
    gap> GraphAssociatedToElementInNumericalSemigroup(10,s);
    [ [ 3, 5, 7 ], [ [ 3, 7 ] ] ]

##### 4.1-3 BettiElements

`‣ BettiElements`( S ) | ( operation )

`‣ BettiElementsOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup.

The output is the set of elements in S whose associated graph is nonconnected [GSO10].

    gap> s:=NumericalSemigroup(3,5,7);;
    gap> BettiElementsOfNumericalSemigroup(s);
    [ 10, 12, 14 ]
    gap> BettiElements(s);
    [ 10, 12, 14 ]

##### 4.1-4 DegreesOfPrimitiveElementsOfNumericalSemigroup

`‣ DegreesOfPrimitiveElementsOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup.

The output is the set of elements s in S such that there exists a minimal solution to msg⋅ x-msg⋅ y = 0, such that x,y are factorizations of s, and msg is the minimal generating system of S. Betti elements are primitive, but not the way around in general.

    gap> s:=NumericalSemigroup(3,5,7);;
    gap> DegreesOfPrimitiveElementsOfNumericalSemigroup(s);
    [ 3, 5, 7, 10, 12, 14, 15, 21, 28, 35 ]

##### 4.1-5 ShadedSetOfElementInNumericalSemigroup

`‣ ShadedSetOfElementInNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup and n is an element in S.

The output is a simplicial complex C. If {m_1,...,m_n} is the set of minimal generators of S, then L ∈ C if n-∑_i∈ L m_i∈ S ([SW86]).

This function is a generalization of the graph associated to n.

    gap> s:=NumericalSemigroup(3,5,7);;
    gap> ShadedSetOfElementInNumericalSemigroup(10,s);
    [ [  ], [ 3 ], [ 3, 7 ], [ 5 ], [ 7 ] ]

#### 4.2 Uniquely Presented Numerical Semigroups

A numerical semigroup S is uniquely presented if for any two minimal presentations σ and τ and any (a,b)∈ σ, either (a,b)∈ τ or (b,a)∈ τ, that is, there is essentially a unique minimal presentation (up to arrangement of the components of the pairs in it).

##### 4.2-1 IsUniquelyPresented

`‣ IsUniquelyPresented`( S ) | ( property )

`‣ IsUniquelyPresentedNumericalSemigroup`( S ) | ( property )

S is a numerical semigroup.

The output is true if S has uniquely presented. The implementation is based on [GSO10].

    gap> s:=NumericalSemigroup(3,5,7);;
    gap> IsUniquelyPresented(s);
    true
    gap> IsUniquelyPresentedNumericalSemigroup(s);
    true

##### 4.2-2 IsGeneric

`‣ IsGeneric`( S ) | ( property )

`‣ IsGenericNumericalSemigroup`( S ) | ( property )

S is a numerical semigroup.

The output is true if S has a generic presentation, that is, in every minimal relation all generators occur. These semigroups are uniquely presented (see [BGSG11]).

This filter implies `IsUniquelyPresentedNumericalSemigroup` (4.2-1).

    gap> s:=NumericalSemigroup(3,5,7);;
    gap> IsGeneric(s);
    true
    gap> IsGenericNumericalSemigroup(s);
    true

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

generated by GAPDoc2HTML