GAP (NumericalSgps) - Chapter 9: Nonunique invariants for factorizations in numerical semigroups

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 A B C Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

9 Nonunique invariants for factorizations in numerical semigroups
9.1 Factorizations in Numerical Semigroups
9.1-1 FactorizationsIntegerWRTList
9.1-2 FactorizationsElementWRTNumericalSemigroup
9.1-3 FactorizationsElementListWRTNumericalSemigroup
9.1-4 RClassesOfSetOfFactorizations
9.1-5 LShapesOfNumericalSemigroup
9.1-6 DenumerantOfElementInNumericalSemigroup
9.2 Invariants based on lengths
9.2-1 LengthsOfFactorizationsIntegerWRTList
9.2-2 LengthsOfFactorizationsElementWRTNumericalSemigroup
9.2-3 ElasticityOfFactorizationsElementWRTNumericalSemigroup
9.2-4 ElasticityOfNumericalSemigroup
9.2-5 DeltaSetOfSetOfIntegers
9.2-6 DeltaSetOfFactorizationsElementWRTNumericalSemigroup
9.2-7 DeltaSetPeriodicityBoundForNumericalSemigroup
9.2-8 DeltaSetPeriodicityStartForNumericalSemigroup
9.2-9 DeltaSetListUpToElementWRTNumericalSemigroup
9.2-10 DeltaSetUnionUpToElementWRTNumericalSemigroup
9.2-11 DeltaSetOfNumericalSemigroup
9.2-12 MaximumDegreeOfElementWRTNumericalSemigroup
9.2-13 MaximalDenumerantOfElementInNumericalSemigroup
9.2-14 MaximalDenumerantOfSetOfFactorizations
9.2-15 MaximalDenumerantOfNumericalSemigroup
9.2-16 AdjustmentOfNumericalSemigroup
9.2-17 IsAdditiveNumericalSemigroup
9.2-18 IsSuperSymmetricNumericalSemigroup
9.3 Invariants based on distances
9.3-1 CatenaryDegreeOfSetOfFactorizations
9.3-2 AdjacentCatenaryDegreeOfSetOfFactorizations
9.3-3 EqualCatenaryDegreeOfSetOfFactorizations
9.3-4 MonotoneCatenaryDegreeOfSetOfFactorizations
9.3-5 CatenaryDegreeOfElementInNumericalSemigroup
9.3-6 TameDegreeOfSetOfFactorizations
9.3-7 CatenaryDegreeOfNumericalSemigroup
9.3-8 EqualPrimitiveElementsOfNumericalSemigroup
9.3-9 EqualCatenaryDegreeOfNumericalSemigroup
9.3-10 MonotonePrimitiveElementsOfNumericalSemigroup
9.3-11 MonotoneCatenaryDegreeOfNumericalSemigroup
9.3-12 TameDegreeOfNumericalSemigroup
9.3-13 TameDegreeOfElementInNumericalSemigroup
9.4 Primality
9.4-1 OmegaPrimalityOfElementInNumericalSemigroup
9.4-2 OmegaPrimalityOfElementListInNumericalSemigroup
9.4-3 OmegaPrimalityOfNumericalSemigroup
9.5 Homogenization of Numerical Semigroups
9.5-1 BelongsToHomogenizationOfNumericalSemigroup
9.5-2 FactorizationsInHomogenizationOfNumericalSemigroup
9.5-3 HomogeneousBettiElementsOfNumericalSemigroup
9.5-4 HomogeneousCatenaryDegreeOfNumericalSemigroup
9.6 Divisors, posets
9.6-1 MoebiusFunctionAssociatedToNumericalSemigroup
9.6-2 DivisorsOfElementInNumericalSemigroup
9.7 Feng-Rao distances and numbers
9.7-1 FengRaoDistance
9.7-2 FengRaoNumber

### 9 Nonunique invariants for factorizations in numerical semigroups

#### 9.1 Factorizations in Numerical Semigroups

Let \( S \) be a numerical semigroup minimally generated by \( \{m_1,\ldots,m_n\} \). A factorization of an element \(s\in S\) is an n-tuple \( a=(a_1,\ldots,a_n) \) of nonnegative integers such that \( n=a_1 n_1+\cdots+a_n m_n\). The length of \(a\) is \(|a|=a_1+\cdots+a_n\). Given two factorizations \(a\) and \(b\) of \(n\), the distance between \(a\) and \(b\) is \(d(a,b)=\max \{ |a-\gcd(a,b)|,|b-\gcd(a,b)|\}\), where \(\gcd((a_1,\ldots,a_n),(b_1,\ldots,b_n))=(\min(a_1,b_1),\ldots,\min(a_n,b_n))\).

If \(l_1>\cdots > l_k\) are the lengths of all the factorizations of \(s \in S\), the Delta set associated to \(s\) is \(\Delta(s)=\{l_1-l_2,\ldots,l_k-l_{k-1}\}\).

The catenary degree of an element in \(S\) is the least positive integer \(c\) such that for any two of its factorizations \(a\) and \(b\), there exists a chain of factorizations starting in \(a\) and ending in \(b\) and so that the distance between two consecutive links is at most \(c\). The catenary degree of \(S\) is the supremum of the catenary degrees of the elements in \(S\).

The tame degree of \(S\) is the least positive integer \(t\) such that for any factorization \(a\) of an element \(s\) in \(S\), and any \(i\) such that \(s-m_i\in S\), there exists another factorization \(b\) of \(s\) so that the distance to \(a\) is at most \(t\) and \(b_i\not = 0\).

The \(\omega\)-primality of an element \(s\) in \(S\) is the least positive integer \(k\) such that if \((\sum_{i\in I} s_i)-s\in S, s_i\in S\), then there exists \(\Omega\subseteq I\) with cardinality \(k\) such that \((\sum_{i\in \Omega} s_i)-s\in S\). The \(\omega\)-primality of \(S\) is the maximum of the \(\omega\)-primality of its minimal generators.

The basic properties of these constants can be found in [GHK06]. The algorithm used to compute the catenary and tame degree is an adaptation of the algorithms appearing in [CGSL+06] for numerical semigroups (see [CGSD07]). The computation of the elasticity of a numerical semigroup reduces to \(m/n\) with \(m\) the multiplicity of the semigroup and \(n\) its largest minimal generator (see [CHM06] or [GHK06]).

##### 9.1-1 FactorizationsIntegerWRTList

`‣ FactorizationsIntegerWRTList`( n, ls ) | ( function )

ls is a list of integers and n an integer. The output is the set of factorizations of n in terms of the elements in the list ls. This function uses RestrictedPartitions.

    gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
    [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ],
      [ 5, 2, 0, 1 ], [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]

##### 9.1-2 FactorizationsElementWRTNumericalSemigroup

`‣ FactorizationsElementWRTNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup and n a nonnegative integer. The output is the set of factorizations of n in terms of the minimal generating set of S.

    gap> s:=NumericalSemigroup(101,113,196,272,278,286);
    <Numerical semigroup with 6 generators>
    gap> FactorizationsElementWRTNumericalSemigroup(1100,s);
    [ [ 0, 8, 1, 0, 0, 0 ], [ 0, 0, 0, 2, 2, 0 ], [ 5, 1, 1, 0, 0, 1 ],
      [ 0, 2, 3, 0, 0, 1 ] ]

##### 9.1-3 FactorizationsElementListWRTNumericalSemigroup

`‣ FactorizationsElementListWRTNumericalSemigroup`( l, S ) | ( function )

S is a numerical semigroup and l a list of elements of S.

Computes the factorizations of all the elements in l.

    gap> s:=NumericalSemigroup(10,11,13);
    <Numerical semigroup with 3 generators>
    gap> FactorizationsElementListWRTNumericalSemigroup([100,101,103],s);
    [ [ [ 0, 2, 6 ], [ 1, 7, 1 ], [ 3, 4, 2 ], [ 5, 1, 3 ], [ 10, 0, 0 ] ],
      [ [ 0, 8, 1 ], [ 1, 0, 7 ], [ 2, 5, 2 ], [ 4, 2, 3 ], [ 9, 1, 0 ] ],
      [ [ 0, 7, 2 ], [ 2, 4, 3 ], [ 4, 1, 4 ], [ 7, 3, 0 ], [ 9, 0, 1 ] ] ]

##### 9.1-4 RClassesOfSetOfFactorizations

`‣ RClassesOfSetOfFactorizations`( ls ) | ( function )

ls is a set of factorizations (a list of lists of nonnegative integers with the same length). The output is the set of \(\mathcal R\)-classes of this set of factorizations as defined in Chapter 7 of [RGS09].

    gap> s:=NumericalSemigroup(10,11,19,23);;
    gap> BettiElementsOfNumericalSemigroup(s);
    [ 30, 33, 42, 57, 69 ]
    gap> FactorizationsElementWRTNumericalSemigroup(69,s);
    [ [ 5, 0, 1, 0 ], [ 2, 1, 2, 0 ], [ 0, 0, 0, 3 ] ]
    gap> RClassesOfSetOfFactorizations(last);
    [ [ [ 2, 1, 2, 0 ], [ 5, 0, 1, 0 ] ], [ [ 0, 0, 0, 3 ] ] ]

##### 9.1-5 LShapesOfNumericalSemigroup

`‣ LShapesOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup. The output is the number of LShapes associated to S. These are ways of arranging the set of factorizations of the elements in the Apéry set of the largest generator, so that if one factorization \(x\) is chosen for \(w\) and \(w-w'\in S\), then only the factorization of \(x'\) of \(w'\) with \(x'\le \) can be in the LShape (and if there is no such a factorization, then we have no LShape with \(x\) in it), see [AGGS10].

    gap> s:=NumericalSemigroup(4,6,9);;
    gap> LShapesOfNumericalSemigroup(s);
    [ [ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ], [ 2, 0 ], [ 1, 1 ], [ 0, 2 ], [ 2, 1 ],
          [ 1, 2 ], [ 2, 2 ] ],
      [ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ], [ 2, 0 ], [ 1, 1 ], [ 3, 0 ], [ 2, 1 ],
          [ 4, 0 ], [ 5, 0 ] ] ]

##### 9.1-6 DenumerantOfElementInNumericalSemigroup

`‣ DenumerantOfElementInNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup and n a positive integer. The output is the number of factorizations of n in terms of the minimal generating set of S.

    gap> s:=NumericalSemigroup(101,113,195,272,278,286);;
    gap> DenumerantOfElementInNumericalSemigroup(1311,s);
    6

#### 9.2 Invariants based on lengths

##### 9.2-1 LengthsOfFactorizationsIntegerWRTList

`‣ LengthsOfFactorizationsIntegerWRTList`( n, ls ) | ( function )

ls is a list of integers and n an integer. The output is the set of lengths of the factorizations of n in terms of the elements in ls.

    gap> LengthsOfFactorizationsIntegerWRTList(100,[11,13,15,19]);
    [ 6, 8 ]

##### 9.2-2 LengthsOfFactorizationsElementWRTNumericalSemigroup

`‣ LengthsOfFactorizationsElementWRTNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup and n a nonnegative integer. The output is the set of lengths of the factorizations of n in terms of the minimal generating set of S.

    gap> s:=NumericalSemigroup(101,113,196,272,278,286);
    <Numerical semigroup with 6 generators>
    gap> LengthsOfFactorizationsElementWRTNumericalSemigroup(1100,s);
    [ 4, 6, 8, 9 ]

##### 9.2-3 ElasticityOfFactorizationsElementWRTNumericalSemigroup

`‣ ElasticityOfFactorizationsElementWRTNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup and n a positive integer. The output is the maximum length divided by the minimum length of the factorizations of n in terms of the minimal generating set of S.

    gap> s:=NumericalSemigroup(101,113,196,272,278,286);
    <Numerical semigroup with 6 generators>
    gap> ElasticityOfFactorizationsElementWRTNumericalSemigroup(1100,s);
    9/4

##### 9.2-4 ElasticityOfNumericalSemigroup

`‣ ElasticityOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup. The output is the elasticity of S.

    gap> s:=NumericalSemigroup(101,113,196,272,278,286);
    <Numerical semigroup with 6 generators>
    gap> ElasticityOfNumericalSemigroup(s);
    286/101

##### 9.2-5 DeltaSetOfSetOfIntegers

`‣ DeltaSetOfSetOfIntegers`( ls ) | ( function )

ls is list of integers. The output is the Delta set of the elements in ls, that is, the set of differences of consecutive elements in the list.

    gap> LengthsOfFactorizationsIntegerWRTList(100,[11,13,15,19]);
    [ 6, 8 ]
    gap> DeltaSetOfSetOfIntegers(last);
    [ 2 ]

##### 9.2-6 DeltaSetOfFactorizationsElementWRTNumericalSemigroup

`‣ DeltaSetOfFactorizationsElementWRTNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup and n a nonnegative integer. The output is the Delta set of the factorizations of n in terms of the minimal generating set of S.

    gap> s:=NumericalSemigroup(101,113,196,272,278,286);
    <Numerical semigroup with 6 generators>
    gap> DeltaSetOfFactorizationsElementWRTNumericalSemigroup(1100,s);
    [ 1, 2 ]

##### 9.2-7 DeltaSetPeriodicityBoundForNumericalSemigroup

`‣ DeltaSetPeriodicityBoundForNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup.

Computes the bound were the periodicity starts for Delta sets of the elements in S; see [GGMFVT15].

    gap> s:=NumericalSemigroup(5,7,11);;
    gap> DeltaSetPeriodicityBoundForNumericalSemigroup(s);
    60

##### 9.2-8 DeltaSetPeriodicityStartForNumericalSemigroup

`‣ DeltaSetPeriodicityStartForNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup.

Computes the element were the periodicity starts for Delta sets of the elements in S.

    gap> s:=NumericalSemigroup(5,7,11);;
    gap> DeltaSetPeriodicityStartForNumericalSemigroup(s);
    21

##### 9.2-9 DeltaSetListUpToElementWRTNumericalSemigroup

`‣ DeltaSetListUpToElementWRTNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup, n a nonnegative integer.

Computes the Delta sets of the integers up to (and including) n, if an integer is not in S, the corresponding Delta set is empty.

    gap> s:=NumericalSemigroup(5,7,11);;
    gap> DeltaSetListUpToElementWRTNumericalSemigroup(31,s);
    [ [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ],
      [  ], [  ], [  ], [  ], [  ], [  ], [  ], [  ], [ 2 ], [  ], [  ], [ 2 ], [  ],
      [ 2 ], [  ], [ 2 ], [ 2 ], [  ] ]

##### 9.2-10 DeltaSetUnionUpToElementWRTNumericalSemigroup

`‣ DeltaSetUnionUpToElementWRTNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup, n a nonnegative integer.

Computes the union of the delta sets of the elements of S up to and including n, using a ring buffer to conserve memory.

    gap> s:=NumericalSemigroup(5,7,11);;
    gap> DeltaSetUnionUpToElementWRTNumericalSemigroup(60,s);
    [ 2 ]

##### 9.2-11 DeltaSetOfNumericalSemigroup

`‣ DeltaSetOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup.

Computes the Delta set of S.

    gap> s:=NumericalSemigroup(5,7,11);;
    gap> DeltaSetOfNumericalSemigroup(s);
    [ 2 ]

##### 9.2-12 MaximumDegreeOfElementWRTNumericalSemigroup

`‣ MaximumDegreeOfElementWRTNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup and n a nonnegative integer. The output is the maximum length of the factorizations of n in terms of the minimal generating set of S.

    gap> s:=NumericalSemigroup(101,113,196,272,278,286);
    <Numerical semigroup with 6 generators>
    gap> MaximumDegreeOfElementWRTNumericalSemigroup(1100,s);
    9

##### 9.2-13 MaximalDenumerantOfElementInNumericalSemigroup

`‣ MaximalDenumerantOfElementInNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup and n a positive integer. The output is the number of factorizations of n in terms of the minimal generating set of S with maximal length.

    gap> s:=NumericalSemigroup(101,113,196,272,278,286);;
    gap> MaximalDenumerantOfElementInNumericalSemigroup(1100,s);
    1
    gap> MaximalDenumerantOfElementInNumericalSemigroup(1311,s);
    2

##### 9.2-14 MaximalDenumerantOfSetOfFactorizations

`‣ MaximalDenumerantOfSetOfFactorizations`( ls ) | ( function )

ls is list of factorizations (a list of lists of nonnegative integers with the same length). The output is number of elements in ls with maximal length.

    gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
    [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ],
      [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
    gap> MaximalDenumerantOfSetOfFactorizations(last);
    6

##### 9.2-15 MaximalDenumerantOfNumericalSemigroup

`‣ MaximalDenumerantOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup. The output is the maximal denumerant of S, that is, the maximum of the maximal denumerant of the elements in S (see [BH13]).

    gap> s:=NumericalSemigroup(101,113,196,272,278,286);;
    gap> MaximalDenumerantOfNumericalSemigroup(s);
    4

##### 9.2-16 AdjustmentOfNumericalSemigroup

`‣ AdjustmentOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup. The output is the adjustment of S as defined in [BH13].

    gap> s:=NumericalSemigroup(101,113,196,272,278,286);;
    gap> AdjustmentOfNumericalSemigroup(s);
    [ 0, 12, 24, 36, 48, 60, 72, 84, 95, 96, 107, 108, 119, 120, 131, 132, 143,
      144, 155, 156, 167, 168, 171, 177, 179, 180, 183, 185, 189, 190, 191, 192,
      195, 197, 201, 203, 204, 207, 209, 213, 215, 216, 219, 221, 225, 227, 228,
      231, 233, 237, 239, 240, 243, 245, 249, 251, 252, 255, 257, 261, 263, 264,
      266, 267, 269, 273, 275, 276, 279, 280, 281, 285, 287, 288, 292, 293, 299,
      300, 304, 305, 311, 312, 316, 317, 323, 324, 328, 329, 335, 336, 340, 341,
      342, 347, 348, 352, 353, 354, 356, 359, 360, 361, 362, 364, 365, 366, 368,
      370, 371, 372, 374, 376, 377, 378, 380, 382, 383, 384, 388, 389, 390, 394,
      395, 396, 400, 401, 402, 406, 407, 408, 412, 413, 414, 418, 419, 420, 424,
      425, 426, 430, 431, 432, 436, 437, 438, 442, 444, 448, 450, 451, 454, 456,
      460, 465, 466, 472, 477, 478, 484, 489, 490, 496, 501, 502, 508, 513, 514,
      519, 520, 525, 526, 527, 531, 532, 533, 537, 539, 543, 545, 549, 551, 555,
      561, 567, 573, 579, 585, 591, 597, 603, 609, 615, 621, 622, 627, 698, 704,
      710, 716, 722 ]

##### 9.2-17 IsAdditiveNumericalSemigroup

`‣ IsAdditiveNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup. Detects if S is additive, that is, \(ord(m+x)=ord(x)+1\) for all \(x\) in S, where \(m\) is the multiplicity of S and \(ord\) stands for MaximumDegreeOfElementWRTNumericalSemigroup. For these semigroups \(gr_m(K[[S]])\) is Cohen-Macaulay(see [BH13]).

    gap> l:=IrreducibleNumericalSemigroupsWithFrobeniusNumber(31);;
    gap> Length(l);
    109
    gap> Length(Filtered(l,IsAdditiveNumericalSemigroup));
    20

##### 9.2-18 IsSuperSymmetricNumericalSemigroup

`‣ IsSuperSymmetricNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup. Detects if S is supersymmetric, that is, it is symmetric, additive and whenever \(w+w'=f+m\) (with \(m\) the multiplicity and \(f\) the Frobenius number) we have \(ord(w+w')=ord(w)+ord(w')\), where \(ord\) stands for MaximumDegreeOfElementWRTNumericalSemigroup.

    gap> l:=IrreducibleNumericalSemigroupsWithFrobeniusNumber(31);;
    gap> Length(l);
    109
    gap> Length(Filtered(l,IsSuperSymmetricNumericalSemigroup));
    7

#### 9.3 Invariants based on distances

##### 9.3-1 CatenaryDegreeOfSetOfFactorizations

`‣ CatenaryDegreeOfSetOfFactorizations`( ls ) | ( function )

ls is a set of factorizations (a list of lists of nonnegative integers with the same length). The output is the catenary degree of this set of factorizations.

    gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
    [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ],
      [ 5, 2, 0, 1 ], [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
    gap> CatenaryDegreeOfSetOfFactorizations(last);
    5

##### 9.3-2 AdjacentCatenaryDegreeOfSetOfFactorizations

`‣ AdjacentCatenaryDegreeOfSetOfFactorizations`( ls ) | ( function )

ls is a set of factorizations. The output is the adjacent catenary degree of this set of factorizations, that is, the supremum of the distance between to sets of factorizations with adjacent lengths. More precisely, if \(l_1,\ldots,l_t\) are the lengths of the factorizations of the elements in ls, and \(Z_{l_i}\) is the set of factorizations in ls with length \(l_i\), then the adjacent catenary degree is the maximum of the distances \(\mathrm d (Z_{l_i},Z_{l_{i+1}})\).

    gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
    [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ],
      [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
    gap> AdjacentCatenaryDegreeOfSetOfFactorizations(last);
    5

##### 9.3-3 EqualCatenaryDegreeOfSetOfFactorizations

`‣ EqualCatenaryDegreeOfSetOfFactorizations`( ls ) | ( function )

ls is a set of factorizations. The same as CatenaryDegreeOfSetOfFactorizations, but now the factorizations joined by the chain must have the same length, and the elements in the chain also. Equivalently, if \(l_1,\ldots,l_t\) are the lengths of the factorizations of the elements in ls, and \(Z_{l_i}\) is the set of factorizations in ls with length \(l_i\), then the equal catenary degree is the maximum of the CatenaryDegreeOfSetOfFactorizations of \(\mathrm d (Z_{l_i},Z_{l_{i+1}})\).

    gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
    [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ],
      [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
    gap> EqualCatenaryDegreeOfSetOfFactorizations(last);
    2

##### 9.3-4 MonotoneCatenaryDegreeOfSetOfFactorizations

`‣ MonotoneCatenaryDegreeOfSetOfFactorizations`( ls ) | ( function )

ls is a set of factorizations. The same as CatenaryDegreeOfSetOfFactorizations, but now the factorizations are joined by a chain with nondecreasing lengths. Equivalently, it is the maximum of the AdjacentCatenaryDegreeOfSetOfFactorizations and the EqualCatenaryDegreeOfSetOfFactorizations.

    gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
    [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ],
      [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
    gap> MonotoneCatenaryDegreeOfSetOfFactorizations(last);
    5

##### 9.3-5 CatenaryDegreeOfElementInNumericalSemigroup

`‣ CatenaryDegreeOfElementInNumericalSemigroup`( n, S ) | ( function )

n is a nonnegative integer and S is a numerical semigroup. The output is the catenary degree of n relative to S.

    gap> CatenaryDegreeOfElementInNumericalSemigroup(157,NumericalSemigroup(13,18));
    0
    gap> CatenaryDegreeOfElementInNumericalSemigroup(1157,NumericalSemigroup(13,18));
    18

##### 9.3-6 TameDegreeOfSetOfFactorizations

`‣ TameDegreeOfSetOfFactorizations`( ls ) | ( function )

ls is a set of factorizations (a list of lists of nonnegative integers with the same length). The output is the tame degree of this set of factorizations.

    gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
    [ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ],
      [ 5, 2, 0, 1 ], [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
    gap> TameDegreeOfSetOfFactorizations(last);
    4

##### 9.3-7 CatenaryDegreeOfNumericalSemigroup

`‣ CatenaryDegreeOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup. The output is the catenary degree of S.

    gap> s:=NumericalSemigroup(101,113,196,272,278,286);
    <Numerical semigroup with 6 generators>
    gap> CatenaryDegreeOfNumericalSemigroup(s);
    8

##### 9.3-8 EqualPrimitiveElementsOfNumericalSemigroup

`‣ EqualPrimitiveElementsOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup.

The output is the set of elements \(s\) in S such that there exists a minimal solution to \(msg\cdot x-msg\cdot y = 0\), such that \(x,y\) are factorizations with the same length of \(s\), and \(msg\) is the minimal generating system of S. These elements are used to compute the equal catenary degree of S.

    gap> s:=NumericalSemigroup(3,5,7);;
    gap> EqualPrimitiveElementsOfNumericalSemigroup(s);
    [ 3, 5, 7, 10 ]

##### 9.3-9 EqualCatenaryDegreeOfNumericalSemigroup

`‣ EqualCatenaryDegreeOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup. The output is the equal catenary degree of S.

    gap> s:=NumericalSemigroup(3,5,7);;
    gap> EqualCatenaryDegreeOfNumericalSemigroup(s);
    2

##### 9.3-10 MonotonePrimitiveElementsOfNumericalSemigroup

`‣ MonotonePrimitiveElementsOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup.

The output is the set of elements \(s\) in S such that there exists a minimal solution to \(msg\cdot x-msg\cdot y = 0\), such that \(x,y\) are factorizations of \(s\), with \(|x|\le |y|\); \(msg\) stands the minimal generating system of S. These elements are used to compute the monotone catenary degree of S.

    gap> s:=NumericalSemigroup(3,5,7);;
    gap> MonotonePrimitiveElementsOfNumericalSemigroup(s);
    [ 3, 5, 7, 10, 12, 14, 15, 21, 28, 35 ]

##### 9.3-11 MonotoneCatenaryDegreeOfNumericalSemigroup

`‣ MonotoneCatenaryDegreeOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup. The output is the monotone catenary degree of S.

    gap> s:=NumericalSemigroup(10,23,31,44);;
    gap> CatenaryDegreeOfNumericalSemigroup(s);
    9
    gap> MonotoneCatenaryDegreeOfNumericalSemigroup(s);
    21

##### 9.3-12 TameDegreeOfNumericalSemigroup

`‣ TameDegreeOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup. The output is the tame degree of S.

    gap> s:=NumericalSemigroup(101,113,196,272,278,286);
    <Numerical semigroup with 6 generators>
    gap> TameDegreeOfNumericalSemigroup(s);
    14

##### 9.3-13 TameDegreeOfElementInNumericalSemigroup

`‣ TameDegreeOfElementInNumericalSemigroup`( n, S ) | ( function )

n is an element of the numerical semigroup S. The output is the tame degree of n in S.

    gap> s:=NumericalSemigroup(10,11,13);
    <Numerical semigroup with 3 generators>
    gap> TameDegreeOfElementInNumericalSemigroup(100,s);
    5

#### 9.4 Primality

##### 9.4-1 OmegaPrimalityOfElementInNumericalSemigroup

`‣ OmegaPrimalityOfElementInNumericalSemigroup`( n, S ) | ( function )

n is an element of the numerical semigroup S. The output is the \(\omega\)-primality of n in S as explained in [BGSG11]. The current implementation is due to Chris O'Neill based on a work in progress with Pelayo and Thomas.

    gap> s:=NumericalSemigroup(10,11,13);
    <Numerical semigroup with 3 generators>
    gap> OmegaPrimalityOfElementInNumericalSemigroup(100,s);
    13

##### 9.4-2 OmegaPrimalityOfElementListInNumericalSemigroup

`‣ OmegaPrimalityOfElementListInNumericalSemigroup`( l, S ) | ( function )

S is a numerical semigroup and l a list of elements of S.

Computes the omega-values of all the elements in l.

    gap> s:=NumericalSemigroup(10,11,13);;
    gap> l:=FirstElementsOfNumericalSemigroup(100,s);;
    gap> List(l,x->OmegaPrimalityOfElementInNumericalSemigroup(x,s)); time;
    [ 0, 4, 5, 5, 4, 6, 7, 6, 6, 6, 6, 7, 8, 7, 7, 7, 7, 7, 8, 7, 8, 9, 8, 8, 8,
      8, 8, 8, 8, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 10, 11, 10, 10, 10, 10, 10,
      10, 10, 10, 11, 12, 11, 11, 11, 11, 11, 11, 11, 11, 12, 13, 12, 12, 12, 12,
      12, 12, 12, 12, 13, 14, 13, 13, 13, 13, 13, 13, 13, 13, 14, 15, 14, 14, 14,
      14, 14, 14, 14, 14, 15, 16, 15, 15, 15, 15, 15, 15, 15, 15 ]
    218
    gap> OmegaPrimalityOfElementListInNumericalSemigroup(l,s);time;
    [ 0, 4, 5, 5, 4, 6, 7, 6, 6, 6, 6, 7, 8, 7, 7, 7, 7, 7, 8, 7, 8, 9, 8, 8, 8,
      8, 8, 8, 8, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 10, 11, 10, 10, 10, 10, 10,
      10, 10, 10, 11, 12, 11, 11, 11, 11, 11, 11, 11, 11, 12, 13, 12, 12, 12, 12,
      12, 12, 12, 12, 13, 14, 13, 13, 13, 13, 13, 13, 13, 13, 14, 15, 14, 14, 14,
      14, 14, 14, 14, 14, 15, 16, 15, 15, 15, 15, 15, 15, 15, 15 ]
    10

##### 9.4-3 OmegaPrimalityOfNumericalSemigroup

`‣ OmegaPrimalityOfNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup. The output is the maximum of the \(\omega\)-primalities of the minimal generators of S.

    gap> s:=NumericalSemigroup(10,11,13);
    <Numerical semigroup with 3 generators>
    gap> OmegaPrimalityOfNumericalSemigroup(s);
    5

#### 9.5 Homogenization of Numerical Semigroups

Let \( S \) be a numerical semigroup minimally generated by \( \{m_1,\ldots,m_n\} \). The homogenization of \(S\), \(S^\mathrm{hom}\) is the semigroup generated by \(\{(1,0),(1,m_1),\ldots, (1,m_n)\}\). The catenary degree of \(S^\mathrm{hom}\) coincides with the homogeneous catenary degree of \(S\), and it is between the catenary and the monotone catenary degree of \(S\). The advantage of this catenary degree is that is less costly to compute than the monotone catenary degree, and has some nice interpretations ([GSOSRN13]). This section contains the auxiliary functions needed to compute the homogeneous catenary degree.

##### 9.5-1 BelongsToHomogenizationOfNumericalSemigroup

`‣ BelongsToHomogenizationOfNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup and n a list with two entries (a pair). The output is true if the n belongs to the homogenization of S.

    gap> s:=NumericalSemigroup(10,11,13);;
    gap> BelongsToHomogenizationOfNumericalSemigroup([10,23],s);
    true
    gap> BelongsToHomogenizationOfNumericalSemigroup([1,23],s);
    false

##### 9.5-2 FactorizationsInHomogenizationOfNumericalSemigroup

`‣ FactorizationsInHomogenizationOfNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup and n a list with two entries (a pair). The output is the set of factorizations n in terms of the minimal generating system of the homogenization of S.

    gap> s:=NumericalSemigroup(10,11,13);;
    gap> FactorizationsInHomogenizationOfNumericalSemigroup([20,230],s);
    [ [ 0, 0, 15, 5 ], [ 0, 2, 12, 6 ], [ 0, 4, 9, 7 ],
      [ 0, 6, 6, 8 ], [ 0, 8, 3, 9 ], [ 0, 10, 0, 10 ],
      [ 1, 1, 7, 11 ], [ 1, 3, 4, 12 ], [ 1, 5, 1, 13 ],
      [ 2, 0, 2, 16 ] ]
    gap> FactorizationsElementWRTNumericalSemigroup(230,s);
    [ [ 23, 0, 0 ], [ 12, 10, 0 ], [ 1, 20, 0 ], [ 14, 7, 1 ],
      [ 3, 17, 1 ], [ 16, 4, 2 ], [ 5, 14, 2 ], [ 18, 1, 3 ],
      [ 7, 11, 3 ], [ 9, 8, 4 ], [ 11, 5, 5 ], [ 0, 15, 5 ],
      [ 13, 2, 6 ], [ 2, 12, 6 ], [ 4, 9, 7 ], [ 6, 6, 8 ],
      [ 8, 3, 9 ], [ 10, 0, 10 ], [ 1, 7, 11 ], [ 3, 4, 12 ],
      [ 5, 1, 13 ], [ 0, 2, 16 ] ]

##### 9.5-3 HomogeneousBettiElementsOfNumericalSemigroup

`‣ HomogeneousBettiElementsOfNumericalSemigroup`( n, S ) | ( function )

S is a numerical semigroup. The output is the set of Betti elements of the homogenization of S.

    gap> s:=NumericalSemigroup(10,17,19);;
    gap> BettiElementsOfNumericalSemigroup(s);
    [ 57, 68, 70 ]
    gap> HomogeneousBettiElementsOfNumericalSemigroup(s);
    [ [ 5, 57 ], [ 5, 68 ], [ 6, 95 ], [ 7, 70 ], [ 9, 153 ] ]

##### 9.5-4 HomogeneousCatenaryDegreeOfNumericalSemigroup

`‣ HomogeneousCatenaryDegreeOfNumericalSemigroup`( S ) | ( function )

S is a numerical semigroup. The output is the homogeneous catenary degree of S. Observe that for a single element in the homogenization of S, its catenary degree can be computed with CatenaryDegreeOfSetOfFactorizations and FactorizationsInHomogenizationOfNumericalSemigroup.

    gap> s:=NumericalSemigroup(10,17,19);;
    gap> CatenaryDegreeOfNumericalSemigroup(s);
    7
    gap> HomogeneousCatenaryDegreeOfNumericalSemigroup(s);
    9

#### 9.6 Divisors, posets

Given a numerical semigroup \(S\) and two integers \(a,b\), we write \(a\le_S b\) if \(b-a\in S\). We also say that \(a\) divides \(b\) (with respect to \(S\)). The semigroup \(S\) with this binary relation is a poset.

The set of divisors of \(n\) in \(S\) will be denoted by \(\mathrm{D}_S(n)\). If we are given \(n_1,\ldots,n_r\in S\), the set of the divisors of these elements is \(\mathrm{D}(n_1,\ldots, n_r)= \bigcup_{i=1}^r \mathrm{D}(n_i)\).

##### 9.6-1 MoebiusFunctionAssociatedToNumericalSemigroup

`‣ MoebiusFunctionAssociatedToNumericalSemigroup`( S, n ) | ( function )

S is a numerical semigroup and n is an integer. As \((S,\le_S)\) is a poset, we can define the Möbius function associated to it as in [CRA13]. The output is the value of the Möbius function in the integer n, that is, the alternate sum of the number of chains from 0 to n.

    gap> s:=NumericalSemigroup(3,5,7);;
    gap> MoebiusFunctionAssociatedToNumericalSemigroup(s,10);
    2
    gap> MoebiusFunctionAssociatedToNumericalSemigroup(s,34);
    25

##### 9.6-2 DivisorsOfElementInNumericalSemigroup

`‣ DivisorsOfElementInNumericalSemigroup`( S, n ) | ( operation )

S is a numerical semigroup and n is an integer. The arguments can also be given as n, S. The output is the set of divisors of n in S.

    gap> s:=NumericalSemigroup(5,7,11);;
    gap> DivisorsOfElementInNumericalSemigroup(s,20);
    [ 0, 5, 10, 15, 20 ]
    gap> DivisorsOfElementInNumericalSemigroup(20,s);
    [ 0, 5, 10, 15, 20 ]

#### 9.7 Feng-Rao distances and numbers

Let \(S\) be a numerical semigroup and let \(n\in S\). The Feng-Rao distance of \(n\) is then defined as \(\delta_S(n)=\min\{ \#\mathrm{D}(x)\mid n\le x,\ x\in S\}\).

The \(r\)th generalized distance is \(\delta_S^r(n)=\{ \#\mathrm{D}(n_1,\ldots,n_r) \mid n\le n_1 < \cdots < n_r,\ n_i\in S\}\).

##### 9.7-1 FengRaoDistance

`‣ FengRaoDistance`( S, r ) | ( function )

S is a numerical semigroup, r and m integers. The output is the r-th Feng-Rao distance of the element m in the numerical semigroup S.

    gap> S := NumericalSemigroup(7,9,17);;
    gap> FengRaoDistance(S,6,100);
    86

##### 9.7-2 FengRaoNumber

`‣ FengRaoNumber`( S, r ) | ( operation )

S is a numerical semigroup and r is an integer. The output is the r-th Feng-Rao number of the numerical semigroup S.

    gap> S := NumericalSemigroup(7,8,17);;
    gap> FengRaoNumber(S,209);
    224
    gap> FengRaoNumber(209,S);
    224

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 A B C Bib Ind

generated by GAPDoc2HTML