Gap
Definition
Let \(S\) be a numerical semigroup. By definition, the set \(\mathbb{N} \setminus S\) is finite, then it is said that \(g \in \mathbb{N}\) is a gap of \(S\) if \(g \in \mathbb{N} \setminus S\). The set of gaps is usually denoted by \(G(S)\), and its cardinal, the genus of \(S\), by \(g(S)\) or \(\Omega(S)\). Note that the gaps determine completely the numerical semigroup. The maximum of \(G(S)\) is the Frobenius number of \(S\).
Examples
\(\circ\) Let \(S = \langle 4, 9, 10 \rangle\). If we compute the first elements of \(S\), it is obtained that \(S = \{0, 4, 8, 9, 10, 12, 13, 14, 16, \rightarrow \}\), then \(G(S) = \mathbb{N} \setminus S = \{1, 2, 3, 5, 6, 7, 11, 15\}\).
\(\circ\) Let us consider \(b \in \mathbb{N}\) an odd element arbitrary but fixed. The set \(S = \langle 2, b \rangle\) is a numerical semigroup (note that if \(n \ge b\), then \(n \in S\)) and the gaps of \(S\) are \(G(S) = \{1, 3, 5, 7, \ldots, b - 2\}\), in other words, all the odd naturals smaller than \(b\).
Examples with GAP
The following examples are made with the package NumericalSgps in GAP.
\(\diamond\) Let \(S = \langle 5, 23, 24, 33, 34 \rangle\), in GAP:
gap> S := NumericalSemigroup(5, 23, 24, 33, 34);
<Numerical semigroup with 5 generators>
To compute the set of gaps of \(S\) we can apply the function Gaps
.
gap> Gaps(S);
1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 21, 22, 26, 27, 31, 32, 36, 37, 41, 42 ] [
Note that if we know all the elements between \(0\) and \(F(S)+1\) that belongs to \(S\), where \(F(S)\) denote the Frobenius number of \(S\), then we also know the gaps of \(S\). In GAP, we can compute it with the function SmallElements
, which returns the set formed by the left elements of \(S\) and the conductor of \(S\).
gap> SmallElements(S);
0, 5, 10, 15, 20, 23, 24, 25, 28, 29, 30, 33, 34, 35, 38, 39, 40, 43 ] [
Then, the gaps of \(S\) are those that not belong to the list of left elements and are less than \(C(S) = 43\).
\(\diamond\) Given a list, the function NumericalSemigroupByGaps
returns a numerical semigroups where its gaps are the elements of the list, if it is possible.
gap> l := [1,2,3,4,5,7,8,10,11,14,16,17,20,23,29];
1, 2, 3, 4, 5, 7, 8, 10, 11, 14, 16, 17, 20, 23, 29 ]
[ gap> S := NumericalSemigroupByGaps(l);
<Numerical semigroup>
gap> MinimalGenerators(S);
6, 9, 13 ] [
The function MinimalGenerators
returns a list with the minimal generators of the numerical semigroup. Then, \(S = \langle 6, 9, 13 \rangle\) and \(G(S) = \{1, 2, 3, 4, 5, 7, 8, 10, 11, 14, 16, 17, 20, 23, 29\}\). To check if a given list is the set of gaps of a numerical semigroup, we can apply the function RepresentsGapsOfNumericalSemigroup
.
gap> RepresentsGapsOfNumericalSemigroup([5, 10, 13, 15, 26]);
false
References
https://gap-packages.github.io/
numericalsgps
.