Arithmetic numerical semigroup
Definition
Let \(S\) be a numerical semigroup. It is said that \(S\) is arithmetic if there exist \(a, b\) integers with \(0 \le b < a\) such that \(S = \langle a, a+1, \ldots, a + b \rangle\).
Examples
\(\circ\) The numerical semigroup \(S = \mathbb{N}\) is arithmetic.
\(\circ\) Let \(S = \{0, 6, 7, 8, 12, 13, 14, 15, 16, 18, \rightarrow \}\), let us prove that \(S\) is arithmetic. As \(s = 6\) is the multiplicity of \(S\), it has to be a minimal generator. On the other hand, \(s = 7\) cannot be generated by \(6\) and \(s = 8\) cannot be generated by \(6\) and \(7\), then both are minimal generators. If we consider \(B = \{6, 7, 8\}\), it is obtained that \(B\) is a minimal set of generators of \(S\). To sum up, \(S = \langle 6, 7, 8 \rangle\) and is arithmetic with \(a = 6\) and \(b = 2\).
Examples with GAP
Nowadays, there are no functions in package NumericalSgps related to arithmetic numerical semigroups. However, given a numerical semigroup \(S\), the following function returns true if \(S\) is arithmetic and false otherwise.
gap> IsArithmetic := function(S)
> local Min_gen, Diff;
> if not IsNumericalSemigroup(S) then
> Error("The argument must be a Numerical Semigroup");
> fi;
> if 1 in S then
> return true;
> fi;
> Min_gen := MinimalGenerators(S);
> Diff := DeltaSet(Min_gen);
> if Length(Diff) = 1 and Diff[1] = 1 then
> return true;
> fi;
> return false;
> end;
function( S ) ... end
\(\diamond\) Let \(S = \{0, 10, 11, 12, 13, 20, 21, 22, 23, 24, 25, 26, 30, \rightarrow \}\), in GAP:
gap> I := [ 0, 10, 11, 12, 13, 20, 21, 22, 23, 24, 25, 26, 30 ];
0, 10, 11, 12, 13, 20, 21, 22, 23, 24, 25, 26, 30 ]
[ gap> S := NumericalSemigroupBySmallElements(I);
<Numerical semigroup>
If we use the function defined above,
gap> IsArithmetic(S);
true
Indeed, its minimal generators are as follows.
gap> MinimalGenerators(S);
10, 11, 12, 13 ] [
References
https://gap-packages.github.io/
numericalsgps
.