Numerical Semigroup

Definition

It is said that \((S,+)\) is a numerical semigroup if \(S \subseteq \mathbb{N}\) and satisfies the following conditions:

  1. For all \(a,b \in S\), then \(a + b \in S\).

  2. \(0 \in S\).

  3. The set \(\mathbb{N} \setminus S\) is finite.

The first two conditions implies that \((S,+)\) is a submonoid of \((\mathbb{N}, +)\) and it is denoted simply as \(S\). The set formed by the non-zero elements of \(S\) is denoted by \(S^*\). Equivalently, \((S, +)\) is a numerical semigroup if \((S,+)\) is a submonoid of \((\mathbb{N}, +)\) and \(1 \in G\), where \(G = \{x - y ~ | ~ x,y \in S \}\).

As the complement is finite, there must be a \(c \in S\) such that \(c-1 \not \in S\) and for any \(n \in \mathbb{N}\), \(c+n \in S\), this element \(c \in S\) is called the conductor of \(S\) and it is usually denoted by \(C(S)\). If \(0, s_1, s_2, \ldots, s_n \in S\) are the elements smaller than the conductor (called left elements), then it is written the numerical semigroup as \(S = \{0, s_1, s_2, \ldots, s_n, C(S), \rightarrow \}\).

Examples

\(\circ\) Let us consider a non-zero \(m \in \mathbb{N}\) arbitrary but fixed. The set \(S = \mathbb{N} \setminus \{1, 2, \ldots, m-1\}\) is a numerical semigroup, and if we use the previous notation, \(S = \{0, m, \rightarrow \}\).

\(\circ\) Consider the submonoid generated by the set \(A = \{4,5\}\), that means, \(S = \langle 4, 5 \rangle\). Computing the first elements, we see that \(\{0, 4, 5, 8, 9, 10, 12\} \subseteq S\) and for any element \(n \in \mathbb{N}\) so that \(n \ge 12\), it holds \(n \in S\). In conclusion, \(S\) is a numerical semigroup and \(S = \{0, 4, 5, 8, 9, 10, 12 \rightarrow \}\).

\(\circ\) Consider the submonoid generated by the set \(A = \{5, 7, 11\}\), that means, \(S = \langle 5, 7, 11 \rangle\). If we compute the first elements, we obtain that \(\{0, 5, 7, 10, 11, 12, 14\} \subseteq S\) and the conductor is \(C(S) = 14\), therefore, \(S = \{0, 5, 7, 10, 11, 12, 14, \rightarrow \}\).

Examples with GAP

The following examples are made with the package NumericalSgps in GAP.

\(\diamond\) There are many different ways to define a numerical semigroup in GAP, the most common is by a list of positive integers. The function NumericalSemigroups returns the numerical semigroups generated from a set \(A \subseteq \mathbb{N}\), if it is possible.

gap> S := NumericalSemigroups(9, 11, 12);
<Numerical semigroup with 3 generators>
gap> l := [9,11,12];
[ 9, 11, 12 ]
gap> S := NumericalSemigroup(l);
<Numerical semigroup with 3 generators>

We can obtain the left elements and the conductor with the function SmallElements.

gap> Smallelements(S);
[ 0, 9, 11, 12, 18, 20, 21, 22, 23, 24, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38 ]

It is concluded that \(S = \{ 0, 9, 11, 12, 18, 20, 21, 22, 23, 24, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, \rightarrow \}\). It can be checked if an element belongs to the numerical semigroup with the function BelongsToNumericalSemigroup.

gap> BelongsToNumericalSemigroup(37, S);
false

\(\diamond\) Given two numerical semigroups \(S\) and \(T\), the function IsSubsemigroupOfNumericalSemigroup checks if \(T \subseteq S\), that means, checks if \(S\) is an oversemigroup of \(T\).

gap> S := NumericalSemigroup(17, 32, 45);
<Numerical semigroup with 3 generators>
gap> T := NumericalSemigroup(107, 109, 171);
<Numerical semigroup with 3 generators>
gap> IsSubsemigroupOfNumericalSemigroup(S,T);
true

If \(T\) is not a numerical semigroup, it can be used the function IsSubset.

References

Assi, Abdallah, Marco D’Anna, and Pedro A. Garcı́a-Sánchez. 2020. Numerical Semigroups and Applications. Vol. 3. RSME Springer Series. Springer, [Cham]. https://doi.org/10.1007/978-3-030-54943-5.
Delgado, M., P. A. Garcia-Sanchez, and J. Morais. 2024. NumericalSgps, a Package for Numerical Semigroups, Version 1.4.0.” https://gap-packages.github.io/ numericalsgps.