Nu-sequence

Definition

Let \(S = \{s_0 = 0 < s_1 < s_2 ...\}\) be a numerical semigroup. It is defined the \(\nu-\)sequence of \(S\), as the sequence \((\nu_0, \nu_1, \nu_2 \ldots)\) such that for all \(i \in \mathbb{N}\),

\[ \nu_i = |D(s_i)| = |\{x \in S ~ | ~ s_i - x \in S\}|, \]

that is, \(\nu_i\) is the cardinal of the set of divisors of the \(i-\)th element of \(S\).

If \(g(S)\) and \(C(S)\) are the genus and the conductor of \(S\) respectively, it can be proven that the first \(2C(S) - g(S)\) elements of the \(\nu-\)sequence determine uniquely the numerical semigroup. Moreover, for all \(n \ge 2C(S) - g(S)\) it holds that \(\nu_{n+1} = \nu_n + 1\).

Examples

\(\circ\) Let \(S = \langle 4, 6, 11 \rangle = \{ 0, 4, 6, 8, 10, 11, 12, 14, \rightarrow \}\). Let us compute \(\nu_0, \nu_1, \nu_2, \nu_3\) and \(\nu_4\). We have that \(s_0 = 0, s_1 = 4, s_2 = 6, s_3 = 8\) and \(s_4 = 10\) and

\[ D(0) = \{0\}, ~~ D(4) = \{0, 4\}, ~~ D(6) = \{0, 6\}, ~~ D(8) = \{0, 4, 8\}, ~~ D(10) = \{0, 4, 6, 10\}, \]

concluding that \((\nu_0, \nu_1, \nu_2, \nu_3, \nu_4) = (1, 2, 2, 3, 4)\). The conductor of \(S\) is \(C(S) = 14\) and the set of gaps is \(G(S) = \{1, 2, 3, 5, 7, 9, 13\}\), and then \(g(S) = |G(S)| = 7\). Therefore, the first \(2C(S) - g(S) = 21\) elements of the \(\nu-\)sequences determine uniquely the numerical semigroup, which are

\[ (1, 2, 2, 3, 4, 2, 5, 6, 4, 7, 4, 8, 6, 9, 8, 11, 10, 11, 12, 14, 14 ). \]

Examples with GAP

The following example is made with the package NumericalSgps in GAP.

\(\diamond\) Let \(S = \langle 22, 37, 42, 72, 113, 139 \rangle\), in GAP:

gap> S := NumericalSemigroup(22, 37, 42, 72, 113, 139);
<Numerical semigroup with 6 generators>

Given a numerical semigroup \(S\) and two integers \(a,b\) with \(a \le b\), the following function returns \((\nu_a, \nu_{a+1}, \ldots, \nu_b)\). If only a numerical semigroup has been given, the function returns the first \(2C(S) - g(S)\) elements of the \(\nu-\)sequence of \(S\).

gap> NuNS := function(S, I...)
>     local n, a, b, list_nu, i;
>       if not IsNumericalSemigroup(S) then
>           Error("The argument must be a Numerical Semigroup");
>       fi;
>       n := Length(I);
>       if n = 1 or n > 2 then
>           Error("If more arguments are given, they must be two elements");
>       fi;
>       if n = 0 then
>           a := 0;
>           b := 2*Conductor(S) - Genus(S);
>       fi;
>       if n = 2 then
>           a := I[1];
>           b := I[2];
>           if a > b then
>               Error("If more arguments are given, the first argument given must be less or equal to the second argument given");
>           fi;
>       fi;
>       list_nu := [];
>       for i in [a..b] do
>         Add(list_nu, Length(DivisorsOfElementInNumericalSemigroup (S, S[i])));
>       od;
>       return list_nu;
> end;
function( S, I... ) ... end

Given a list of integers \(I\) representing the first \(2C(S) - g(S)\) elements of a \(\nu-\)sequence, the function NumericalSemigroupByNuSequence computes the unique numerical semigroup such that its \(\nu-\)sequence is \(I \cup \{k+1, k+2, \ldots\}\), where \(k\) is the last element of \(I\). On the other hand, the function Conductor, Genus and DivisorsOfElementInNumericalSemigroup compute the conductor, genus and set of divisors, respectively.

gap> c := Conductor(S);
172
gap> g := Genus(S);
105
gap> Nuseq := NuNS(S, 1, 2*c - g);
[ 1, 2, 2, 2, 3, 4, 4, 4, 2, 3, 4, 6, 3, 6, 5, 4, 6, 8, 8, 6, 8, 4, 6, 4, 2, 4, 10, 9, 6, 12,
  10, 4, 9, 10, 8, 7, 8, 4, 8, 16, 2, 12, 12, 3, 16, 6, 12, 11, 14, 8, 12, 16, 8, 14, 6, 6,
  17, 22, 4, 15, 8, 18, 6, 20, 15, 14, 18, 19, 16, 14, 24, 11, 20, 12, 8, 26, 8, 28, 12, 18,
  20, 6, 26, 17, 24, 26, 16, 27, 12, 24, 28, 16, 34, 20, 26, 24, 10, 35, 16, 34, 26, 21, 32,
  12, 34, 30, 30, 37, 20, 36, 24, 31, 40, 27, 44, 33, 32, 39, 24, 46, 30, 41, 42, 31, 44, 28,
  42, 45, 36, 50, 36, 45, 40, 38, 54, 42, 54, 49, 38, 54, 38, 57, 48, 50, 58, 43, 56, 47, 56,
  60, 48, 63, 56, 58, 58, 55, 68, 59, 64, 67, 58, 69, 58, 68, 68, 65, 74, 63, 68, 68, 70, 77,
  68, 77, 76, 71, 76, 74, 84, 78, 76, 85, 78, 85, 80, 85, 88, 83, 90, 85, 88, 89, 88, 94, 90,
  95, 96, 93, 94, 95, 100, 99, 98, 103, 100, 101, 102, 105, 108, 105, 106, 107, 108, 110,
  110, 113, 112, 113, 116, 115, 116, 117, 118, 120, 120, 123, 122, 123, 124, 125, 128, 127,
  128, 129, 130, 131, 132, 134, 134 ]
gap> S = NumericalSemigroupByNuSequence(Nuseq);
true

References

Bras-Amorós, Maria. n.d. “Numerical Semigroups and Codes.” In Algebraic Geometry Modeling in Information Theory, 167–218. https://doi.org/10.1142/9789814335768_0005.
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.