Numerical semigroup admitting a pattern

Definition

Let \(S\) be a numerical semigroup and let \(a_1 x_1 + \cdots a_n x_n\) be a pattern \(P\). It is said that \(S\) admits the pattern \(P\) if for every \(s_1, \ldots, s_n \in S\) with \(s_1 \ge s_2 \ge \ldots \ge s_n\), the element \(a_1s_1 + \cdots + a_n s_n\) belongs to \(S\). It is denoted by \(\mathcal{S}(P)\) the set of all numerical semigroups admitting the pattern \(P\).

Examples

\(\circ\) The set \(\mathcal{P}(x_1 + x_2 - x_3)\) is the set of Arf numerical semigroups.

\(\circ\) Let \(a_1x_1 + \cdots + a_nx_n\) be a pattern \(P\). Let us prove that \(\mathbb{N} \in \mathcal{S}(P)\) if, and only if, \(\mathcal{S}(P)\) is non-empty. The sufficient condition is obvious. On the other hand, if the set is non-empty, there exists \(S \in \mathcal{S}(P)\) such that for every \(s_1, \ldots, s_n \in S\) with \(s_1 \ge s_2 \ge \ldots \ge s_n\), the element \(a_1s_1 + \cdots + a_n s_n\) belongs to \(S\). If we take \(s = s_1 = s_2 = \cdots = s_n \in S^*\), since \(a_1 s_1 + \cdots + a_n s_n \in S\), it must be \(\sum_{i = 1}^n a_i \ge 0\). Then, given \(m_1 \ge m_2 \ge \cdots \ge m_n\) non-negative integers, it can be proven by induction that

\[ a_1 m_1 + \cdots + a_n m_n \ge a_1 m_n + \cdots + a_nm_n = \left( \sum_{i = 0}^n a_i \right) m_n \ge 0 \]

Therefore, \(\mathbb{N} \in \mathcal{S}(P)\).

Examples with GAP

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

\(\diamond\) Let \(S = \langle 4, 7, 10 \rangle\), in GAP:

gap> S := NumericalSemigroup(4, 7, 10);
<Numerical semigroup with 3 generators>

Given a strongly admissible pattern \(p(x_1, \ldots, x_n) = a_1x_1 + \cdots + a_nx_n\) and a numerical semigroup \(S\), the function ApplyPatternToNumericalSemigroup returns a list \([d, p(S)/d]\): \(d\) is the great common divisor of \(a_1, \ldots, a_n\) and \(p(S)/d = \{s'/d, ~ | ~ s' \in p(S)\}\), where \(p(S) = \{p(s_1, \ldots, s_n) ~ | ~ s_1 \ge \cdots \ge s_n, ~~ s_i \in S\}\).

gap> p := [1, 3, -1];
[ 1, 3, -1 ]
gap> L := ApplyPatternToNumericalSemigroup(p, S);
[ 1, <Ideal of numerical semigroup> ]
gap> pS := L[2];
<Ideal of numerical semigroup>
gap> SmallElements(pS);
[ 0, 4, 7, 8, 10, 11, 12, 14 ]

Then, \(p(S) = \{ 0, 4, 7, 8, 10, 11, 12, 14, \rightarrow\}\). Moreover, if \(p\) is a strongly admissible pattern and \(S, T\) are numerical semigroups, the function IsAdmittedPatternByNumericalSemigroup returns true if \(p(S) \subseteq T\). In particular, if \(T = S\), this function returns true if \(S\) admits the pattern \(p\).

gap> IsAdmittedPatternByNumericalSemigroup(p, S, 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.
Rosales, J. C., and P. A. Garcı́a-Sánchez. 2009. Numerical Semigroups. Springer.