Numerical semigroup associated to a set of rational numbers

Definition

Let \(A\) be a subset of the set of non-negative rational numbers \(\mathbb{Q}_0^+\) and \(\langle A \rangle\) the submonoid of \(\mathbb{Q}_0^+\) generated by \(A\). It is defined the numerical semigroup associated to \(A\), denoted by \(S(A)\), as \(S(A) = \langle A \rangle \cap \mathbb{N}\).

It can be proven that \(S(A)\) is a submonoid for any subset \(A \subseteq \mathbb{Q}_0^+\). If \([\lambda, \mu]\) denotes the closed intervals of rational numbers for any \(\lambda, \mu \in \mathbb{Q}_0^+\), then

\[ S(a,b,c) = S\left( \left[ \frac{b}{a}, \frac{b}{a-c} \right] \right) \]

for any \(a, b, c\) positive integers with \(c < a\), where \(S(a,b,c)\) denotes the set of solutions of the proportionally modular Diophantine inequality \(ax ~ (mod ~ b) \le cx\).

Examples

\(\circ\) Let \(A = \left [ \frac{70}{15}, \frac{70}{8} \right ]\). If we consider \(a = 15, b = 70\) and \(c = 7\), then

\[ S(A) = S\left( \left[ \frac{70}{15}, \frac{70}{15-7} \right] \right) = S(15, 70, 7) = \{0, 5, 6, 7, 8, 10, \rightarrow\}. \]

Examples with GAP

The following examples are made with the package NumericalSgps in GAP.

\(\diamond\) Given \(\lambda, \mu \in \mathbb{Q}_0^+\) rationals numbers, the function NumericalSemigroupByInterval returns the numerical semigroup of numerators of all rational numbers in the interval \([\lambda, \mu]\).

gap> S := NumericalSemigroupByInterval(7/5, 7/4);
<Proportionally modular numerical semigroup satisfying 35x mod 49 <= 7x >

The function SmallElements returns a list with the left elements and the conductor of the numerical semigroup.

gap> SmallElements(S);
[ 0, 3, 5 ]

The numerical semigroup obtained is \(S = \{0, 3, 5, \rightarrow\}\). It can be checked if a numerical semigroup has been generated by a closed interval with the function IsNumericalSemigroupByInterval.

gap> S := NumericalSemigroupByInterval(23/5, 26/5);
<Proportionally modular numerical semigroup satisfying
130x mod 598 <= 15x >
gap> l := MinimalGenerators(S);
[ 5, 14, 23, 26 ]
gap> T := NumericalSemigroup(l);
<Numerical semigroup with 4 generators>
gap> IsNumericalSemigroupByInterval(T);
false

\(\diamond\) Given \(\lambda, \mu \in \mathbb{Q}_0^+\) rationals numbers, the function NumericalSemigroupByOpenInterval returns the numerical semigroup of numerators of all rational numbers in the opened interval of rational numbers \((\lambda, \mu)\).

gap> S := NumericalSemigroupByOpenInterval(23/5, 11/2);
<Numerical semigroup>
gap> SmallElements(S);
[ 0, 5, 10, 14, 15, 16, 19, 20, 21, 24 ]

The numerical semigroup is \(S = \{0, 5, 10, 14, 15, 16, 19, 20, 21, 24, \rightarrow\}\).

It can be checked if a numerical semigroup has been generated by an open interval with the function IsNumericalSemigroupByOpenInterval.

gap> S := NumericalSemigroupByOpenInterval(23/5, 26/5);
<Numerical semigroup>
gap> IsNumericalSemigroupByOpenInterval(S);
true
gap> l := MinimalGenerators(S);
[ 5, 14, 31, 37 ]
gap> T := NumericalSemigroup(l);
<Numerical semigroup with 4 generators>
gap> IsNumericalSemigroupByOpenInterval(T);
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.
Rosales, J. C., and P. A. Garcı́a-Sánchez. 2009. Numerical Semigroups. Springer.