GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
1[1X1 The GAP Table of Marks Library[0X234[1X1.1 Tables Of Marks[0X56The concept of a [13XTable of Marks[0m was introduced by W.Burnside in his book7``Theory of Groups of Finite Order'' [Bur55]. Therefore a table of marks is8sometimes called a [13XBurnside matrix[0m. The table of marks of a finite group G9is a matrix whose rows and columns are labelled by the conjugacy classes of10subgroups of G and where for two subgroups H and K the (H, K)–entry is the11number of fixed points of K in the transitive action of G on the cosets of H12in G. So the table of marks characterizes the set of all permutation13representations of G. Moreover, the table of marks gives a compact14description of the subgroup lattice of G, since from the numbers of fixed15points the numbers of conjugates of a subgroup K contained in a subgroup H16can be derived. For small groups the table of marks of G can be constructed17directly in GAP by first computing the entire subgroup lattice of G.18However, for larger groups this method is unfeasible. The GAP Table of Marks19library provides access to several hundred table of marks and their maximal20subgroups.212223[1X1.2 Installing The Table of Marks Library[0X2425Download the archives in your preferred format. Unpack the archives inside26the pkg dirctory of your GAP installation. Load the package2728[4X--------------------------- Example ----------------------------[0X29[4Xgap> LoadPackage("tomlib");[0X30[4Xtrue[0X31[4X------------------------------------------------------------------[0X323334[1X1.3 Contents[0X3536TomLib contains several hundred tables of marks. For a complete list of the37contents of the library do the following.3839[4X--------------------------- Example ----------------------------[0X40[4Xgap> names:=AllLibTomNames();;[0X41[4Xgap> "A5" in names;[0X42[4Xtrue[0X43[4X------------------------------------------------------------------[0X4445The current version of the tomlib contains the tables of marks of the groups46listed below as well as the tables of many of their maximal subgroups and47automorphism groups. The Alternating groups A_n4849-- for n = 5, 6, 7, 8, 9, 10, 11, 12, 13.5051The Symmetric groups S_n5253-- for n = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13.5455The Linear groups L_2(n) for5657-- n = 7, 8, 11, 13, 16, 17, 19, 23, 25, 27, 29, 31, 32, 37, 41, 43, 47,5849, 535960-- n = 59, 61, 64, 67, 71, 73, 79, 81, 83, 89, 97, 101, 103, 107, 109,61113, 121, 125 .6263along with6465-- L_3(4), L_3(3), L_3(5), L_3(7), L_3(9)6667-- L_4(3), L_3(8), L_3(11).6869The Unitary groups7071-- U_3(3), U_4(3), U_3(5), U_3(4), U_3(11), U_3(7), U_3(8)7273-- U_3(9), U_4(2), U_5(2)7475The Sporadic Groups7677-- Co_3, HS, McL, He, J_1, J_2, J_3, M_11, M_12, M_22, M_23, M_247879The names given to each subgroup are consistent with those used in Robert80Wilson's atlas [ATLAS] For example if you wish to access the table of marks81of the maximal subgroup "5:4 x A5" of the Higman-Sims group do the82following:8384[4X--------------------------- Example ----------------------------[0X85[4Xgap> TableOfMarks("5:4xA5");[0X86[4XTableOfMarks( "5:4xA5" )[0X87[4X------------------------------------------------------------------[0X888990[1X1.4 Administrative Functions[0X9192Here we document some of the administrative facilities for the the [5XGAP[0m93library of tables of marks.9495[1X1.4-1 LIBTOMKNOWN[0m9697[2X> LIBTOMKNOWN________________________________________________[0Xglobal variable9899[10XLIBTOMKNOWN[0m is a record that controls the loading of data files of the [5XGAP[0m100library of tables of marks. It has the following components.101102[8X[10XACTUAL[0m[8X [0m103the name of the file to be read at the moment (set by104[10XSetActualLibFileName[0m),105106[8X[10XLOADSTATUS[0m[8X [0m107a record whose components are names of files in the library of tables108of marks, with value a list whose first entry is one of [10X"loaded"[0m,109[10X"unloaded"[0m, [10X"userloaded"[0m and whose second entry is an integer that110controls when the corresponding tables of marks can be removed from111[5XGAP[0m,112113[8X[10XMAX[0m[8X [0m114[5XGAP[0m remembers at most [10XMAX[0m of the previously loaded library files (the115default value is 10),116117[8X[10XUNLOAD[0m[8X [0m118is it allowed to remove previously loaded library files (is set to119[9Xtrue[0m by default),120121[8X[10XSTDGEN[0m[8X [0m122a list describing standard generators of almost simple groups in the123table of marks library.124125Additionally the names of the files already loaded occur as components of126[10XLIBTOMKNOWN[0m; the corresponding values are given by the data of the files.127128[1X1.4-2 IsLibTomRep[0m129130[2X> IsLibTomRep( [0X[3Xobj[0X[2X ) _________________________________________[0XRepresentation131132Library tables of marks have their own representation. [10XIsLibTomRep[0m tests if133[3Xobj[0m is a library representation.134135[1X1.4-3 TableOfMarksFromLibrary[0m136137[2X> TableOfMarksFromLibrary( [0X[3Xstring[0X[2X ) ________________________________[0Xfunction138[6XReturns:[0X the table of marks with name [3Xstring[0m.139140[1X1.4-4 ConvertToLibTom[0m141142[2X> ConvertToLibTom( [0X[3Xrecord[0X[2X ) ________________________________________[0Xfunction143144[10XConvertToLibTom[0m converts a record with components from145[10XTableOfMarksComponents[0m into a library table of marks object with the146corresponding attribute values set.147148[1X1.4-5 SetActualLibFileName[0m149150[2X> SetActualLibFileName( [0X[3Xfilename[0X[2X ) _________________________________[0Xfunction151152Sets the file name for [3Xfilename[0m.153154[1X1.4-6 LIBTOM[0m155156[2X> LIBTOM( [0X[3Xarg[0X[2X ) ____________________________________________________[0Xfunction157[2X> AFLT( [0X[3Xsource, destination, fusion[0X[2X ) ______________________________[0Xfunction158[2X> ACLT( [0X[3Xidentifier, component, value[0X[2X ) _____________________________[0Xfunction159160The library format of a library table of marks is a call to the function161[10XLIBTOM[0m, with the arguments sorted as in [10XTableOfMarksComponents[0m .162163[10XAFLT[0m adds a fusion map [3Xvalue[0m from the table of marks with name [3Xsource[0m to the164table of marks with name [3Xdestination[0m. The fusion map is a list of positive165integers, storing at position i the position of the class in [3Xdestination[0m166that contains the subgroups in the i-th class of [3Xsource[0m.167168[10XACLT[0m adds the value [3Xvalue[0m of a component with name [3Xcomponent[0m to the table of169marks with identifier value [3Xidentifier[0m in the library of tables of marks.170171[1X1.4-7 AllLibTomNames[0m172173[2X> AllLibTomNames( [0X[3X[0X[2X ) _______________________________________________[0Xfunction174[6XReturns:[0X a list containing all names of available library tables of marks.175176[1X1.4-8 NamesLibTom[0m177178[2X> NamesLibTom( [0X[3Xstring[0X[2X ) ___________________________________________[0Xattribute179[2X> NamesLibTom( [0X[3Xtom[0X[2X ) ______________________________________________[0Xattribute180[6XReturns:[0X all names of the library table [3Xtom[0m or of the library table with181name [3Xstring[0m182183[1X1.4-9 NotifiedFusionsOfLibTom[0m184185[2X> NotifiedFusionsOfLibTom( [0X[3Xtom[0X[2X ) __________________________________[0Xattribute186[2X> NotifiedFusionsOfLibTom( [0X[3Xstring[0X[2X ) _______________________________[0Xattribute187[2X> FusionsOfLibTom( [0X[3Xtom[0X[2X ) __________________________________________[0Xattribute188[2X> FusionsOfLibTom( [0X[3Xstring[0X[2X ) _______________________________________[0Xattribute189190Are there any fusions from the library table of marks [3Xtom[0m or the table of191marks with name [3Xstring[0m into other library tables marks?192193[10XNotifiedFusionsOfLibTom[0m returns the names of all such tables of marks.194[10XFusionsOfLibTom[0m returns the complete fusion maps. For that the corresponding195library file has to be loaded.196197[1X1.4-10 NotifiedFusionsToLibTom[0m198199[2X> NotifiedFusionsToLibTom( [0X[3Xtom[0X[2X ) __________________________________[0Xattribute200[2X> NotifiedFusionsToLibTom( [0X[3Xstring[0X[2X ) _______________________________[0Xattribute201[2X> FusionsToLibTom( [0X[3Xtom[0X[2X ) __________________________________________[0Xattribute202[2X> FusionsToLibTom( [0X[3Xstring[0X[2X ) _______________________________________[0Xattribute203204Are there any fusions from other library table of marks to [3Xtom[0m or the table205of marks with name [3Xstring[0m.206207[10XNotifiedFusionsToLibTom[0m returns the names of all such tables of marks.208[10XFusionsToLibTom[0m returns the complete fusion maps. For that, the correponding209library files have to be loaded.210211[1X1.4-11 UnloadTableOfMarksData[0m212213[2X> UnloadTableOfMarksData( [0X[3X[0X[2X ) _______________________________________[0Xfunction214215[10XUnloadTableOfMarksData[0m clears the cache of tables of marks. This can be used216to free up to several hundred megabytes of space in the current [5XGAP[0m session.217218219[1X1.5 Standard Generators of Groups[0X220221An s-tuple of [13Xstandard generators[0m of a given group G is a vector (g_1, g_2,222..., g_s) of elements g_i in G satisfying certain conditions (depending on223the isomorphism type of G) such that224225(1) < g_1, g_2, ..., g_s > = G and226227(2) the vector is unique up to automorphisms of G, i.e., for two vectors228(g_1, g_2, ..., g_s) and (h_1, h_2, ..., h_s) of standard generators,229the map g_i -> h_i extends to an automorphism of G.230231For details about standard generators, see [Wil96].232233[1X1.5-1 StandardGeneratorsInfo[0m234235[2X> StandardGeneratorsInfo( [0X[3XG[0X[2X ) _____________________________________[0Xattribute236237When called with the group [3XG[0m, [2XStandardGeneratorsInfo[0m returns a list of238records with at least one of the components [10Xscript[0m and [10Xdescription[0m. Each239such record defines [13Xstandard generators[0m of groups isomorphic to [3XG[0m, the i-th240record is referred to as the i-th set of standard generators for such241groups. The value of [10Xscript[0m is a dense list of lists, each encoding a242command that has one of the following forms.243244[8XA [13Xdefinition[0m[8X [ i, n, k ] or [ i, n ][0m245means to search for an element of order n, and to take its k-th power246as candidate for the i-th standard generator (the default for k is 1),247248[8Xa [13Xrelation[0m[8X [ i_1, k_1, i_2, k_2, ..., i_m, k_m, n ] with m > 1[0m249means a check whether the element g_{i_1}^{k_1} g_{i_2}^{k_2} cdots250g_{i_m}^{k_m} has order n; if g_j occurs then of course the j-th251generator must have been defined before,252253[8Xa [13Xrelation[0m[8X [ [ i_1, i_2, ..., i_m ], [3Xslp[0m[8X, n ][0m254means a check whether the result of the straight line program [3Xslp[0m255(see [14X'Reference: Straight Line Programs'[0m) applied to the candidates256g_{i_1}, g_{i_2}, ..., g_{i_m} has order n, where the candidates g_j257for the j-th standard generators must have been defined before,258259[8Xa [13Xcondition[0m[8X [ [ i_1, k_1, i_2, k_2, ..., i_m, k_m ], f, v ][0m260means a check whether the [5XGAP[0m function in the global list261[2XStandardGeneratorsFunctions[0m ([14X1.5-3[0m) that is followed by the list f of262strings returns the value v when it is called with G and g_{i_1}^{k_1}263g_{i_2}^{k_2} cdots g_{i_m}^{k_m}.264265Optional components of the returned records are266267[8X[10Xgenerators[0m[8X[0m268a string of names of the standard generators,269270[8X[10Xdescription[0m[8X[0m271a string describing the [10Xscript[0m information in human readable form, in272terms of the [10Xgenerators[0m value,273274[8X[10Xclassnames[0m[8X[0m275a list of strings, the i-th entry being the name of the conjugacy276class containing the i-th standard generator, according to the [5XAtlas[0m277character table of the group (see [2XClassNames[0m ([14XReference: ClassNames[0m)),278and279280[8X[10XATLAS[0m[8X[0m281a boolean; [9Xtrue[0m means that the standard generators coincide with those282defined in Rob Wilson's [5XAtlas[0m of Group Representations (see [ATLAS]),283and [9Xfalse[0m means that this property is not guaranteed.284285[8X[10Xstandardization[0m[8X[0m286a positive integer i; Whenever [10XATLAS[0m returns [9Xtrue[0m the value of i means287that the generators stored in the group are standard generators w.r.t.288standardization i, in the sense of Rob Wilson's [5XAtlas[0m of Group289Representations.290291There is no default method for an arbitrary isomorphism type, since in292general the definition of standard generators is not obvious.293294The function [2XStandardGeneratorsOfGroup[0m ([14XReference:295StandardGeneratorsOfGroup[0m) can be used to find standard generators of a296given group isomorphic to [3XG[0m.297298The [10Xgenerators[0m and [10Xdescription[0m values, if not known, can be computed by299[2XHumanReadableDefinition[0m ([14X1.5-2[0m).300301[4X--------------------------- Example ----------------------------[0X302[4Xgap> StandardGeneratorsInfo( TableOfMarks( "L3(3)" ) );[0X303[4X[ rec( ATLAS := true, [0X304[4X description := "|a|=2, |b|=3, |C(b)|=9, |ab|=13, |ababb|=4", [0X305[4X generators := "a, b", [0X306[4X script := [ [ 1, 2 ], [ 2, 3 ], [ [ 2, 1 ], [ "|C(",, ")|" ], 9 ], [0X307[4X [ 1, 1, 2, 1, 13 ], [ 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 4 ] ], [0X308[4X standardization := 1 ) ][0X309[4X------------------------------------------------------------------[0X310311[1X1.5-2 HumanReadableDefinition[0m312313[2X> HumanReadableDefinition( [0X[3Xinfo[0X[2X ) __________________________________[0Xfunction314[2X> ScriptFromString( [0X[3Xstring[0X[2X ) _______________________________________[0Xfunction315316Let [3Xinfo[0m be a record that is valid as value of [2XStandardGeneratorsInfo[0m317([14X1.5-1[0m). [2XHumanReadableDefinition[0m returns a string that describes the318definition of standard generators given by the [10Xscript[0m component of [3Xinfo[0m in319human readable form. The names of the generators are taken from the320[10Xgenerators[0m component (default names [10X"a"[0m, [10X"b"[0m etc. are computed if321necessary), and the result is stored in the [10Xdescription[0m component.322323[2XScriptFromString[0m does the converse of [2XHumanReadableDefinition[0m, i.e., it324takes a string [3Xstring[0m as returned by [2XHumanReadableDefinition[0m, and returns a325corresponding [10Xscript[0m list.326327If "condition" lines occur in the script (see [2XStandardGeneratorsInfo[0m328([14X1.5-1[0m)) then the functions that occur must be contained in329[2XStandardGeneratorsFunctions[0m ([14X1.5-3[0m).330331[4X--------------------------- Example ----------------------------[0X332[4Xgap> scr:= ScriptFromString( "|a|=2, |b|=3, |C(b)|=9, |ab|=13, |ababb|=4" );[0X333[4X[ [ 1, 2 ], [ 2, 3 ], [ [ 2, 1 ], [ "|C(",, ")|" ], 9 ], [ 1, 1, 2, 1, 13 ], [0X334[4X [ 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 4 ] ][0X335[4Xgap> info:= rec( script:= scr );[0X336[4Xrec( script := [ [ 1, 2 ], [ 2, 3 ], [ [ 2, 1 ], [ "|C(",, ")|" ], 9 ], [0X337[4X [ 1, 1, 2, 1, 13 ], [ 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 4 ] ] )[0X338[4Xgap> HumanReadableDefinition( info );[0X339[4X"|a|=2, |b|=3, |C(b)|=9, |ab|=13, |ababb|=4"[0X340[4Xgap> info;[0X341[4Xrec( description := "|a|=2, |b|=3, |C(b)|=9, |ab|=13, |ababb|=4", [0X342[4X generators := "a, b", [0X343[4X script := [ [ 1, 2 ], [ 2, 3 ], [ [ 2, 1 ], [ "|C(",, ")|" ], 9 ], [0X344[4X [ 1, 1, 2, 1, 13 ], [ 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 4 ] ] )[0X345[4X------------------------------------------------------------------[0X346347[1X1.5-3 StandardGeneratorsFunctions[0m348349[2X> StandardGeneratorsFunctions________________________________[0Xglobal variable350351[2XStandardGeneratorsFunctions[0m is a list of even length. At position 2i-1, a352function of two arguments is stored, which are expected to be a group and a353group element. At position 2i a list of strings is stored such that first354inserting a generator name in all holes and then forming the concatenation355yields a string that describes the function at the previous position; this356string must contain the generator enclosed in round brackets [10X([0m and [10X)[0m.357358This list is used by the functions [2XStandardGeneratorsInfo[0m ([14X1.5-1[0m)),359[2XHumanReadableDefinition[0m ([14X1.5-2[0m), and [2XScriptFromString[0m ([14X1.5-2[0m). Note that the360lists at even positions must be pairwise different.361362[4X--------------------------- Example ----------------------------[0X363[4Xgap> StandardGeneratorsFunctions{ [ 1, 2 ] };[0X364[4X[ function( G, g ) ... end, [ "|C(",, ")|" ] ][0X365[4X------------------------------------------------------------------[0X366367[1X1.5-4 IsStandardGeneratorsOfGroup[0m368369[2X> IsStandardGeneratorsOfGroup( [0X[3Xinfo, G, gens[0X[2X ) _____________________[0Xfunction370371Let [3Xinfo[0m be a record that is valid as value of [2XStandardGeneratorsInfo[0m372([14X1.5-1[0m), [3XG[0m a group, and [3Xgens[0m a list of generators for [3XG[0m. In this case,373[2XIsStandardGeneratorsOfGroup[0m returns [9Xtrue[0m if [3Xgens[0m satisfies the conditions of374the [10Xscript[0m component of [3Xinfo[0m, and [9Xfalse[0m otherwise.375376Note that the result [9Xtrue[0m means that [3Xgens[0m is a list of standard generators377for [3XG[0m only if [3XG[0m has the isomorphism type for which [3Xinfo[0m describes standard378generators.379380[1X1.5-5 StandardGeneratorsOfGroup[0m381382[2X> StandardGeneratorsOfGroup( [0X[3Xinfo, G[, randfunc][0X[2X ) _________________[0Xfunction383384Let [3Xinfo[0m be a record that is valid as value of [2XStandardGeneratorsInfo[0m385([14X1.5-1[0m), and [3XG[0m a group of the isomorphism type for which [3Xinfo[0m describes386standard generators. In this case, [2XStandardGeneratorsOfGroup[0m returns a list387of standard generators of [3XG[0m, see Section [14X1.5[0m.388389The optional argument [3Xrandfunc[0m must be a function that returns an element of390[3XG[0m when called with [3XG[0m; the default is [2XPseudoRandom[0m ([14XReference: PseudoRandom[0m).391392In each call to [2XStandardGeneratorsOfGroup[0m ([14XReference:393StandardGeneratorsOfGroup[0m), the [10Xscript[0m component of [3Xinfo[0m is scanned line by394line. [3Xrandfunc[0m is used to find an element of the prescribed order whenever a395definition line is met, and for the relation and condition lines in the396[10Xscript[0m list, the current generator candidates are checked; if a condition is397not fulfilled, all candidates are thrown away, and the procedure starts398again with the first line. When the conditions are fulfilled after399processing the last line of the [10Xscript[0m list, the standard generators are400returned.401402Note that if [3XG[0m has the wrong isomorphism type then [2XStandardGeneratorsOfGroup[0m403([14XReference: StandardGeneratorsOfGroup[0m) returns a list of elements in [3XG[0m that404satisfy the conditions of the [10Xscript[0m component of [3Xinfo[0m if such elements405exist, and does not terminate otherwise. In the former case, obviously the406returned elements need not be standard generators of [3XG[0m.407408[4X--------------------------- Example ----------------------------[0X409[4Xgap> a5:= AlternatingGroup( 5 );[0X410[4XAlt( [ 1 .. 5 ] )[0X411[4Xgap> info:= StandardGeneratorsInfo( TableOfMarks( "A5" ) )[1];[0X412[4Xrec( ATLAS := true, description := "|a|=2, |b|=3, |ab|=5", [0X413[4Xgenerators := "a, b", script := [ [ 1, 2 ], [ 2, 3 ], [ 1, 1, 2, 1, 5 ] ], [0X414[4Xstandardization := 1 )[0X415[4Xgap> IsStandardGeneratorsOfGroup( info, a5, [ (1,3)(2,4), (3,4,5) ] );[0X416[4Xtrue[0X417[4Xgap> IsStandardGeneratorsOfGroup( info, a5, [ (1,3)(2,4), (1,2,3) ] );[0X418[4Xfalse[0X419[4Xgap> s5:= SymmetricGroup( 5 );;[0X420[4Xgap> RepresentativeAction( s5, [ (1,3)(2,4), (3,4,5) ], [0X421[4X> StandardGeneratorsOfGroup( info, a5 ), OnPairs ) <> fail;[0X422[4Xtrue[0X423[4X------------------------------------------------------------------[0X424425[1X1.5-6 StandardGeneratorsInfo[0m426427[2X> StandardGeneratorsInfo( [0X[3Xtom[0X[2X ) ___________________________________[0Xattribute428429For a table of marks [3Xtom[0m, a stored value of [2XStandardGeneratorsInfo[0m430([14XReference: StandardGeneratorsInfo!for tables of marks[0m) equals the value of431this attribute for the underlying group (see [2XUnderlyingGroup[0m ([14XReference:432UnderlyingGroup!for tables of marks[0m)) of [3Xtom[0m, cf. Section [14X'Reference:433Standard Generators of Groups'[0m.434435In this case, the [2XGeneratorsOfGroup[0m ([14XReference: GeneratorsOfGroup[0m) value of436the underlying group G of [3Xtom[0m is assumed to be in fact a list of standard437generators for G; So one should be careful when setting the438[2XStandardGeneratorsInfo[0m value by hand.439440There is no default method to compute the [2XStandardGeneratorsInfo[0m value of a441table of marks if it is not yet stored.442443[4X--------------------------- Example ----------------------------[0X444[4Xgap> a5:=TableOfMarks("A5");[0X445[4Xgap> std:= StandardGeneratorsInfo( a5 );[0X446[4X[ rec( ATLAS := true, description := "|a|=2, |b|=3, |ab|=5", [0X447[4X generators := "a, b", script := [ [ 1, 2 ], [ 2, 3 ], [ 1, 1, 2, 1, 5 ] [0X448[4X ], standardization := 1 ) ][0X449[4Xgap> # Now find standard generators of an isomorphic group.[0X450[4Xgap> g:= SL(2,4);;[0X451[4Xgap> repeat[0X452[4X> x:= PseudoRandom( g );[0X453[4X> until Order( x ) = 2;[0X454[4Xgap> repeat [0X455[4X> y:= PseudoRandom( g );[0X456[4X> until Order( y ) = 3 and Order( x*y ) = 5;[0X457[4Xgap> # Compute a representative w.r.t. these generators.[0X458[4Xgap> RepresentativeTomByGenerators( a5, 4, [ x, y ] );[0X459[4XGroup([ [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ],[0X460[4X [ [ Z(2^2), Z(2^2)^2 ], [ Z(2^2)^2, Z(2^2) ] ] ])[0X461[4Xgap> # Show that the new generators are really good.[0X462[4Xgap> grp:= UnderlyingGroup( a5 );;[0X463[4Xgap> iso:= GroupGeneralMappingByImages( grp, g,[0X464[4X> GeneratorsOfGroup( grp ), [ x, y ] );;[0X465[4Xgap> IsGroupHomomorphism( iso );[0X466[4Xtrue[0X467[4Xgap> IsBijective( iso );[0X468[4Xtrue[0X469[4X------------------------------------------------------------------[0X470471472473