Half-factorial monoid

Definition

Let \(A\) be a submonoid of \(\mathbb{N}\). It is said that \(A\) is a half-factorial monoid if the cardinality of \(\mathbf{L}(a)\) is one for all \(a \in A\), where \(\mathbf{L}(a)\) denotes the set of lengths of \(a\) in \(A\). Since every submonoid of \(\mathbb{N}\) is minimally generated, the set of lengths of an element is well defined.

Examples

\(\circ\) Let \(S = \langle n_1, n_2, \ldots, n_p \rangle\) be a numerical semigroup. Let us suppose that \(S\) is half-factorial and prove that necessarily \(S = \mathbb{N}\). If \(p = 1\), the result is obvious. Let us suppose \(p > 1\). In particular, \(n_1 \ne n_2\), and

\[ n_1n_2 = n_2 \cdot n_1 + 0 \cdot n_2 = 0 \cdot n_1 + n_1 \cdot n_2, \]

which implies that \((n_2, 0),(0, n_1) \in \mathbf{Z}(n_1 n_2)\), where \(\mathbf{Z}(n_1n_2)\) denotes the set of factorizations of \(n_1n_2\). That means \(n_1, n_2 \in \mathbf{L}(n_1n_2)\) and by hypothesis, \(\mathbf{L}(n_1 n_2)\) has cardinality \(1\), consequently, \(n_1 = n_2\), which is a contradiction.

\(\circ\) Let \(A = \langle 4 \rangle \subseteq \mathbb{N}\). For every \(a \in A\), there exists an unique \(k \in \mathbb{N}\) such that \(a = 4k\), therefore \(\mathbf{Z}(a)\) has one element for all \(a \in A\) and \(A\) is half-factorial.

Examples with GAP

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

\(\diamond\) Given a list of integers \(Is\) and an element \(n\), the function LengthsOfFactorizationsIntegerWRTList returns the set of lengths of the factorizations of \(n\) in terms of the elements in \(Is\).

gap> LengthsOfFactorizationsIntegerWRTList(120, [10, 20, 35]);
[ 5, 6, 7, 8, 9, 10, 11, 12 ]

References

Assi, Abdallah, Marco D’Anna, and Pedro A. Garcı́a-Sánchez. 2020. Numerical Semigroups and Applications. Vol. 3. RSME Springer Series. Springer, [Cham]. https://doi.org/10.1007/978-3-030-54943-5.
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.