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
2
12 Good semigroups
3
4
We will only cover here good semigroups of N^2.
5
6
A good semigroup S is a submonoid of N^2, with the following properties.
7
8
(G1) It is closed under infimums (minimum componentwise).
9
10
(G2) if a, b ∈ M and a_i = b_i for some i ∈ {1, 2}, then there exists c ∈ M
11
such that c_i > a_i = b_i and c_j = min{a_j,b_j}, with j∈{1,2}∖ {i}.
12
13
(G3) there exists C∈N^n such that C+N^n⊆ S.
14
15
Value semigroups of algebroid branches are good semigroups, but there are
16
good semigroups that are not of this form. Since good semigroups are closed
17
under infimums, if C_1 and C_2 fulfill C_i+N^n⊆ S, then C_1∧ C_2+N^n⊆ S. So
18
there is a minimum C fulfilling C+N^n⊆ S, which is called the conductor of
19
S.
20
21
The contents of this chapter are described in [DGSM16].
22
23
24
12.1 Defining good semigroups
25
26
12.1-1 IsGoodSemigroup
27
28
IsGoodSemigroup( S )  function
29
30
Detects if S is an object of type good semigroup.
31
32
12.1-2 NumericalSemigroupDuplication
33
34
NumericalSemigroupDuplication( S, E )  function
35
36
S is a numerical semigroup and E is an ideal of S with E⊆ S. The output is
37
S⋈ E= D∪ (E× E)∪{ a∧ b∣ a∈ D, b∈ E× E}, where D={(s,s)∣ s∈ S}.
38
39
 Example 
40
gap> s:=NumericalSemigroup(3,5,7);;
41
gap> e:=6+s;;
42
gap> dup:=NumericalSemigroupDuplication(s,e);
43
<Good semigroup>
44
gap> l:=Cartesian([1..11],[1..11]);;
45
gap> Intersection(dup,l);
46
[ [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ], [ 6, 10 ],
47
 [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ], [ 9, 9 ],
48
 [ 9, 10 ], [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ], [ 11, 6 ],
49
 [ 11, 9 ], [ 11, 11 ] ]
50
gap> [384938749837,349823749827] in dup;
51
true
52

53
54
12.1-3 AmalgamationOfNumericalSemigroups
55
56
AmalgamationOfNumericalSemigroups( S, E, b )  function
57
58
S is a numerical semigroup, E is an ideal of a numerical semigroup T with E⊆
59
T, and b is an integer such that multiplication by b is a morphism from S to
60
T, say g. The output is S⋈^g E= D∪(g^-1(E)× E)∪ {a∧ b∣ a∈ D, b∈ g^-1(E)× E},
61
where D={(s,b s)∣ s∈ S}.
62
63
 Example 
64
gap> s:=NumericalSemigroup(2,3);;
65
gap> t:=NumericalSemigroup(3,4);;
66
gap> e:=3+t;;
67
gap> dup:=AmalgamationOfNumericalSemigroups(s,e,2);;
68
gap> [2,3] in dup;
69
true
70

71
72
12.1-4 CartesianProductOfNumericalSemigroups
73
74
CartesianProductOfNumericalSemigroups( S, T )  function
75
76
S and T are numerical semigroups. The output is S× T, which is a good
77
semigroup.
78
79
 Example 
80
gap> s:=NumericalSemigroup(2,3);;
81
gap> t:=NumericalSemigroup(3,4);;
82
gap> IsGoodSemigroup(CartesianProductOfNumericalSemigroups(s,t));
83
true
84

85
86
12.1-5 GoodSemigroup
87
88
GoodSemigroup( X, C )  function
89
90
X is a list of points with nonnegative integer coordinates and C is a pair
91
of nonnegative integer (a list with two elements). If M is the affine and
92
infimum closure of X, decides if it is a good semigroup, and if so, outputs
93
it.
94
95
 Example 
96
gap> G:=[[4,3],[7,13],[11,17],[14,27],[15,27],[16,20],[25,12],[25,16]];
97
[ [ 4, 3 ], [ 7, 13 ], [ 11, 17 ], [ 14, 27 ], [ 15, 27 ], [ 16, 20 ],
98
 [ 25, 12 ], [ 25, 16 ] ]
99
gap> C:=[25,27];
100
[ 25, 27 ]
101
gap> GoodSemigroup(G,C);
102
<Good semigroup>
103

104
105
106
12.2 Notable elements
107
108
12.2-1 BelongsToGoodSemigroup
109
110
BelongsToGoodSemigroup( v, S )  operation
111
\in( v, S )  operation
112
113
S is a good semigroup and v is a pair of integers. The output is true if v
114
is in S, and false otherwise. Other ways to use this operation are \in(v,S)
115
and v in S.
116
117
 Example 
118
gap> s:=NumericalSemigroup(2,3);;
119
gap> e:=6+s;;
120
gap> dup:=NumericalSemigroupDuplication(s,e);;
121
gap> BelongsToGoodSemigroup([2,2],dup);
122
true
123
gap> [2,2] in dup;
124
true
125
gap> [3,2] in dup;
126
false
127

128
129
12.2-2 Conductor
130
131
Conductor( S )  function
132
ConductorOfGoodSemigroup( S )  function
133
134
S is a good semigroup. The output is its conductor.
135
136
 Example 
137
gap> s:=NumericalSemigroup(3,5,7);;
138
gap> e:=6+s;;
139
gap> dup:=NumericalSemigroupDuplication(s,e);
140
<Good semigroup>
141
gap> Conductor(dup);
142
[ 11, 11 ]
143
gap> ConductorOfGoodSemigroup(dup);
144
[ 11, 11 ]
145

146
147
12.2-3 SmallElements
148
149
SmallElements( S )  function
150
SmallElementsOfGoodSemigroup( S )  function
151
152
S is a good semigroup. The output is its set of small elements, that is, the
153
elements smaller than its conductor with respect to the usual partial
154
ordering.
155
156
 Example 
157
gap> s:=NumericalSemigroup(3,5,7);;
158
gap> e:=6+s;;
159
gap> dup:=NumericalSemigroupDuplication(s,e);
160
<Good semigroup>
161
gap> SmallElementsOfGoodSemigroup(dup);
162
[ [ 0, 0 ], [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ],
163
 [ 6, 10 ], [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ],
164
 [ 9, 9 ], [ 9, 10 ], [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ],
165
 [ 11, 6 ], [ 11, 9 ], [ 11, 11 ] ]
166

167
168
12.2-4 RepresentsSmallElementsOfGoodSemigroup
169
170
RepresentsSmallElementsOfGoodSemigroup( X )  function
171
172
X is a list of points in the nonnegative orthant of the plane with integer
173
coordinates. Determines if it represents the set of small elements of a good
174
semigroup.
175
176
 Example 
177
gap> s:=NumericalSemigroup(3,5,7);;
178
gap> e:=6+s;;
179
gap> dup:=NumericalSemigroupDuplication(s,e);
180
<Good semigroup>
181
gap> SmallElementsOfGoodSemigroup(dup);
182
[ [ 0, 0 ], [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ], [ 6, 10 ],
183
 [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ], [ 9, 9 ], [ 9, 10 ],
184
 [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ], [ 11, 6 ], [ 11, 9 ], [ 11, 11 ] ]
185
gap> RepresentsSmallElementsOfGoodSemigroup(last);
186
true
187

188
189
12.2-5 GoodSemigroupBySmallElements
190
191
GoodSemigroupBySmallElements( X )  function
192
193
X is a list of points in the nonnegative orthant of the plane with integer
194
coordinates. Determines if it represents the set of small elements of a good
195
semigroup, and then outputs the good semigroup having X as set of small
196
elements.
197
198
 Example 
199
gap> s:=NumericalSemigroup(3,5,7);;
200
gap> e:=6+s;;
201
gap> dup:=NumericalSemigroupDuplication(s,e);
202
<Good semigroup>
203
gap> SmallElementsOfGoodSemigroup(dup);
204
[ [ 0, 0 ], [ 3, 3 ], [ 5, 5 ], [ 6, 6 ], [ 6, 7 ], [ 6, 8 ], [ 6, 9 ], [ 6, 10 ],
205
 [ 6, 11 ], [ 7, 6 ], [ 7, 7 ], [ 8, 6 ], [ 8, 8 ], [ 9, 6 ], [ 9, 9 ], [ 9, 10 ],
206
 [ 9, 11 ], [ 10, 6 ], [ 10, 9 ], [ 10, 10 ], [ 11, 6 ], [ 11, 9 ], [ 11, 11 ] ]
207
gap> G:=GoodSemigroupBySmallElements(last);
208
<Good semigroup>
209
gap> dup=G;
210
true
211

212
213
12.2-6 MaximalElementsOfGoodSemigroup
214
215
MaximalElementsOfGoodSemigroup( S )  attribute
216
217
S is a good semigroup. The output is the set of elements (x,y) of S with the
218
following property: there is no other element (x',y') in S with (x,y)le
219
(x',y') sharing a coordinate with (x,y).
220
221
 Example 
222
gap> G:=[[4,3],[7,13],[11,17]];;
223
gap> g:=GoodSemigroup(G,[11,17]);;
224
gap> mx:=MaximalElementsOfGoodSemigroup(g);
225
[ [ 0, 0 ], [ 4, 3 ], [ 7, 13 ], [ 8, 6 ] ]
226

227
228
12.2-7 IrreducibleMaximalElementsOfGoodSemigroup
229
230
IrreducibleMaximalElementsOfGoodSemigroup( S )  attribute
231
232
S is a good semigroup. The output is the set of elements nonzero maximal
233
elements that cannot be expressed as a sum of two nonzero maximal elements
234
of the good semigroup.
235
236
 Example 
237
gap> G:=[[4,3],[7,13],[11,17]];;
238
gap> g:=GoodSemigroup(G,[11,17]);;
239
gap> IrreducibleMaximalElementsOfGoodSemigroup(g);
240
[ [ 4, 3 ], [ 7, 13 ] ]
241

242
243
12.2-8 GoodSemigroupByMaximalElements
244
245
GoodSemigroupByMaximalElements( S, T, M, C )  function
246
247
S and T are numerical semigroups, M is a list of pairs in S× T. C is the
248
conductor, and thus a pair of nonnegative integers. The output is the set of
249
elements of S× T that are not above an element in M, that is, if they share
250
a coordinate with an element in M, then they must be smaller or equal to
251
that element with respect to the usual partial ordering. The output is a
252
good semigroup, if M is an correct set of maximal elements.
253
254
 Example 
255
gap> G:=[[4,3],[7,13],[11,17]];;
256
gap> g:=GoodSemigroup(G,[11,17]);;
257
gap> sm:=SmallElements(g);;
258
gap> mx:=MaximalElementsOfGoodSemigroup(g);;
259
gap> s:=NumericalSemigroupBySmallElements(Set(sm,x->x[1]));;
260
gap> t:=NumericalSemigroupBySmallElements(Set(sm,x->x[2]));;
261
gap> Conductor(g);
262
[ 11, 15 ]
263
gap> gg:=GoodSemigroupByMaximalElements(s,t,mx,[11,15]);
264
<Good semigroup>
265
gap> gg=g;
266
true
267

268
269
12.2-9 MinimalGoodGeneratingSystemOfGoodSemigroup
270
271
MinimalGoodGeneratingSystemOfGoodSemigroup( S )  function
272
273
S is a good semigroup. The output is its minimal good generating system
274
(which is unique in the local case).
275
276
 Example 
277
gap> s:=NumericalSemigroup(3,5,7);;
278
gap> e:=6+s;;
279
gap> dup:=NumericalSemigroupDuplication(s,e);
280
<Good semigroup>
281
gap> MinimalGoodGeneratingSystemOfGoodSemigroup(dup);
282
[ [ 3, 3 ], [ 5, 5 ], [ 6, 11 ], [ 7, 7 ], [ 11, 6 ] ]
283

284
285
12.2-10 MinimalGenerators
286
287
MinimalGenerators( S )  attribute
288
289
This is just a synonym of  MinimalGoodGeneratingSystemOfGoodSemigroup (S).
290
291
 Example 
292
gap> s:=NumericalSemigroup(3,5,7);;
293
gap> e:=6+s;;
294
gap> dup:=NumericalSemigroupDuplication(s,e);
295
<Good semigroup>
296
gap> MinimalGenerators(dup);
297
[ [ 3, 3 ], [ 5, 5 ], [ 6, 11 ], [ 7, 7 ], [ 11, 6 ] ]
298

299
300
301
12.3 Symmetric semigroups
302
303
12.3-1 IsSymmetricGoodSemigroup
304
305
IsSymmetricGoodSemigroup( S )  attribute
306
IsSymmetric( S )  attribute
307
308
S is a good semigroup. Determines if S is a symmetric good semigroup.
309
310
 Example 
311
gap> s:=NumericalSemigroup(3,5,7);;
312
gap> e:=CanonicalIdealOfNumericalSemigroup(s);;
313
gap> e:=15+e;;
314
gap> dup:=NumericalSemigroupDuplication(s,e);;
315
gap> IsSymmetricGoodSemigroup(dup);
316
true
317

318
319
12.3-2 ArfGoodSemigroupClosure
320
321
ArfGoodSemigroupClosure( S )  function
322
ArfClosure( S )  operation
323
324
S is a good semigroup. Determines the Arf good semigroup closure of S.
325
326
 Example 
327
gap> G:=[[3,3],[4,4],[5,4],[4,6]];
328
[ [ 3, 3 ], [ 4, 4 ], [ 5, 4 ], [ 4, 6 ] ]
329
gap> C:=[6,6];
330
[ 6, 6 ]
331
gap> S:=GoodSemigroup(G,C);
332
<Good semigroup>
333
gap> SmallElements(S);
334
[ [ 0, 0 ], [ 3, 3 ], [ 4, 4 ], [ 4, 6 ], [ 5, 4 ], [ 6, 6 ] ]
335
gap> A:=ArfGoodSemigroupClosure(S);
336
<Good semigroup>
337
gap> SmallElements(A);
338
[ [ 0, 0 ], [ 3, 3 ], [ 4, 4 ] ]
339

340
341
342
12.4 Good ideals
343
344
A relative ideal I of a relative good semigroup M is a relative good ideal
345
if I fulfills conditions (G1) and (G2) of the definition of good semigroup.
346
347
12.4-1 GoodIdeal
348
349
GoodIdeal( X, S )  function
350
351
X is a list of points with nonnegative integer coordinates and S is good
352
semigroup. Decides if the closure of X+S under infimums is a relative good
353
ideal of S, and if so, outputs it.
354
355
 Example 
356
gap> G:=[[4,3],[7,13],[11,17],[14,27],[15,27],[16,20],[25,12],[25,16]];
357
[ [ 4, 3 ], [ 7, 13 ], [ 11, 17 ], [ 14, 27 ], [ 15, 27 ], [ 16, 20 ],
358
[ 25, 12 ], [ 25, 16 ] ]
359
gap> C:=[25,27];
360
[ 25, 27 ]
361
gap> g := GoodSemigroup(G,C);
362
<Good semigroup>
363
gap> i:=GoodIdeal([[2,3]],g);
364
<Good ideal of good semigroup>
365

366
367
12.4-2 GoodGeneratingSystemOfGoodIdeal
368
369
GoodGeneratingSystemOfGoodIdeal( I )  function
370
371
I is a good ideal of a good semigroup. The output is a good generating
372
system of I.
373
374
 Example 
375
gap> s:=NumericalSemigroup(3,5,7);;
376
gap> e:=10+s;;
377
gap> d:=NumericalSemigroupDuplication(s,e);;
378
gap> e:=GoodIdeal([[2,3],[3,2],[2,2]],d);;
379
gap> GoodGeneratingSystemOfGoodIdeal(e);
380
[ [ 2, 2 ], [ 2, 3 ], [ 3, 2 ] ]
381

382
383
12.4-3 AmbientGoodSemigroupOfGoodIdeal
384
385
AmbientGoodSemigroupOfGoodIdeal( I )  function
386
387
If I is a good ideal of a good semigroup M, then the output is M. The output
388
is a good generating system of I.
389
390
 Example 
391
gap> s:=NumericalSemigroup(3,5,7);;
392
gap> e:=10+s;;
393
gap> a:=AmalgamationOfNumericalSemigroups(s,e,5);;
394
gap> e:=GoodIdeal([[2,3],[3,2],[2,2]],a);;
395
gap> a=AmbientGoodSemigroupOfGoodIdeal(e);
396
true
397

398
399
12.4-4 MinimalGoodGeneratingSystemOfGoodIdeal
400
401
MinimalGoodGeneratingSystemOfGoodIdeal( I )  function
402
403
I is a good ideal of a good semigroup. The output is the minimal good
404
generating system of I.
405
406
 Example 
407
gap> s:=NumericalSemigroup(3,5,7);;
408
gap> e:=10+s;;
409
gap> d:=NumericalSemigroupDuplication(s,e);;
410
gap> e:=GoodIdeal([[2,3],[3,2],[2,2]],d);;
411
gap> MinimalGoodGeneratingSystemOfGoodIdeal(e);
412
[ [ 2, 3 ], [ 3, 2 ] ]
413

414
415
12.4-5 BelongsToGoodIdeal
416
417
BelongsToGoodIdeal( v, I )  operation
418
\in( v, I )  operation
419
420
I is a good ideal of a good semigroup and v is a pair of integers. The
421
output is true if v is in I, and false otherwise. Other ways to use this
422
operation are \in(v,I) and v in I.
423
424
 Example 
425
gap> s:=NumericalSemigroup(3,5,7);;
426
gap> e:=10+s;;
427
gap> d:=NumericalSemigroupDuplication(s,e);;
428
gap> e:=GoodIdeal([[2,3],[3,2]],d);;
429
gap> [1,1] in e;
430
false
431
gap> [2,2] in e;
432
true
433

434
435
12.4-6 SmallElementsOfGoodIdeal
436
437
SmallElementsOfGoodIdeal( I )  function
438
SmallElements( I )  function
439
440
I is a good ideal. The output is its set of small elements, that is, the
441
elements smaller than its conductor and larger than its minimum element
442
(with respect to the usual partial ordering).
443
444
 Example 
445
gap> s:=NumericalSemigroup(3,5,7);;
446
gap> e:=10+s;;
447
gap> d:=NumericalSemigroupDuplication(s,e);;
448
gap> e:=GoodIdeal([[2,3],[3,2]],d);;
449
gap> SmallElements(e);
450
[ [ 2, 2 ], [ 2, 3 ], [ 3, 2 ], [ 5, 5 ], [ 5, 6 ], [ 6, 5 ], [ 7, 7 ] ]
451

452
453
12.4-7 CanonicalIdealOfGoodSemigroup
454
455
CanonicalIdealOfGoodSemigroup( S )  function
456
457
S is a good semigroup. The output is the canonical ideal of S.
458
459
 Example 
460
gap> s:=NumericalSemigroup(3,5,7);;
461
gap> e:=10+s;;
462
gap> d:=NumericalSemigroupDuplication(s,e);;
463
gap> c:=CanonicalIdealOfGoodSemigroup(d);;
464
gap> MinimalGoodGeneratingSystemOfGoodIdeal(c);
465
[ [ 0, 0 ], [ 2, 2 ] ]
466

467
468
469