Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

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

563501 views
1
2
6 Usage of IntPic in connection with the numericalsgps package
3
4
This chapter describes functions to be used in connection with the
5
numericalsgps package. We found it particularly usefull to gain intuition
6
that led to the obtention of the results stated in [DGSRP16].
7
8
9
6.1 Tikz code for drawing numerical semigroups
10
11
12
6.1-1 Tikz code for drawing numerical semigroups
13
14
TikzCodeForNumericalSemigroup( arg )  function
15
16
The arguments (at most 4) are:
17
18
1 a numerical semigroup
19
20
2 (optional) a list whose elements are either
21
22
 lists of integers or
23
24
 one of the strings "pseudo_frobenius", "small_elements",
25
"min_generators", "frobenius_number", "conductor",
26
"special_gaps", "fundamental_gaps" (the default: used when no
27
list is present) or
28
29
3 a record whose fields are
30
31
 func -- a function name
32
33
 (optional) argument -- an argument (that may be a function name
34
also)
35
36
4 (optional) a positive integer -- if it is bigger than the conductor or
37
biggest minimal generator, it indicates the number of cells - 1 to be
38
drawn and these are drawn in a single line; otherwise, it indicates
39
the maximum number of cells per line.
40
41
 Example 
42
gap> ns1 := NumericalSemigroup(3,5);;
43
gap> TikzCodeForNumericalSemigroup(ns1,[[3,4],"pseudo_frobenius"],20);
44
"%tikz\n\\begin{tikzpicture}[every node/.style={draw,scale=1pt,\nminimum width\
45
=20pt,inner sep=3pt,\nline width=0pt,draw=black}]\n\\matrix[row sep=2pt,column\
46
 sep=2pt]\n{\\node[]{0};&\n\\node[]{1};&\n\\node[]{2};&\n\\node[fill=red]{3};&\
47
\n\\node[fill=red]{4};&\n\\node[]{5};&\n\\node[]{6};&\n\\node[fill=green]{7};&\
48
\n\\node[]{8};&\n\\node[]{9};&\n\\node[]{10};&\n\\node[]{11};&\n\\node[]{12};&\
49
\n\\node[]{13};&\n\\node[]{14};&\n\\node[]{15};&\n\\node[]{16};&\n\\node[]{17}\
50
;&\n\\node[]{18};&\n\\node[]{19};&\n\\node[]{20};\\\\\n};\n\\end{tikzpicture}\
51
\n"
52

53
54
 Example 
55
gap> IP_Splash(TikzCodeForNumericalSemigroup(NumericalSemigroup(7,13,19,23),
56
> [[3,4],"small_elements","fundamental_gaps"],20),rec(viewer := "evince")); 
57

58
59
60
6.2 Drawing sets of numerical semigroups
61
62
63
6.2-1 Set of numerical semigroups
64
65
SetOfNumericalSemigroups( arg )  function
66
67
This function is used to produce lists of numerical semigroups with a fixed
68
genus or Frobenius number. They are filtered and ordered according to some
69
criteria.
70
71
The argument is a record of options:
72
73
1 set -- a record whose possible fields are genus or frobenius
74
75
2 (optional) filter -- a record whose possible fields are genus, type
76
and/or multiplicity and/or frobenius and/or embedding_dimension
77
78
3 (optional) order -- ("genus", "type", "multiplicity", "frobenius",
79
"embedding_dimension")
80
81
 Example 
82
gap> SetOfNumericalSemigroups(rec(set:=rec(genus:=6),filter:=rec(type:= 2),
83
> order:="multiplicity"));
84
[ <Numerical semigroup with 3 generators>, 
85
 <Numerical semigroup with 3 generators>, 
86
 <Numerical semigroup with 4 generators>, 
87
 <Numerical semigroup with 5 generators>, 
88
 <Numerical semigroup with 5 generators>, 
89
 <Numerical semigroup with 6 generators> ]
90
gap> SetOfNumericalSemigroups(rec(set:=rec(genus:=6),filter:=rec(type:= 2),
91
> order:="frobenius")); 
92
[ <Numerical semigroup with 3 generators>, 
93
 <Numerical semigroup with 5 generators>, 
94
 <Numerical semigroup with 5 generators>, 
95
 <Numerical semigroup with 3 generators>, 
96
 <Numerical semigroup with 4 generators>, 
97
 <Numerical semigroup with 6 generators> ]
98
gap> List(last,MinimalGeneratingSystem);
99
[ [ 3, 10, 11 ], [ 5, 6, 7 ], [ 5, 6, 8 ], [ 3, 8, 13 ], [ 4, 7, 9 ], 
100
 [ 6, 7, 8, 9, 11 ] ]
101

102
103
104
6.2-2 Draw a set of numerical semigroups
105
106
DrawSetOfNumericalSemigroups( arg )  function
107
108
Produces a single image from the images of a set of numerical semigroups.
109
110
The arguments (at most 3) are:
111
112
1 a list of numerical semigroups (given as a list or each given as
113
argument)
114
115
2 (optional) an integer that (when present) determines the length of
116
each line
117
118
3 (optional) a record whose fields are
119
120
 (optional) splash -- which (when present) consists of a record
121
of options for the Viz Splash function
122
123
 (optional) highlights: a list to be passed to the function that
124
produces the tikz code for each individual semigroup (whose aim
125
is to say which elements are to be highlighted)
126
127
 Example 
128
gap> ns1 := NumericalSemigroup(3,5);;
129
gap> ns2 := NumericalSemigroup(5,7,11);;
130
gap> DrawSetOfNumericalSemigroups(ns1,rec(splash:= 
131
> rec(viewer := "evince"),highlights := 
132
> ["pseudo_frobenius","small_elements","min_generators"]));
133
gap> DrawSetOfNumericalSemigroups(ns1,ns2,rec(splash:= 
134
> rec(viewer := "evince"),highlights := 
135
> ["pseudo_frobenius","small_elements","min_generators"]));
136
gap> DrawSetOfNumericalSemigroups([ns1,ns2],rec(splash:= 
137
> rec(viewer := "evince"),highlights := 
138
> ["small_elements","min_generators"])); 
139

140
141
 Example 
142
gap> frob := 15;;
143
gap> tipo := 2;;
144
gap> set := SetOfNumericalSemigroups(rec(set := rec(frobenius := frob),
145
> filter := rec(type:= tipo),order := "embedding_dimension"));;
146
gap> DrawSetOfNumericalSemigroups(set,rec(splash:= rec(viewer := "evince"),
147
> highlights := ["small_elements","min_generators",
148
> rec(func:= "ForcedIntegersForPseudoFrobenius", 
149
> argument := "PseudoFrobeniusOfNumericalSemigroup")]));
150

151
152
The following example helps in the understanding of the colors present in
153
the first line of previous figure.
154
155
 Example 
156
gap> ns := NumericalSemigroup(4,9,19);;
157
gap> SmallElements(ns);
158
[ 0, 4, 8, 9, 12, 13, 16 ]
159
gap> MinimalGeneratingSystem(ns);
160
[ 4, 9, 19 ]
161
gap> ForcedIntegersForPseudoFrobenius(PseudoFrobeniusOfNumericalSemigroup(ns));
162
[ [ 1, 2, 3, 5, 6, 7, 14, 15 ], [ 0, 8, 9, 12, 13, 16 ] ]
163

164
165
166