Beta 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\}\) ,

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

where \(Ap(S, n_1)\) denotes the Apéry set of \(S\) in \(n_1\) and \(ord(hn_i)\) denotes the order of \(hn_i\) in \(S\). It is said that \(S\) has \(\beta-\)rectangular Apéry set if

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

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

Examples

\(\circ\) Let \(S = \langle 12, 15, 46 \rangle\). The Apéry set of \(S\) in \(n_1 = 12\) is \(Ap(S, 12) = \{0, 61, 122, 15, 76, 137, 30, 91, 92, 45, 46, 107, \rightarrow \}\). With few calculations,

\[ \beta_2 = \max \{h \in \mathbb{N} ~ | ~ 15h \in Ap(S, n_1) ~ \text{ and } ~ ord(15h) = h \} = 3, \]

\[ \beta_3 = \max \{h \in \mathbb{N} ~ | ~ 46h \in Ap(S, n_1) ~ \text{ and } ~ ord(46h) = h \} = 2. \]

Hence,

\[ \left \{ \sum_{i = 2}^e \lambda_i n_i ~ | ~ 0 \le \lambda_i \le \beta_i \right \} = \{0, 15, 2 \cdot 15, 3\cdot 15, 46, 2 \cdot 46, 15 + 46, 2 \cdot 15 + 46, 3 \cdot 15 + 46, 15 + 2 \cdot 46, \]

\[ 2 \cdot 15 + 2 \cdot 46, 3 \cdot 15 + 2 \cdot 46 \} = \{0, 61, 122, 15, 76, 137, 30, 91, 92, 45, 46, 107, \rightarrow \} = Ap(S n_1), \] and \(S\) is \(\beta-\)rectangular.

Examples with GAP

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

\(\diamond\) Let \(S = \langle 20, 50, 54, 78, 115, 116, 119 \rangle\), in GAP:

gap> S := NumericalSemigroup(20, 50, 54, 78, 115, 116, 119);
<Numerical semigroup with 7 generators>

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

gap> IsAperySetBetaRectangular(S);
false

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

gap> BetaConstantsOfNumericalSemigroup := function(S)
>       local e, min_gen, Ap, list_beta, 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_beta := [];
>       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 do
>             h := h + 1;
>           od;
>           Add(list_beta, h-1);
>       od;
>       return list_beta;
> end;
function( S ) ... end

Let \(S = \langle 16, 28, 41, 91, 95, 103 \rangle\), in GAP;

gap> S := NumericalSemigroup(16, 28, 41, 91, 95, 103);
<Numerical semigroup with 6 generators>

From the function defined above,

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

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

gap> RandomBetaRectangularNumericalSemigroup := 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 IsAperySetBetaRectangular(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 := RandomBetaRectangularNumericalSemigroup(100, 30, 5000, 1000);
<Numerical semigroup with 4 generators>
gap> MinimalGenerators(S);
[ 96, 360, 745, 800 ]

Then, \(S = \langle 96, 360, 745, 800 \rangle\) is a \(\beta-\)rectangular numerical semigroup. In fact, is \(\alpha-\)rectangular,

gap> IsAperySetAlphaRectangular(S);
true

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.