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

985062 views
1
2
1 The GAP Table of Marks Library
3
4
5
1.1 Tables Of Marks
6
7
The concept of a Table of Marks was introduced by W.Burnside in his book
8
``Theory of Groups of Finite Order'' [Bur55]. Therefore a table of marks is
9
sometimes called a Burnside matrix. The table of marks of a finite group G
10
is a matrix whose rows and columns are labelled by the conjugacy classes of
11
subgroups of G and where for two subgroups H and K the (H, K)–entry is the
12
number of fixed points of K in the transitive action of G on the cosets of H
13
in G. So the table of marks characterizes the set of all permutation
14
representations of G. Moreover, the table of marks gives a compact
15
description of the subgroup lattice of G, since from the numbers of fixed
16
points the numbers of conjugates of a subgroup K contained in a subgroup H
17
can be derived. For small groups the table of marks of G can be constructed
18
directly in GAP by first computing the entire subgroup lattice of G.
19
However, for larger groups this method is unfeasible. The GAP Table of Marks
20
library provides access to several hundred table of marks and their maximal
21
subgroups.
22
23
24
1.2 Installing The Table of Marks Library
25
26
Download the archives in your preferred format. Unpack the archives inside
27
the pkg dirctory of your GAP installation. Load the package
28
29
--------------------------- Example ----------------------------
30
gap> LoadPackage("tomlib");
31
true
32
------------------------------------------------------------------
33
34
35
1.3 Contents
36
37
TomLib contains several hundred tables of marks. For a complete list of the
38
contents of the library do the following.
39
40
--------------------------- Example ----------------------------
41
gap> names:=AllLibTomNames();;
42
gap> "A5" in names;
43
true
44
------------------------------------------------------------------
45
46
The current version of the tomlib contains the tables of marks of the groups
47
listed below as well as the tables of many of their maximal subgroups and
48
automorphism groups. The Alternating groups A_n
49
50
-- for n = 5, 6, 7, 8, 9, 10, 11, 12, 13.
51
52
The Symmetric groups S_n
53
54
-- for n = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13.
55
56
The Linear groups L_2(n) for
57
58
-- n = 7, 8, 11, 13, 16, 17, 19, 23, 25, 27, 29, 31, 32, 37, 41, 43, 47,
59
49, 53
60
61
-- n = 59, 61, 64, 67, 71, 73, 79, 81, 83, 89, 97, 101, 103, 107, 109,
62
113, 121, 125 .
63
64
along with
65
66
-- L_3(4), L_3(3), L_3(5), L_3(7), L_3(9)
67
68
-- L_4(3), L_3(8), L_3(11).
69
70
The Unitary groups
71
72
-- U_3(3), U_4(3), U_3(5), U_3(4), U_3(11), U_3(7), U_3(8)
73
74
-- U_3(9), U_4(2), U_5(2)
75
76
The Sporadic Groups
77
78
-- Co_3, HS, McL, He, J_1, J_2, J_3, M_11, M_12, M_22, M_23, M_24
79
80
The names given to each subgroup are consistent with those used in Robert
81
Wilson's atlas [ATLAS] For example if you wish to access the table of marks
82
of the maximal subgroup "5:4 x A5" of the Higman-Sims group do the
83
following:
84
85
--------------------------- Example ----------------------------
86
gap> TableOfMarks("5:4xA5");
87
TableOfMarks( "5:4xA5" )
88
------------------------------------------------------------------
89
90
91
1.4 Administrative Functions
92
93
Here we document some of the administrative facilities for the the GAP
94
library of tables of marks.
95
96
1.4-1 LIBTOMKNOWN
97
98
> LIBTOMKNOWN________________________________________________global variable
99
100
LIBTOMKNOWN is a record that controls the loading of data files of the GAP
101
library of tables of marks. It has the following components.
102
103
ACTUAL 
104
the name of the file to be read at the moment (set by
105
SetActualLibFileName),
106
107
LOADSTATUS 
108
a record whose components are names of files in the library of tables
109
of marks, with value a list whose first entry is one of "loaded",
110
"unloaded", "userloaded" and whose second entry is an integer that
111
controls when the corresponding tables of marks can be removed from
112
GAP,
113
114
MAX 
115
GAP remembers at most MAX of the previously loaded library files (the
116
default value is 10),
117
118
UNLOAD 
119
is it allowed to remove previously loaded library files (is set to
120
true by default),
121
122
STDGEN 
123
a list describing standard generators of almost simple groups in the
124
table of marks library.
125
126
Additionally the names of the files already loaded occur as components of
127
LIBTOMKNOWN; the corresponding values are given by the data of the files.
128
129
1.4-2 IsLibTomRep
130
131
> IsLibTomRep( obj ) _________________________________________Representation
132
133
Library tables of marks have their own representation. IsLibTomRep tests if
134
obj is a library representation.
135
136
1.4-3 TableOfMarksFromLibrary
137
138
> TableOfMarksFromLibrary( string ) ________________________________function
139
Returns: the table of marks with name string.
140
141
1.4-4 ConvertToLibTom
142
143
> ConvertToLibTom( record ) ________________________________________function
144
145
ConvertToLibTom converts a record with components from
146
TableOfMarksComponents into a library table of marks object with the
147
corresponding attribute values set.
148
149
1.4-5 SetActualLibFileName
150
151
> SetActualLibFileName( filename ) _________________________________function
152
153
Sets the file name for filename.
154
155
1.4-6 LIBTOM
156
157
> LIBTOM( arg ) ____________________________________________________function
158
> AFLT( source, destination, fusion ) ______________________________function
159
> ACLT( identifier, component, value ) _____________________________function
160
161
The library format of a library table of marks is a call to the function
162
LIBTOM, with the arguments sorted as in TableOfMarksComponents .
163
164
AFLT adds a fusion map value from the table of marks with name source to the
165
table of marks with name destination. The fusion map is a list of positive
166
integers, storing at position i the position of the class in destination
167
that contains the subgroups in the i-th class of source.
168
169
ACLT adds the value value of a component with name component to the table of
170
marks with identifier value identifier in the library of tables of marks.
171
172
1.4-7 AllLibTomNames
173
174
> AllLibTomNames(  ) _______________________________________________function
175
Returns: a list containing all names of available library tables of marks.
176
177
1.4-8 NamesLibTom
178
179
> NamesLibTom( string ) ___________________________________________attribute
180
> NamesLibTom( tom ) ______________________________________________attribute
181
Returns: all names of the library table tom or of the library table with
182
name string
183
184
1.4-9 NotifiedFusionsOfLibTom
185
186
> NotifiedFusionsOfLibTom( tom ) __________________________________attribute
187
> NotifiedFusionsOfLibTom( string ) _______________________________attribute
188
> FusionsOfLibTom( tom ) __________________________________________attribute
189
> FusionsOfLibTom( string ) _______________________________________attribute
190
191
Are there any fusions from the library table of marks tom or the table of
192
marks with name string into other library tables marks?
193
194
NotifiedFusionsOfLibTom returns the names of all such tables of marks.
195
FusionsOfLibTom returns the complete fusion maps. For that the corresponding
196
library file has to be loaded.
197
198
1.4-10 NotifiedFusionsToLibTom
199
200
> NotifiedFusionsToLibTom( tom ) __________________________________attribute
201
> NotifiedFusionsToLibTom( string ) _______________________________attribute
202
> FusionsToLibTom( tom ) __________________________________________attribute
203
> FusionsToLibTom( string ) _______________________________________attribute
204
205
Are there any fusions from other library table of marks to tom or the table
206
of marks with name string.
207
208
NotifiedFusionsToLibTom returns the names of all such tables of marks.
209
FusionsToLibTom returns the complete fusion maps. For that, the correponding
210
library files have to be loaded.
211
212
1.4-11 UnloadTableOfMarksData
213
214
> UnloadTableOfMarksData(  ) _______________________________________function
215
216
UnloadTableOfMarksData clears the cache of tables of marks. This can be used
217
to free up to several hundred megabytes of space in the current GAP session.
218
219
220
1.5 Standard Generators of Groups
221
222
An s-tuple of standard generators of a given group G is a vector (g_1, g_2,
223
..., g_s) of elements g_i in G satisfying certain conditions (depending on
224
the isomorphism type of G) such that
225
226
(1) < g_1, g_2, ..., g_s > = G and
227
228
(2) the vector is unique up to automorphisms of G, i.e., for two vectors
229
(g_1, g_2, ..., g_s) and (h_1, h_2, ..., h_s) of standard generators,
230
the map g_i -> h_i extends to an automorphism of G.
231
232
For details about standard generators, see [Wil96].
233
234
1.5-1 StandardGeneratorsInfo
235
236
> StandardGeneratorsInfo( G ) _____________________________________attribute
237
238
When called with the group G, StandardGeneratorsInfo returns a list of
239
records with at least one of the components script and description. Each
240
such record defines standard generators of groups isomorphic to G, the i-th
241
record is referred to as the i-th set of standard generators for such
242
groups. The value of script is a dense list of lists, each encoding a
243
command that has one of the following forms.
244
245
A definition [ i, n, k ] or [ i, n ]
246
means to search for an element of order n, and to take its k-th power
247
as candidate for the i-th standard generator (the default for k is 1),
248
249
a relation [ i_1, k_1, i_2, k_2, ..., i_m, k_m, n ] with m > 1
250
means a check whether the element g_{i_1}^{k_1} g_{i_2}^{k_2} cdots
251
g_{i_m}^{k_m} has order n; if g_j occurs then of course the j-th
252
generator must have been defined before,
253
254
a relation [ [ i_1, i_2, ..., i_m ], slp, n ]
255
means a check whether the result of the straight line program slp
256
(see 'Reference: Straight Line Programs') applied to the candidates
257
g_{i_1}, g_{i_2}, ..., g_{i_m} has order n, where the candidates g_j
258
for the j-th standard generators must have been defined before,
259
260
a condition [ [ i_1, k_1, i_2, k_2, ..., i_m, k_m ], f, v ]
261
means a check whether the GAP function in the global list
262
StandardGeneratorsFunctions (1.5-3) that is followed by the list f of
263
strings returns the value v when it is called with G and g_{i_1}^{k_1}
264
g_{i_2}^{k_2} cdots g_{i_m}^{k_m}.
265
266
Optional components of the returned records are
267
268
generators
269
a string of names of the standard generators,
270
271
description
272
a string describing the script information in human readable form, in
273
terms of the generators value,
274
275
classnames
276
a list of strings, the i-th entry being the name of the conjugacy
277
class containing the i-th standard generator, according to the Atlas
278
character table of the group (see ClassNames (Reference: ClassNames)),
279
and
280
281
ATLAS
282
a boolean; true means that the standard generators coincide with those
283
defined in Rob Wilson's Atlas of Group Representations (see [ATLAS]),
284
and false means that this property is not guaranteed.
285
286
standardization
287
a positive integer i; Whenever ATLAS returns true the value of i means
288
that the generators stored in the group are standard generators w.r.t.
289
standardization i, in the sense of Rob Wilson's Atlas of Group
290
Representations.
291
292
There is no default method for an arbitrary isomorphism type, since in
293
general the definition of standard generators is not obvious.
294
295
The function StandardGeneratorsOfGroup (Reference:
296
StandardGeneratorsOfGroup) can be used to find standard generators of a
297
given group isomorphic to G.
298
299
The generators and description values, if not known, can be computed by
300
HumanReadableDefinition (1.5-2).
301
302
--------------------------- Example ----------------------------
303
gap> StandardGeneratorsInfo( TableOfMarks( "L3(3)" ) );
304
[ rec( ATLAS := true, 
305
 description := "|a|=2, |b|=3, |C(b)|=9, |ab|=13, |ababb|=4", 
306
 generators := "a, b", 
307
 script := [ [ 1, 2 ], [ 2, 3 ], [ [ 2, 1 ], [ "|C(",, ")|" ], 9 ], 
308
 [ 1, 1, 2, 1, 13 ], [ 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 4 ] ], 
309
 standardization := 1 ) ]
310
------------------------------------------------------------------
311
312
1.5-2 HumanReadableDefinition
313
314
> HumanReadableDefinition( info ) __________________________________function
315
> ScriptFromString( string ) _______________________________________function
316
317
Let info be a record that is valid as value of StandardGeneratorsInfo
318
(1.5-1). HumanReadableDefinition returns a string that describes the
319
definition of standard generators given by the script component of info in
320
human readable form. The names of the generators are taken from the
321
generators component (default names "a", "b" etc. are computed if
322
necessary), and the result is stored in the description component.
323
324
ScriptFromString does the converse of HumanReadableDefinition, i.e., it
325
takes a string string as returned by HumanReadableDefinition, and returns a
326
corresponding script list.
327
328
If "condition" lines occur in the script (see StandardGeneratorsInfo
329
(1.5-1)) then the functions that occur must be contained in
330
StandardGeneratorsFunctions (1.5-3).
331
332
--------------------------- Example ----------------------------
333
gap> scr:= ScriptFromString( "|a|=2, |b|=3, |C(b)|=9, |ab|=13, |ababb|=4" );
334
[ [ 1, 2 ], [ 2, 3 ], [ [ 2, 1 ], [ "|C(",, ")|" ], 9 ], [ 1, 1, 2, 1, 13 ], 
335
 [ 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 4 ] ]
336
gap> info:= rec( script:= scr );
337
rec( script := [ [ 1, 2 ], [ 2, 3 ], [ [ 2, 1 ], [ "|C(",, ")|" ], 9 ], 
338
 [ 1, 1, 2, 1, 13 ], [ 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 4 ] ] )
339
gap> HumanReadableDefinition( info );
340
"|a|=2, |b|=3, |C(b)|=9, |ab|=13, |ababb|=4"
341
gap> info;
342
rec( description := "|a|=2, |b|=3, |C(b)|=9, |ab|=13, |ababb|=4", 
343
 generators := "a, b", 
344
 script := [ [ 1, 2 ], [ 2, 3 ], [ [ 2, 1 ], [ "|C(",, ")|" ], 9 ], 
345
 [ 1, 1, 2, 1, 13 ], [ 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 4 ] ] )
346
------------------------------------------------------------------
347
348
1.5-3 StandardGeneratorsFunctions
349
350
> StandardGeneratorsFunctions________________________________global variable
351
352
StandardGeneratorsFunctions is a list of even length. At position 2i-1, a
353
function of two arguments is stored, which are expected to be a group and a
354
group element. At position 2i a list of strings is stored such that first
355
inserting a generator name in all holes and then forming the concatenation
356
yields a string that describes the function at the previous position; this
357
string must contain the generator enclosed in round brackets ( and ).
358
359
This list is used by the functions StandardGeneratorsInfo (1.5-1)),
360
HumanReadableDefinition (1.5-2), and ScriptFromString (1.5-2). Note that the
361
lists at even positions must be pairwise different.
362
363
--------------------------- Example ----------------------------
364
gap> StandardGeneratorsFunctions{ [ 1, 2 ] };
365
[ function( G, g ) ... end, [ "|C(",, ")|" ] ]
366
------------------------------------------------------------------
367
368
1.5-4 IsStandardGeneratorsOfGroup
369
370
> IsStandardGeneratorsOfGroup( info, G, gens ) _____________________function
371
372
Let info be a record that is valid as value of StandardGeneratorsInfo
373
(1.5-1), G a group, and gens a list of generators for G. In this case,
374
IsStandardGeneratorsOfGroup returns true if gens satisfies the conditions of
375
the script component of info, and false otherwise.
376
377
Note that the result true means that gens is a list of standard generators
378
for G only if G has the isomorphism type for which info describes standard
379
generators.
380
381
1.5-5 StandardGeneratorsOfGroup
382
383
> StandardGeneratorsOfGroup( info, G[, randfunc] ) _________________function
384
385
Let info be a record that is valid as value of StandardGeneratorsInfo
386
(1.5-1), and G a group of the isomorphism type for which info describes
387
standard generators. In this case, StandardGeneratorsOfGroup returns a list
388
of standard generators of G, see Section 1.5.
389
390
The optional argument randfunc must be a function that returns an element of
391
G when called with G; the default is PseudoRandom (Reference: PseudoRandom).
392
393
In each call to StandardGeneratorsOfGroup (Reference:
394
StandardGeneratorsOfGroup), the script component of info is scanned line by
395
line. randfunc is used to find an element of the prescribed order whenever a
396
definition line is met, and for the relation and condition lines in the
397
script list, the current generator candidates are checked; if a condition is
398
not fulfilled, all candidates are thrown away, and the procedure starts
399
again with the first line. When the conditions are fulfilled after
400
processing the last line of the script list, the standard generators are
401
returned.
402
403
Note that if G has the wrong isomorphism type then StandardGeneratorsOfGroup
404
(Reference: StandardGeneratorsOfGroup) returns a list of elements in G that
405
satisfy the conditions of the script component of info if such elements
406
exist, and does not terminate otherwise. In the former case, obviously the
407
returned elements need not be standard generators of G.
408
409
--------------------------- Example ----------------------------
410
gap> a5:= AlternatingGroup( 5 );
411
Alt( [ 1 .. 5 ] )
412
gap> info:= StandardGeneratorsInfo( TableOfMarks( "A5" ) )[1];
413
rec( ATLAS := true, description := "|a|=2, |b|=3, |ab|=5", 
414
generators := "a, b", script := [ [ 1, 2 ], [ 2, 3 ], [ 1, 1, 2, 1, 5 ] ], 
415
standardization := 1 )
416
gap> IsStandardGeneratorsOfGroup( info, a5, [ (1,3)(2,4), (3,4,5) ] );
417
true
418
gap> IsStandardGeneratorsOfGroup( info, a5, [ (1,3)(2,4), (1,2,3) ] );
419
false
420
gap> s5:= SymmetricGroup( 5 );;
421
gap> RepresentativeAction( s5, [ (1,3)(2,4), (3,4,5) ], 
422
> StandardGeneratorsOfGroup( info, a5 ), OnPairs ) <> fail;
423
true
424
------------------------------------------------------------------
425
426
1.5-6 StandardGeneratorsInfo
427
428
> StandardGeneratorsInfo( tom ) ___________________________________attribute
429
430
For a table of marks tom, a stored value of StandardGeneratorsInfo
431
(Reference: StandardGeneratorsInfo!for tables of marks) equals the value of
432
this attribute for the underlying group (see UnderlyingGroup (Reference:
433
UnderlyingGroup!for tables of marks)) of tom, cf. Section 'Reference:
434
Standard Generators of Groups'.
435
436
In this case, the GeneratorsOfGroup (Reference: GeneratorsOfGroup) value of
437
the underlying group G of tom is assumed to be in fact a list of standard
438
generators for G; So one should be careful when setting the
439
StandardGeneratorsInfo value by hand.
440
441
There is no default method to compute the StandardGeneratorsInfo value of a
442
table of marks if it is not yet stored.
443
444
--------------------------- Example ----------------------------
445
gap> a5:=TableOfMarks("A5");
446
gap> std:= StandardGeneratorsInfo( a5 );
447
[ rec( ATLAS := true, description := "|a|=2, |b|=3, |ab|=5", 
448
 generators := "a, b", script := [ [ 1, 2 ], [ 2, 3 ], [ 1, 1, 2, 1, 5 ] 
449
 ], standardization := 1 ) ]
450
gap> # Now find standard generators of an isomorphic group.
451
gap> g:= SL(2,4);;
452
gap> repeat
453
> x:= PseudoRandom( g );
454
> until Order( x ) = 2;
455
gap> repeat 
456
> y:= PseudoRandom( g );
457
> until Order( y ) = 3 and Order( x*y ) = 5;
458
gap> # Compute a representative w.r.t. these generators.
459
gap> RepresentativeTomByGenerators( a5, 4, [ x, y ] );
460
Group([ [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ],
461
 [ [ Z(2^2), Z(2^2)^2 ], [ Z(2^2)^2, Z(2^2) ] ] ])
462
gap> # Show that the new generators are really good.
463
gap> grp:= UnderlyingGroup( a5 );;
464
gap> iso:= GroupGeneralMappingByImages( grp, g,
465
> GeneratorsOfGroup( grp ), [ x, y ] );;
466
gap> IsGroupHomomorphism( iso );
467
true
468
gap> IsBijective( iso );
469
true
470
------------------------------------------------------------------
471
472
473