CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
1
<?xml version="1.0" encoding="UTF-8"?>
2
<Section>
3
<Heading>
4
Factorizations in Numerical Semigroups
5
</Heading>
6
Let <M> S </M> be a numerical semigroup minimally generated by
7
<M> \{m_1,\ldots,m_n\} </M>. A factorization of an element <M>s\in S</M>
8
is an n-tuple <M> a=(a_1,\ldots,a_n) </M> of nonnegative integers such that
9
<M> n=a_1 n_1+\cdots+a_n m_n</M>. The length of <M>a</M> is <M>|a|=a_1+\cdots+a_n</M>.
10
Given two factorizations <M>a</M> and <M>b</M> of <M>n</M>, the distance
11
between <M>a</M> and <M>b</M> is <M>d(a,b)=\max \{ |a-\gcd(a,b)|,|b-\gcd(a,b)|\}</M>,
12
where <M>\gcd((a_1,\ldots,a_n),(b_1,\ldots,b_n))=(\min(a_1,b_1),\ldots,\min(a_n,b_n))</M>.
13
14
<P/>
15
If <M>l_1>\cdots > l_k</M> are the lengths of all the factorizations of
16
<M>s \in S</M>, the Delta set associated to <M>s</M> is
17
<M>\Delta(s)=\{l_1-l_2,\ldots,l_k-l_{k-1}\}</M>.
18
19
<P/>
20
The catenary degree of an element in <M>S</M> is the least positive integer <M>c</M> such that for any two
21
of its factorizations <M>a</M> and <M>b</M>, there exists a chain of
22
factorizations starting in <M>a</M> and ending in <M>b</M> and so that the distance between
23
two consecutive links is at most <M>c</M>. The catenary degree of <M>S</M> is the supremum of the
24
catenary degrees of the elements in <M>S</M>.
25
26
<P/>
27
The tame degree of <M>S</M> is the least positive integer <M>t</M> such that for any
28
factorization <M>a</M> of an element <M>s</M> in <M>S</M>, and any <M>i</M> such that
29
<M>s-m_i\in S</M>, there exists another factorization <M>b</M> of <M>s</M> so that
30
the distance to <M>a</M> is at most <M>t</M> and <M>b_i\not = 0</M>.
31
32
<P/>
33
The <M>\omega</M>-primality of an element <M>s</M> in <M>S</M> is the least positive integer <M>k</M> such that if
34
<M>(\sum_{i\in I} s_i)-s\in S, s_i\in S</M>, then there exists <M>\Omega\subseteq I</M> with cardinality <M>k</M> such that
35
<M>(\sum_{i\in \Omega} s_i)-s\in S</M>. The <M>\omega</M>-primality of <M>S</M> is the maximum of the <M>\omega</M>-primality of its minimal
36
generators.
37
38
<P/>
39
The basic properties of these constants can be found in <Cite Key="GHKb"></Cite>.
40
The algorithm used to compute the catenary and tame degree
41
is an adaptation of the algorithms appearing
42
in <Cite Key="CGLPR"></Cite> for numerical semigroups (see <Cite Key="CGL"></Cite>).
43
The computation of the elasticity of a numerical semigroup reduces to <M>m/n</M> with <M>m</M> the
44
multiplicity of the semigroup and <M>n</M> its largest minimal generator (see <Cite Key="CHM06"></Cite>
45
or <Cite Key="GHKb"></Cite>).
46
47
<ManSection>
48
49
<Func Arg="n, ls" Name="FactorizationsIntegerWRTList"></Func>
50
<Description>
51
<A>ls</A> is a list of integers and <A>n</A> an integer.
52
The output is the set of factorizations of <A>n</A> in terms of the elements in the list <A>ls</A>. This function uses RestrictedPartitions.
53
54
<Example><![CDATA[
55
gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
56
[ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ],
57
[ 5, 2, 0, 1 ], [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
58
]]></Example>
59
</Description>
60
</ManSection>
61
62
63
<ManSection>
64
65
<Func Arg="n, S" Name="FactorizationsElementWRTNumericalSemigroup"></Func>
66
<Description>
67
<A>S</A> is a numerical semigroup and <A>n</A> a nonnegative integer.
68
The output is the set of factorizations of <A>n</A> in terms of the minimal
69
generating set of <A>S</A>.
70
71
<Example><![CDATA[
72
gap> s:=NumericalSemigroup(101,113,196,272,278,286);
73
<Numerical semigroup with 6 generators>
74
gap> FactorizationsElementWRTNumericalSemigroup(1100,s);
75
[ [ 0, 8, 1, 0, 0, 0 ], [ 0, 0, 0, 2, 2, 0 ], [ 5, 1, 1, 0, 0, 1 ],
76
[ 0, 2, 3, 0, 0, 1 ] ]
77
]]></Example>
78
</Description>
79
</ManSection>
80
81
<ManSection>
82
<Func Arg="l,S" Name="FactorizationsElementListWRTNumericalSemigroup"></Func>
83
<Description>
84
85
<A>S</A> is a numerical semigroup and <A>l</A> a list of elements of <A>S</A>.
86
<P/>
87
88
Computes the factorizations of all the elements in <A>l</A>.
89
90
<Example><![CDATA[
91
gap> s:=NumericalSemigroup(10,11,13);
92
<Numerical semigroup with 3 generators>
93
gap> FactorizationsElementListWRTNumericalSemigroup([100,101,103],s);
94
[ [ [ 0, 2, 6 ], [ 1, 7, 1 ], [ 3, 4, 2 ], [ 5, 1, 3 ], [ 10, 0, 0 ] ],
95
[ [ 0, 8, 1 ], [ 1, 0, 7 ], [ 2, 5, 2 ], [ 4, 2, 3 ], [ 9, 1, 0 ] ],
96
[ [ 0, 7, 2 ], [ 2, 4, 3 ], [ 4, 1, 4 ], [ 7, 3, 0 ], [ 9, 0, 1 ] ] ]
97
]]></Example>
98
</Description>
99
</ManSection>
100
101
102
<ManSection>
103
104
<Func Arg="ls" Name="RClassesOfSetOfFactorizations"></Func>
105
<Description>
106
<A>ls</A> is a set of factorizations (a list of lists of nonnegative integers with the same length).
107
The output is the set of <M>\mathcal R</M>-classes of this set of factorizations as defined in Chapter 7 of <Cite Key="RGbook"></Cite>.
108
109
<Example><![CDATA[
110
gap> s:=NumericalSemigroup(10,11,19,23);;
111
gap> BettiElementsOfNumericalSemigroup(s);
112
[ 30, 33, 42, 57, 69 ]
113
gap> FactorizationsElementWRTNumericalSemigroup(69,s);
114
[ [ 5, 0, 1, 0 ], [ 2, 1, 2, 0 ], [ 0, 0, 0, 3 ] ]
115
gap> RClassesOfSetOfFactorizations(last);
116
[ [ [ 2, 1, 2, 0 ], [ 5, 0, 1, 0 ] ], [ [ 0, 0, 0, 3 ] ] ]
117
]]></Example>
118
</Description>
119
</ManSection>
120
121
<ManSection>
122
123
<Func Arg="S" Name="LShapesOfNumericalSemigroup"></Func>
124
<Description>
125
<A>S</A> is a numerical semigroup.
126
127
The output is the number of LShapes associated to <A>S</A>. 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 <M>x</M> is chosen for <M>w</M> and <M>w-w'\in S</M>, then only the factorization of <M>x'</M> of <M>w'</M> with <M>x'\le </M> can be in the LShape (and if there is no such a factorization, then we have no LShape with <M>x</M> in it), see <Cite Key="AG-GS"></Cite>.
128
129
<Example><![CDATA[
130
gap> s:=NumericalSemigroup(4,6,9);;
131
gap> LShapesOfNumericalSemigroup(s);
132
[ [ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ], [ 2, 0 ], [ 1, 1 ], [ 0, 2 ], [ 2, 1 ],
133
[ 1, 2 ], [ 2, 2 ] ],
134
[ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ], [ 2, 0 ], [ 1, 1 ], [ 3, 0 ], [ 2, 1 ],
135
[ 4, 0 ], [ 5, 0 ] ] ]
136
]]></Example>
137
</Description>
138
</ManSection>
139
140
141
<ManSection>
142
143
<Func Arg="n, S" Name="DenumerantOfElementInNumericalSemigroup"></Func>
144
<Description>
145
<A>S</A> is a numerical semigroup and <A>n</A> a positive integer.
146
The output is the number of factorizations of <A>n</A> in terms of the minimal
147
generating set of <A>S</A>.
148
149
<Example><![CDATA[
150
gap> s:=NumericalSemigroup(101,113,195,272,278,286);;
151
gap> DenumerantOfElementInNumericalSemigroup(1311,s);
152
6
153
]]></Example>
154
</Description>
155
</ManSection>
156
157
158
159
</Section>
160
161
<Section>
162
<Heading>
163
Invariants based on lengths
164
</Heading>
165
166
<ManSection>
167
168
<Func Arg="n, ls" Name="LengthsOfFactorizationsIntegerWRTList"></Func>
169
<Description>
170
<A>ls</A> is a list of integers and <A>n</A> an integer.
171
The output is the set of lengths of the factorizations of <A>n</A> in terms of the elements in <A>ls</A>.
172
173
<Example><![CDATA[
174
gap> LengthsOfFactorizationsIntegerWRTList(100,[11,13,15,19]);
175
[ 6, 8 ]
176
]]></Example>
177
</Description>
178
</ManSection>
179
180
181
<ManSection>
182
183
<Func Arg="n, S" Name="LengthsOfFactorizationsElementWRTNumericalSemigroup"></Func>
184
<Description>
185
<A>S</A> is a numerical semigroup and <A>n</A> a nonnegative integer.
186
The output is the set of lengths of the factorizations of <A>n</A> in terms of the minimal
187
generating set of <A>S</A>.
188
189
<Example><![CDATA[
190
gap> s:=NumericalSemigroup(101,113,196,272,278,286);
191
<Numerical semigroup with 6 generators>
192
gap> LengthsOfFactorizationsElementWRTNumericalSemigroup(1100,s);
193
[ 4, 6, 8, 9 ]
194
]]></Example>
195
</Description>
196
</ManSection>
197
198
199
<ManSection>
200
201
<Func Arg="n, S" Name="ElasticityOfFactorizationsElementWRTNumericalSemigroup"></Func>
202
<Description>
203
<A>S</A> is a numerical semigroup and <A>n</A> a positive integer.
204
The output is the maximum length divided by the minimum length
205
of the factorizations of <A>n</A> in terms of the minimal
206
generating set of <A>S</A>.
207
208
<Example><![CDATA[
209
gap> s:=NumericalSemigroup(101,113,196,272,278,286);
210
<Numerical semigroup with 6 generators>
211
gap> ElasticityOfFactorizationsElementWRTNumericalSemigroup(1100,s);
212
9/4
213
]]></Example>
214
</Description>
215
</ManSection>
216
217
218
<ManSection>
219
220
<Func Arg="S" Name="ElasticityOfNumericalSemigroup"></Func>
221
<Description>
222
<A>S</A> is a numerical semigroup.
223
The output is the elasticity of <A>S</A>.
224
225
<Example><![CDATA[
226
gap> s:=NumericalSemigroup(101,113,196,272,278,286);
227
<Numerical semigroup with 6 generators>
228
gap> ElasticityOfNumericalSemigroup(s);
229
286/101
230
]]></Example>
231
</Description>
232
</ManSection>
233
234
235
<ManSection>
236
237
<Func Arg="ls" Name="DeltaSetOfSetOfIntegers"></Func>
238
<Description>
239
<A>ls</A> is list of integers.
240
The output is the Delta set of the elements in <A>ls</A>, that is, the set of differences of consecutive elements in the list.
241
242
<Example><![CDATA[
243
gap> LengthsOfFactorizationsIntegerWRTList(100,[11,13,15,19]);
244
[ 6, 8 ]
245
gap> DeltaSetOfSetOfIntegers(last);
246
[ 2 ]
247
]]></Example>
248
</Description>
249
</ManSection>
250
251
252
<ManSection>
253
254
<Func Arg="n, S" Name="DeltaSetOfFactorizationsElementWRTNumericalSemigroup"></Func>
255
<Description>
256
<A>S</A> is a numerical semigroup and <A>n</A> a nonnegative integer.
257
The output is the Delta set of the factorizations of <A>n</A> in terms of the minimal
258
generating set of <A>S</A>.
259
260
<Example><![CDATA[
261
gap> s:=NumericalSemigroup(101,113,196,272,278,286);
262
<Numerical semigroup with 6 generators>
263
gap> DeltaSetOfFactorizationsElementWRTNumericalSemigroup(1100,s);
264
[ 1, 2 ]
265
]]></Example>
266
</Description>
267
</ManSection>
268
269
<ManSection>
270
<Func Arg="S" Name="DeltaSetPeriodicityBoundForNumericalSemigroup"></Func>
271
<Description>
272
273
<A>S</A> is a numerical semigroup.
274
<P/>
275
276
Computes the bound were the periodicity starts for Delta sets of the elements in <A>S</A>; see <Cite Key="GG-MF-VT"></Cite>.
277
278
<Example><![CDATA[
279
gap> s:=NumericalSemigroup(5,7,11);;
280
gap> DeltaSetPeriodicityBoundForNumericalSemigroup(s);
281
60
282
]]></Example>
283
</Description>
284
</ManSection>
285
286
<ManSection>
287
<Func Arg="S" Name="DeltaSetPeriodicityStartForNumericalSemigroup"></Func>
288
<Description>
289
290
<A>S</A> is a numerical semigroup.
291
<P/>
292
293
Computes the element were the periodicity starts for Delta sets of the elements in <A>S</A>.
294
295
<Example><![CDATA[
296
gap> s:=NumericalSemigroup(5,7,11);;
297
gap> DeltaSetPeriodicityStartForNumericalSemigroup(s);
298
21
299
]]></Example>
300
</Description>
301
</ManSection>
302
303
304
<ManSection>
305
<Func Arg="n, S" Name="DeltaSetListUpToElementWRTNumericalSemigroup"></Func>
306
<Description>
307
308
<A>S</A> is a numerical semigroup, <A>n</A> a nonnegative integer.
309
<P/>
310
311
Computes the Delta sets of the integers up to (and including) <A>n</A>, if an integer is not in <A>S</A>, the corresponding Delta set is empty.
312
313
<Example><![CDATA[
314
gap> s:=NumericalSemigroup(5,7,11);;
315
gap> DeltaSetListUpToElementWRTNumericalSemigroup(31,s);
316
[ [ ], [ ], [ ], [ ], [ ], [ ], [ ], [ ], [ ], [ ], [ ], [ ], [ ],
317
[ ], [ ], [ ], [ ], [ ], [ ], [ ], [ ], [ 2 ], [ ], [ ], [ 2 ], [ ],
318
[ 2 ], [ ], [ 2 ], [ 2 ], [ ] ]
319
]]></Example>
320
</Description>
321
</ManSection>
322
323
<ManSection>
324
<Func Arg="n, S" Name="DeltaSetUnionUpToElementWRTNumericalSemigroup"></Func>
325
<Description>
326
327
<A>S</A> is a numerical semigroup, <A>n</A> a nonnegative integer.
328
<P/>
329
330
331
Computes the union of the delta sets of the elements of <A>S</A> up to and including <A>n</A>, using a ring buffer to conserve memory.
332
333
<Example><![CDATA[
334
gap> s:=NumericalSemigroup(5,7,11);;
335
gap> DeltaSetUnionUpToElementWRTNumericalSemigroup(60,s);
336
[ 2 ]
337
]]></Example>
338
</Description>
339
</ManSection>
340
341
<ManSection>
342
<Func Arg="S" Name="DeltaSetOfNumericalSemigroup"></Func>
343
<Description>
344
345
<A>S</A> is a numerical semigroup.
346
<P/>
347
348
Computes the Delta set of <A>S</A>.
349
350
<Example><![CDATA[
351
gap> s:=NumericalSemigroup(5,7,11);;
352
gap> DeltaSetOfNumericalSemigroup(s);
353
[ 2 ]
354
]]></Example>
355
</Description>
356
</ManSection>
357
358
359
<ManSection>
360
361
<Func Arg="n, S" Name="MaximumDegreeOfElementWRTNumericalSemigroup"></Func>
362
<Description>
363
<A>S</A> is a numerical semigroup and <A>n</A> a nonnegative integer.
364
The output is the maximum length of the factorizations of <A>n</A> in terms of the minimal
365
generating set of <A>S</A>.
366
367
<Example><![CDATA[
368
gap> s:=NumericalSemigroup(101,113,196,272,278,286);
369
<Numerical semigroup with 6 generators>
370
gap> MaximumDegreeOfElementWRTNumericalSemigroup(1100,s);
371
9
372
]]></Example>
373
</Description>
374
</ManSection>
375
376
377
378
<ManSection>
379
<Func Arg="n, S" Name="MaximalDenumerantOfElementInNumericalSemigroup"></Func>
380
<Description>
381
<A>S</A> is a numerical semigroup and <A>n</A> a positive integer.
382
The output is the number of factorizations of <A>n</A> in terms of the minimal
383
generating set of <A>S</A> with maximal length.
384
385
<Example><![CDATA[
386
gap> s:=NumericalSemigroup(101,113,196,272,278,286);;
387
gap> MaximalDenumerantOfElementInNumericalSemigroup(1100,s);
388
1
389
gap> MaximalDenumerantOfElementInNumericalSemigroup(1311,s);
390
2
391
]]></Example>
392
</Description>
393
</ManSection>
394
395
<ManSection>
396
397
<Func Arg="ls" Name="MaximalDenumerantOfSetOfFactorizations"></Func>
398
<Description>
399
<A>ls</A> is list of factorizations (a list of lists of nonnegative integers with the same length).
400
The output is number of elements in <A>ls</A> with maximal length.
401
402
<Example><![CDATA[
403
gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
404
[ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ],
405
[ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
406
gap> MaximalDenumerantOfSetOfFactorizations(last);
407
6
408
]]></Example>
409
</Description>
410
</ManSection>
411
412
413
<ManSection>
414
<Func Arg="S" Name="MaximalDenumerantOfNumericalSemigroup"></Func>
415
<Description>
416
<A>S</A> is a numerical semigroup.
417
The output is the maximal denumerant of <A>S</A>, that is, the maximum of the maximal denumerant of the elements in <A>S</A> (see <Cite Key="BH"></Cite>).
418
419
<Example><![CDATA[
420
gap> s:=NumericalSemigroup(101,113,196,272,278,286);;
421
gap> MaximalDenumerantOfNumericalSemigroup(s);
422
4
423
]]></Example>
424
</Description>
425
</ManSection>
426
427
428
<ManSection>
429
<Func Arg="S" Name="AdjustmentOfNumericalSemigroup"></Func>
430
<Description>
431
<A>S</A> is a numerical semigroup.
432
The output is the adjustment of <A>S</A> as defined in <Cite Key="BH"></Cite>.
433
434
<Example><![CDATA[
435
gap> s:=NumericalSemigroup(101,113,196,272,278,286);;
436
gap> AdjustmentOfNumericalSemigroup(s);
437
[ 0, 12, 24, 36, 48, 60, 72, 84, 95, 96, 107, 108, 119, 120, 131, 132, 143,
438
144, 155, 156, 167, 168, 171, 177, 179, 180, 183, 185, 189, 190, 191, 192,
439
195, 197, 201, 203, 204, 207, 209, 213, 215, 216, 219, 221, 225, 227, 228,
440
231, 233, 237, 239, 240, 243, 245, 249, 251, 252, 255, 257, 261, 263, 264,
441
266, 267, 269, 273, 275, 276, 279, 280, 281, 285, 287, 288, 292, 293, 299,
442
300, 304, 305, 311, 312, 316, 317, 323, 324, 328, 329, 335, 336, 340, 341,
443
342, 347, 348, 352, 353, 354, 356, 359, 360, 361, 362, 364, 365, 366, 368,
444
370, 371, 372, 374, 376, 377, 378, 380, 382, 383, 384, 388, 389, 390, 394,
445
395, 396, 400, 401, 402, 406, 407, 408, 412, 413, 414, 418, 419, 420, 424,
446
425, 426, 430, 431, 432, 436, 437, 438, 442, 444, 448, 450, 451, 454, 456,
447
460, 465, 466, 472, 477, 478, 484, 489, 490, 496, 501, 502, 508, 513, 514,
448
519, 520, 525, 526, 527, 531, 532, 533, 537, 539, 543, 545, 549, 551, 555,
449
561, 567, 573, 579, 585, 591, 597, 603, 609, 615, 621, 622, 627, 698, 704,
450
710, 716, 722 ]
451
]]></Example>
452
</Description>
453
</ManSection>
454
455
<ManSection>
456
<Func Arg="S" Name="IsAdditiveNumericalSemigroup"></Func>
457
<Description>
458
<A>S</A> is a numerical semigroup. Detects if <A>S</A> is additive, that is, <M>ord(m+x)=ord(x)+1</M> for all <M>x</M> in <A>S</A>, where <M>m</M> is the multiplicity of <A>S</A> and <M>ord</M> stands for MaximumDegreeOfElementWRTNumericalSemigroup. For these semigroups <M>gr_m(K[[S]])</M> is Cohen-Macaulay(see <Cite Key="BH"></Cite>).
459
460
<Example><![CDATA[
461
gap> l:=IrreducibleNumericalSemigroupsWithFrobeniusNumber(31);;
462
gap> Length(l);
463
109
464
gap> Length(Filtered(l,IsAdditiveNumericalSemigroup));
465
20
466
]]></Example>
467
</Description>
468
</ManSection>
469
470
<ManSection>
471
<Func Arg="S" Name="IsSuperSymmetricNumericalSemigroup"></Func>
472
<Description>
473
<A>S</A> is a numerical semigroup. Detects if <A>S</A> is supersymmetric, that is, it is symmetric, additive and whenever <M>w+w'=f+m</M> (with <M>m</M> the multiplicity and <M>f</M> the Frobenius number) we have <M>ord(w+w')=ord(w)+ord(w')</M>, where <M>ord</M> stands for MaximumDegreeOfElementWRTNumericalSemigroup.
474
475
<Example><![CDATA[
476
gap> l:=IrreducibleNumericalSemigroupsWithFrobeniusNumber(31);;
477
gap> Length(l);
478
109
479
gap> Length(Filtered(l,IsSuperSymmetricNumericalSemigroup));
480
7
481
]]></Example>
482
</Description>
483
</ManSection>
484
485
486
</Section>
487
488
<Section>
489
<Heading>
490
Invariants based on distances
491
</Heading>
492
493
<ManSection>
494
495
<Func Arg="ls" Name="CatenaryDegreeOfSetOfFactorizations"></Func>
496
<Description>
497
<A>ls</A> is a set of factorizations (a list of lists of nonnegative integers with the same length).
498
The output is the catenary degree of this set of factorizations.
499
500
<Example><![CDATA[
501
gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
502
[ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ],
503
[ 5, 2, 0, 1 ], [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
504
gap> CatenaryDegreeOfSetOfFactorizations(last);
505
5
506
]]></Example>
507
</Description>
508
</ManSection>
509
510
<ManSection>
511
<Func Arg="ls" Name="AdjacentCatenaryDegreeOfSetOfFactorizations"></Func>
512
<Description>
513
<A>ls</A> is a set of factorizations.
514
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 <M>l_1,\ldots,l_t</M> are the lengths of the factorizations of the elements in <A>ls</A>, and <M>Z_{l_i}</M> is the set of factorizations in <A>ls</A> with length <M>l_i</M>, then the adjacent catenary degree is the maximum of the distances <M>\mathrm d (Z_{l_i},Z_{l_{i+1}})</M>.
515
516
<Example><![CDATA[
517
gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
518
[ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ],
519
[ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
520
gap> AdjacentCatenaryDegreeOfSetOfFactorizations(last);
521
5
522
]]></Example>
523
</Description>
524
</ManSection>
525
526
<ManSection>
527
<Func Arg="ls" Name="EqualCatenaryDegreeOfSetOfFactorizations"></Func>
528
<Description>
529
<A>ls</A> 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 <M>l_1,\ldots,l_t</M> are the lengths of the factorizations of the elements in <A>ls</A>, and <M>Z_{l_i}</M> is the set of factorizations in <A>ls</A> with length <M>l_i</M>, then the equal catenary degree is the maximum of the CatenaryDegreeOfSetOfFactorizations of <M>\mathrm d (Z_{l_i},Z_{l_{i+1}})</M>.
530
531
<Example><![CDATA[
532
gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
533
[ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ],
534
[ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
535
gap> EqualCatenaryDegreeOfSetOfFactorizations(last);
536
2
537
]]></Example>
538
</Description>
539
</ManSection>
540
541
<ManSection>
542
<Func Arg="ls" Name="MonotoneCatenaryDegreeOfSetOfFactorizations"></Func>
543
<Description>
544
<A>ls</A> 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.
545
546
<Example><![CDATA[
547
gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
548
[ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ], [ 5, 2, 0, 1 ],
549
[ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
550
gap> MonotoneCatenaryDegreeOfSetOfFactorizations(last);
551
5
552
]]></Example>
553
</Description>
554
</ManSection>
555
556
<ManSection>
557
<Func Arg="n, S" Name="CatenaryDegreeOfElementInNumericalSemigroup"></Func>
558
<Description>
559
<A>n</A> is a nonnegative integer and <A>S</A> is a numerical semigroup.
560
The output is the catenary degree of <A>n</A> relative to <A>S</A>.
561
562
<Example><![CDATA[
563
gap> CatenaryDegreeOfElementInNumericalSemigroup(157,NumericalSemigroup(13,18));
564
0
565
gap> CatenaryDegreeOfElementInNumericalSemigroup(1157,NumericalSemigroup(13,18));
566
18
567
]]></Example>
568
</Description>
569
</ManSection>
570
571
<ManSection>
572
<Func Arg="ls" Name="TameDegreeOfSetOfFactorizations"></Func>
573
<Description>
574
<A>ls</A> is a set of factorizations (a list of lists of nonnegative integers with the same length).
575
The output is the tame degree of this set of factorizations.
576
577
<Example><![CDATA[
578
gap> FactorizationsIntegerWRTList(100,[11,13,15,19]);
579
[ [ 2, 6, 0, 0 ], [ 3, 4, 1, 0 ], [ 4, 2, 2, 0 ], [ 5, 0, 3, 0 ],
580
[ 5, 2, 0, 1 ], [ 6, 0, 1, 1 ], [ 0, 1, 2, 3 ], [ 1, 1, 0, 4 ] ]
581
gap> TameDegreeOfSetOfFactorizations(last);
582
4
583
]]></Example>
584
</Description>
585
</ManSection>
586
587
<ManSection>
588
<Func Arg="S" Name="CatenaryDegreeOfNumericalSemigroup"></Func>
589
<Description>
590
<A>S</A> is a numerical semigroup.
591
The output is the catenary degree of <A>S</A>.
592
593
<Example><![CDATA[
594
gap> s:=NumericalSemigroup(101,113,196,272,278,286);
595
<Numerical semigroup with 6 generators>
596
gap> CatenaryDegreeOfNumericalSemigroup(s);
597
8
598
]]></Example>
599
</Description>
600
</ManSection>
601
602
<ManSection>
603
<Func Arg="S" Name="EqualPrimitiveElementsOfNumericalSemigroup"></Func>
604
<Description>
605
<A>S</A> is a numerical semigroup.
606
<P/>
607
The output is the set of elements <M>s</M> in <A>S</A> such that there exists a minimal solution to <M>msg\cdot x-msg\cdot y = 0</M>, such that <M>x,y</M> are factorizations with the same length of <M>s</M>, and <M>msg</M> is the minimal generating system of <A>S</A>. These elements are used to compute the equal catenary degree of <A>S</A>.
608
609
<Example><![CDATA[
610
gap> s:=NumericalSemigroup(3,5,7);;
611
gap> EqualPrimitiveElementsOfNumericalSemigroup(s);
612
[ 3, 5, 7, 10 ]
613
]]></Example>
614
615
616
</Description>
617
</ManSection>
618
619
620
<ManSection>
621
622
<Func Arg="S" Name="EqualCatenaryDegreeOfNumericalSemigroup"></Func>
623
<Description>
624
<A>S</A> is a numerical semigroup.
625
The output is the equal catenary degree of <A>S</A>.
626
627
<Example><![CDATA[
628
gap> s:=NumericalSemigroup(3,5,7);;
629
gap> EqualCatenaryDegreeOfNumericalSemigroup(s);
630
2
631
]]></Example>
632
</Description>
633
</ManSection>
634
635
<ManSection>
636
<Func Arg="S" Name="MonotonePrimitiveElementsOfNumericalSemigroup"></Func>
637
<Description>
638
<A>S</A> is a numerical semigroup.
639
<P/>
640
The output is the set of elements <M>s</M> in <A>S</A> such that there exists a minimal solution to <M>msg\cdot x-msg\cdot y = 0</M>, such that <M>x,y</M> are factorizations of <M>s</M>, with <M>|x|\le |y|</M>; <M>msg</M> stands the minimal generating system of <A>S</A>. These elements are used to compute the monotone catenary degree of <A>S</A>.
641
642
<Example><![CDATA[
643
gap> s:=NumericalSemigroup(3,5,7);;
644
gap> MonotonePrimitiveElementsOfNumericalSemigroup(s);
645
[ 3, 5, 7, 10, 12, 14, 15, 21, 28, 35 ]
646
]]></Example>
647
648
649
</Description>
650
</ManSection>
651
652
653
<ManSection>
654
655
<Func Arg="S" Name="MonotoneCatenaryDegreeOfNumericalSemigroup"></Func>
656
<Description>
657
<A>S</A> is a numerical semigroup.
658
The output is the monotone catenary degree of <A>S</A>.
659
660
<Example><![CDATA[
661
gap> s:=NumericalSemigroup(10,23,31,44);;
662
gap> CatenaryDegreeOfNumericalSemigroup(s);
663
9
664
gap> MonotoneCatenaryDegreeOfNumericalSemigroup(s);
665
21
666
]]></Example>
667
</Description>
668
</ManSection>
669
670
671
672
673
<ManSection>
674
<Func Arg="S" Name="TameDegreeOfNumericalSemigroup"></Func>
675
<Description>
676
<A>S</A> is a numerical semigroup.
677
The output is the tame degree of <A>S</A>.
678
679
<Example><![CDATA[
680
gap> s:=NumericalSemigroup(101,113,196,272,278,286);
681
<Numerical semigroup with 6 generators>
682
gap> TameDegreeOfNumericalSemigroup(s);
683
14
684
]]></Example>
685
</Description>
686
</ManSection>
687
688
<ManSection>
689
<Func Arg="n, S" Name="TameDegreeOfElementInNumericalSemigroup"></Func>
690
<Description>
691
<A>n</A> is an element of the numerical semigroup <A>S</A>.
692
693
The output is the tame degree of <A>n</A> in <A>S</A>.
694
695
<Example><![CDATA[
696
gap> s:=NumericalSemigroup(10,11,13);
697
<Numerical semigroup with 3 generators>
698
gap> TameDegreeOfElementInNumericalSemigroup(100,s);
699
5
700
]]></Example>
701
</Description>
702
</ManSection>
703
704
</Section>
705
706
<Section>
707
<Heading>
708
Primality
709
</Heading>
710
711
<ManSection>
712
<Func Arg="n, S" Name="OmegaPrimalityOfElementInNumericalSemigroup"></Func>
713
<Description>
714
<A>n</A> is an element of the numerical semigroup <A>S</A>.
715
716
The output is the <M>\omega</M>-primality of <A>n</A> in <A>S</A> as explained in <Cite Key="B-GS-G"></Cite>. The current implementation is due to Chris O'Neill based on a work in progress with Pelayo and Thomas.
717
718
<Example><![CDATA[
719
gap> s:=NumericalSemigroup(10,11,13);
720
<Numerical semigroup with 3 generators>
721
gap> OmegaPrimalityOfElementInNumericalSemigroup(100,s);
722
13
723
]]></Example>
724
</Description>
725
</ManSection>
726
727
<ManSection>
728
<Func Arg="l,S" Name="OmegaPrimalityOfElementListInNumericalSemigroup"></Func>
729
<Description>
730
731
<A>S</A> is a numerical semigroup and <A>l</A> a list of elements of <A>S</A>.
732
<P/>
733
734
Computes the omega-values of all the elements in <A>l</A>.
735
736
<Example><![CDATA[
737
gap> s:=NumericalSemigroup(10,11,13);;
738
gap> l:=FirstElementsOfNumericalSemigroup(100,s);;
739
gap> List(l,x->OmegaPrimalityOfElementInNumericalSemigroup(x,s)); time;
740
[ 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,
741
8, 8, 8, 8, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 10, 11, 10, 10, 10, 10, 10,
742
10, 10, 10, 11, 12, 11, 11, 11, 11, 11, 11, 11, 11, 12, 13, 12, 12, 12, 12,
743
12, 12, 12, 12, 13, 14, 13, 13, 13, 13, 13, 13, 13, 13, 14, 15, 14, 14, 14,
744
14, 14, 14, 14, 14, 15, 16, 15, 15, 15, 15, 15, 15, 15, 15 ]
745
218
746
gap> OmegaPrimalityOfElementListInNumericalSemigroup(l,s);time;
747
[ 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,
748
8, 8, 8, 8, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 10, 11, 10, 10, 10, 10, 10,
749
10, 10, 10, 11, 12, 11, 11, 11, 11, 11, 11, 11, 11, 12, 13, 12, 12, 12, 12,
750
12, 12, 12, 12, 13, 14, 13, 13, 13, 13, 13, 13, 13, 13, 14, 15, 14, 14, 14,
751
14, 14, 14, 14, 14, 15, 16, 15, 15, 15, 15, 15, 15, 15, 15 ]
752
10
753
]]></Example>
754
</Description>
755
</ManSection>
756
757
758
<ManSection>
759
<Func Arg="n, S" Name="OmegaPrimalityOfNumericalSemigroup"></Func>
760
<Description>
761
<A>S</A> is a numerical semigroup.
762
763
The output is the maximum of the <M>\omega</M>-primalities of the minimal generators of <A>S</A>.
764
765
<Example><![CDATA[
766
gap> s:=NumericalSemigroup(10,11,13);
767
<Numerical semigroup with 3 generators>
768
gap> OmegaPrimalityOfNumericalSemigroup(s);
769
5
770
]]></Example>
771
</Description>
772
</ManSection>
773
774
</Section>
775
776
<Section>
777
<Heading>
778
Homogenization of Numerical Semigroups
779
</Heading>
780
781
Let <M> S </M> be a numerical semigroup minimally generated by
782
<M> \{m_1,\ldots,m_n\} </M>. The homogenization of <M>S</M>, <M>S^\mathrm{hom}</M> is the semigroup generated by <M>\{(1,0),(1,m_1),\ldots, (1,m_n)\}</M>. The catenary degree of <M>S^\mathrm{hom}</M> coincides with the homogeneous catenary degree of <M>S</M>, and it is between the catenary and the monotone catenary degree of <M>S</M>. The advantage of this catenary degree is that is less costly to compute than the monotone catenary degree, and has some nice interpretations (<Cite Key="GSOSN"></Cite>). This section contains the auxiliary functions needed to compute the homogeneous catenary degree.
783
784
<ManSection>
785
<Func Arg="n, S" Name="BelongsToHomogenizationOfNumericalSemigroup"></Func>
786
<Description>
787
<A>S</A> is a numerical semigroup and <A>n</A> a list with two entries (a pair).
788
789
The output is true if the <A>n</A> belongs to the homogenization of <A>S</A>.
790
791
<Example><![CDATA[
792
gap> s:=NumericalSemigroup(10,11,13);;
793
gap> BelongsToHomogenizationOfNumericalSemigroup([10,23],s);
794
true
795
gap> BelongsToHomogenizationOfNumericalSemigroup([1,23],s);
796
false
797
]]></Example>
798
</Description>
799
</ManSection>
800
801
802
<ManSection>
803
<Func Arg="n, S" Name="FactorizationsInHomogenizationOfNumericalSemigroup"></Func>
804
<Description>
805
<A>S</A> is a numerical semigroup and <A>n</A> a list with two entries (a pair).
806
807
The output is the set of factorizations <A>n</A> in terms of the minimal generating system of the homogenization of <A>S</A>.
808
809
<Example><![CDATA[
810
gap> s:=NumericalSemigroup(10,11,13);;
811
gap> FactorizationsInHomogenizationOfNumericalSemigroup([20,230],s);
812
[ [ 0, 0, 15, 5 ], [ 0, 2, 12, 6 ], [ 0, 4, 9, 7 ],
813
[ 0, 6, 6, 8 ], [ 0, 8, 3, 9 ], [ 0, 10, 0, 10 ],
814
[ 1, 1, 7, 11 ], [ 1, 3, 4, 12 ], [ 1, 5, 1, 13 ],
815
[ 2, 0, 2, 16 ] ]
816
gap> FactorizationsElementWRTNumericalSemigroup(230,s);
817
[ [ 23, 0, 0 ], [ 12, 10, 0 ], [ 1, 20, 0 ], [ 14, 7, 1 ],
818
[ 3, 17, 1 ], [ 16, 4, 2 ], [ 5, 14, 2 ], [ 18, 1, 3 ],
819
[ 7, 11, 3 ], [ 9, 8, 4 ], [ 11, 5, 5 ], [ 0, 15, 5 ],
820
[ 13, 2, 6 ], [ 2, 12, 6 ], [ 4, 9, 7 ], [ 6, 6, 8 ],
821
[ 8, 3, 9 ], [ 10, 0, 10 ], [ 1, 7, 11 ], [ 3, 4, 12 ],
822
[ 5, 1, 13 ], [ 0, 2, 16 ] ]
823
]]></Example>
824
</Description>
825
</ManSection>
826
827
<ManSection>
828
<Func Arg="n, S" Name="HomogeneousBettiElementsOfNumericalSemigroup"></Func>
829
<Description>
830
<A>S</A> is a numerical semigroup.
831
832
The output is the set of Betti elements of the homogenization of <A>S</A>.
833
834
<Example><![CDATA[
835
gap> s:=NumericalSemigroup(10,17,19);;
836
gap> BettiElementsOfNumericalSemigroup(s);
837
[ 57, 68, 70 ]
838
gap> HomogeneousBettiElementsOfNumericalSemigroup(s);
839
[ [ 5, 57 ], [ 5, 68 ], [ 6, 95 ], [ 7, 70 ], [ 9, 153 ] ]
840
]]></Example>
841
</Description>
842
</ManSection>
843
844
<ManSection>
845
<Func Arg="S" Name="HomogeneousCatenaryDegreeOfNumericalSemigroup"></Func>
846
<Description>
847
<A>S</A> is a numerical semigroup.
848
849
The output is the homogeneous catenary degree of <A>S</A>. Observe that for a single element in the homogenization of <A>S</A>, its catenary degree can be computed with CatenaryDegreeOfSetOfFactorizations and FactorizationsInHomogenizationOfNumericalSemigroup.
850
851
<Example><![CDATA[
852
gap> s:=NumericalSemigroup(10,17,19);;
853
gap> CatenaryDegreeOfNumericalSemigroup(s);
854
7
855
gap> HomogeneousCatenaryDegreeOfNumericalSemigroup(s);
856
9
857
]]></Example>
858
</Description>
859
</ManSection>
860
861
</Section>
862
863
<Section>
864
<Heading>
865
Divisors, posets
866
</Heading>
867
868
Given a numerical semigroup <M>S</M> and two integers <M>a,b</M>, we write <M>a\le_S b</M> if <M>b-a\in S</M>. We also say that <M>a</M> divides <M>b</M> (with respect to <M>S</M>). The semigroup <M>S</M> with this binary relation is a poset.<P/>
869
870
The set of divisors of <M>n</M> in <M>S</M> will be denoted by <M>\mathrm{D}_S(n)</M>. If we are given <M>n_1,\ldots,n_r\in S</M>, the set of the divisors of these elements is <M>\mathrm{D}(n_1,\ldots, n_r)= \bigcup_{i=1}^r \mathrm{D}(n_i)</M>.
871
872
<ManSection>
873
<Func Arg="S,n" Name="MoebiusFunctionAssociatedToNumericalSemigroup"></Func>
874
<Description>
875
<A>S</A> is a numerical semigroup and <A>n</A> is an integer.
876
877
As <M>(S,\le_S)</M> is a poset, we can define the Möbius function associated to it as in <Cite Key="CHRA"></Cite>. The output is the value of the Möbius function in the integer <A>n</A>, that is, the alternate sum of the number of chains from 0 to <A>n</A>.
878
879
<Example><![CDATA[
880
gap> s:=NumericalSemigroup(3,5,7);;
881
gap> MoebiusFunctionAssociatedToNumericalSemigroup(s,10);
882
2
883
gap> MoebiusFunctionAssociatedToNumericalSemigroup(s,34);
884
25
885
]]></Example>
886
</Description>
887
</ManSection>
888
889
890
<ManSection>
891
<Oper Arg="S,n" Name="DivisorsOfElementInNumericalSemigroup"/>
892
<Description>
893
<A>S</A> is a numerical semigroup and <A>n</A> is an integer. The arguments can also be given as <A>n, S</A>.
894
895
The output is the set of divisors of <A>n</A> in <A>S</A>.
896
897
<Example><![CDATA[
898
gap> s:=NumericalSemigroup(5,7,11);;
899
gap> DivisorsOfElementInNumericalSemigroup(s,20);
900
[ 0, 5, 10, 15, 20 ]
901
gap> DivisorsOfElementInNumericalSemigroup(20,s);
902
[ 0, 5, 10, 15, 20 ]
903
]]></Example>
904
</Description>
905
</ManSection>
906
907
908
</Section>
909
910
<Section>
911
<Heading>
912
Feng-Rao distances and numbers
913
</Heading>
914
915
Let <M>S</M> be a numerical semigroup and let <M>n\in S</M>. The Feng-Rao distance of <M>n</M> is then defined as <M>\delta_S(n)=\min\{ \#\mathrm{D}(x)\mid n\le x,\ x\in S\}</M>.<P/>
916
917
The <M>r</M>th generalized distance is <M>\delta_S^r(n)=\{ \#\mathrm{D}(n_1,\ldots,n_r) \mid n\le n_1 &lt; \cdots &lt; n_r,\ n_i\in S\}</M>.
918
919
<ManSection>
920
<Func Arg="S,r" Name="FengRaoDistance"></Func>
921
<Description>
922
<A>S</A> is a numerical semigroup, <A>r</A> and <A>m</A> integers.
923
924
The output is the <A>r</A>-th Feng-Rao distance of the element <A>m</A> in the numerical semigroup <A>S</A>.
925
926
<Example><![CDATA[
927
gap> S := NumericalSemigroup(7,9,17);;
928
gap> FengRaoDistance(S,6,100);
929
86
930
]]></Example>
931
</Description>
932
</ManSection>
933
934
<ManSection>
935
<Oper Arg="S,r" Name="FengRaoNumber"/>
936
<Description>
937
<A>S</A> is a numerical semigroup and <A>r</A> is an integer.
938
939
The output is the <A>r</A>-th Feng-Rao number of the numerical semigroup <A>S</A>.
940
941
<Example><![CDATA[
942
gap> S := NumericalSemigroup(7,8,17);;
943
gap> FengRaoNumber(S,209);
944
224
945
gap> FengRaoNumber(209,S);
946
224
947
]]></Example>
948
</Description>
949
</ManSection>
950
951
952
</Section>
953
954