Gamma rectangular numerical semigroup

Definition

Let \(S\) be a numerical semigroup minimally generated by \(P(S) = \{n_1, \ldots, n_e\}\) with \(n_1 < n_2 < \ldots < n_e\). It is defined for each \(i \in \{2, \ldots, e\}\) ,

\[ \gamma_i = \max \{h \in \mathbb{N} ~ | ~ h n_i \in Ap(S, n_1) ~ \text{ and } ~ ord(hn_i) = h ~ \text{ and } ~ d_{max}(hn_i) = 1\}, \]

where \(Ap(S, n_1)\) denotes the Apéry set of \(S\) in \(n_1\), \(ord(hn_i)\) denotes the order of \(hn_i\) in \(S\) and \(d_{max}(hn_i)\) denotes the maximal denumerant of \(s\) in \(S\). It is said that \(S\) has \(\gamma-\)rectangular Apéry set if

\[ Ap(S, n_1) = \left \{ \sum_{i = 2}^e \lambda_i n_i ~ | ~ 0 \le \lambda_i \le \gamma_i \right \}. \]

It can be proven that the inclusion \(\subseteq\) is always fulfilled. Moreover, if \(S\) is \(\gamma-\)rectangular, then is a free numerical semigroup.

Examples

\(\circ\) Let \(S = \langle 10, 11, 12 \rangle\). The Apéry set of \(S\) in \(n_1 = 10\) is \(Ap(S, 10) = \{0, 11, 12, 23, 24, 35, 36, 47, 48, 59 \}\). With few calculations,

\[ \gamma_2 = \max \{h \in \mathbb{N} ~ | ~ 11h \in Ap(S, 10) ~ \text{ and } ~ ord(11h) = h ~ \text{ and } ~ d_{max}(11h) = 1\} = 1, \]

\[ \gamma_3 = \max \{h \in \mathbb{N} ~ | ~ 12h \in Ap(S, 10) ~ \text{ and } ~ ord(12h) = h ~ \text{ and } ~ d_{max}(12h) = 1\} = 4. \]

Therefore,

\[ \begin{align*} \left \{ \sum_{i = 2}^e \lambda_i n_i ~ | ~ 0 \le \lambda_i \le \gamma_i \right \} &= \{0, 12, 2 \cdot 12, 3 \cdot 12, 4 \cdot 12, 11, 11 + 12, 11 + 2 \cdot 12, \\ & 11 + 3 \cdot 12, 11 + 4 \cdot 12\} = \{0, 11, 12, 23, 24, 35, 36, 47, 48, 59 \} = Ap(S, 10). \end{align*} \]

Examples with GAP

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

\(\diamond\) Let \(S = \langle 18, 49, 50, 55, 58, 65, 84, 95 \rangle\), in GAP:

gap> S := NumericalSemigroup(18, 49, 50, 55, 58, 65, 84, 95);
<Numerical semigroup with 8 generators>

Given a numerical semigroup \(S\), the function IsAperySetGammaRectangular returns true if \(S\) is \(\gamma-\)rectangular and false otherwise.

gap> IsAperySetGammaRectangular(S);
false

\(\diamond\) Given a numerical semigroup \(S\), the following function returns the constants \(\gamma_2, \ldots, \gamma_e\).

gap> GammaConstantsOfNumericalSemigroup := function(S)
>       local e, min_gen, Ap, list_gamma, i, h, n_i;
>       if not IsNumericalSemigroup(S) then
>           Error("The argument must be a Numerical Semigroup");
>       fi;
>       e := EmbeddingDimension(S);
>       min_gen := MinimalGenerators(S);
>       Ap := AperyList(S);
>       list_gamma := [];
>       for i in [2..e] do
>           h := 0;
>           n_i := min_gen[i];
>           while h*n_i in Ap and  MaximumDegreeOfElementWRTNumericalSemigroup(h*n_i, S) = h and MaximalDenumerant(h*n_i, S) = 1 do
>             h := h + 1;
>           od;
>           Add(list_gamma, h-1);
>       od;
>       return list_gamma;
> end;
function( S ) ... end

Let \(S = \langle 19, 28, 32, 43, 50 \rangle\), in GAP;

gap> S := NumericalSemigroup(19, 28, 32, 43, 50 );
<Numerical semigroup with 5 generators>

From the function defined above,

gap> GammaConstantsOfNumericalSemigroup(S);
[ 3, 3, 2, 1 ]

\(\diamond\) Given \(n,a,b,k\) integers, the following function tries to find in \(k\) attempts a ‘’random’’ \(\gamma-\)rectangular numerical semigroup with no more than \(n\) generators in \([a..b]\).

gap> RandomGammaRectangularNumericalSemigroup := function(n, a, b, k)
>       local i;
>       if not IsPosInt(n) then
>           Error("First argument must be a positive integer");
>       fi;
>       if not IsPosInt(a) then
>           Error("Second argument must be a positive integer");
>       fi;
>       if not IsPosInt(b) then
>           Error("Third argument must be a positive integer");
>       fi;
>       if not IsPosInt(k) then
>           Error("Fourth argument must be a positive integer");
>       fi;
> 
>       if a >= b then
>           Error("The second argument must be smaller than the third argument");
>       fi;
>       for i in [1..k] do
>         S := RandomNumericalSemigroup(n, a, b);
>         if IsAperySetGammaRectangular(S) then
>             return S;
>         fi;
>       od;
>       return fail;
> end;
function( n, a, b, k ) ... end

Let us consider \(n = 100, a = 30, b = 5000\) and \(k = 1000\),

gap> S := RandomGammaRectangularNumericalSemigroup(100, 30, 5000, 1000);
<Numerical semigroup with 4 generators>
gap> MinimalGenerators(S);
[ 18, 27, 29, 30 ]

Then, \(S = \langle 18, 27, 29, 30 \rangle\) is a \(\gamma-\)rectangular numerical semigroup and is neither \(\beta-\)rectangular nor \(\alpha-\)rectangular numerical semigroup.

gap> IsAperySetAlphaRectangular(S);
false
gap> IsAperySetBetaRectangular(S);
false

References

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.