Factorization homomorphism

Definition

Let \(S\) be a numerical semigroup with minimal set of generators \(\{n_1, n_2, \ldots, n_p\}\). It is defined the factorization homomorphism of \(S\) as the application \(\phi\) such that

\[ \phi: \mathbb{N}^p \to S, ~~~ \phi(a_1, a_2, \ldots, a_p) = \sum_{i = 1}^p a_i n_i. \]

It can be proven that \(\phi\) is a monoid epimorphism, and consequently \(S\) is isomorphic to \(\mathbb{N}^p / \ker(\phi)\) by the first isomorphism theorem, where \(\ker(\phi)\) is the kernel congruence of \(\phi\),

\[ \ker(\phi) = \{(a, b) \in \mathbb{N}^p \times \mathbb{N}^p ~ | ~ \phi(a) = \phi(b)\}. \]

Examples

\(\circ\) Let \(S = \langle 10, 17, 21 \rangle\). The factorization homomorphism of \(S\) is defined as

\[ \phi: \mathbb{N}^3 \to S ~ ; ~ (a_1, a_2, a_3) \to 10a_1 + 17a_2 + 21a_3. \]

Minimal generators only have a single preimage by definition of minimal set of generators, which is \(n_i = \phi(e^i)\) with \(e_i^i = 1\) and \(e_i^j = 0\) for all \(j \ne i\). Furthermore, there are always elements with more than one preimage. In this case, for example \(68 = 10 \cdot 0 + 17 \cdot 4 + 21 \cdot 0 = \phi(0, 4, 0)\) and \(68 = 10 \cdot 3 + 17 \cdot 1 + 21 \cdot 1 = \phi(3,1,1)\).

Examples with GAP

Nowadays, there are no functions in package NumericalSgps related to factorization homomorphism of a numerical semigroup. However, given a numerical semigroup \(S\) and a list of integers \(I\), the following function returns the image by \(\phi_S\) of the tuple defined by the list \(I\) .

gap> ImageHomomorfismOfNumericalSemigroup := function(S, I)
>       local Min_gen, p, j, sum, a;
>       if not IsNumericalSemigroup(S) then
>               Error("First argument must be a Numerical Semigroup");
>       fi;
>       if not IsList(I) or I = [] then
>               Error("Second argument must be a non-empty list of positive integers");
>       fi;
>       Min_gen := MinimalGenerators(S);
>       p := Length(Min_gen);
>       if not p = Length(I) then
>               Error("Length of minimal system of generators and length of second argument are different");
>       fi;
>       sum := 0;
>       j := 1;
>       for a in I do
>               if not IsInt(a) then
>                     Error("Second argument must be a list of positive integers");
>               fi;
>               if a < 0 then
>                     Error("Second argument must be a list of positive integers");
>               fi;
>               sum := sum + a * Min_gen[j];
>               j := j + 1;
>       od;
>       return sum;
> end;
function( S, Is ) ... end

\(\diamond\) Let \(S = \langle 14, 30, 71, 73 \rangle\), in GAP:

gap> S := NumericalSemigroup(14, 30, 71, 73);
<Numerical semigroup with 4 generators>

The image of \((0, 1, 2, 1)\) by \(\phi_S\) is as follows.

gap> ImageHomomorfismOfNumericalSemigroup(S, [0, 1, 2, 1]);
245

Then, \(0 \cdot 14 + 1 \cdot 30 + 2 \cdot 71 + 1 \cdot 73 = 245\).

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.