GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
1[1X2 [33X[0;0YTutorial for the [5XAtlasRep[105X[101X[1X Package[133X[101X23[33X[0;0YThis chapter gives an overview of the basic functionality provided by the4[5XAtlasRep[105X package. The main concepts and interface functions are presented in5the first sections, and Section [14X2.4[114X shows a few small examples.[133X678[1X2.1 [33X[0;0YAccessing a Specific Group in [5XAtlasRep[105X[101X[1X[133X[101X910[33X[0;0YThe [5XAtlasRep[105X package gives access to a database, the [5XATLAS[105X of Group11Representations [ATLAS], that contains generators and related data for12several groups, mainly for extensions of simple groups (see Section [14X2.1-1[114X)13and for their maximal subgroups (see Section [14X2.1-2[114X).[133X1415[33X[0;0YNote that the data are not part of the package. They are fetched from a web16server as soon as they are needed for the first time, see Section [14X4.3-1[114X.[133X1718[33X[0;0YFirst of all, we load the [5XAtlasRep[105X package. Some of the examples require19also the [5XGAP[105X packages [5XCTblLib[105X and [5XTomLib[105X, so we load also these packages.[133X2021[4X[32X Example [32X[104X22[4X[25Xgap>[125X [27XLoadPackage( "AtlasRep" );[127X[104X23[4X[28Xtrue[128X[104X24[4X[25Xgap>[125X [27XLoadPackage( "CTblLib" );[127X[104X25[4X[28Xtrue[128X[104X26[4X[25Xgap>[125X [27XLoadPackage( "TomLib" );[127X[104X27[4X[28Xtrue[128X[104X28[4X[32X[104X293031[1X2.1-1 [33X[0;0YAccessing a Group in [5XAtlasRep[105X[101X[1X via its Name[133X[101X3233[33X[0;0YEach group that occurs in this database is specified by a [13Xname[113X, which is a34string similar to the name used in the [5XATLAS[105X of Finite Groups [CCNPW85]. For35those groups whose character tables are contained in the [5XGAP[105X Character Table36Library [Bre13], the names are equal to the [2XIdentifier[102X ([14XReference:37Identifier (for character tables)[114X) values of these character tables.38Examples of such names are [10X"M24"[110X for the Mathieu group [22XM_24[122X, [10X"2.A6"[110X for the39double cover of the alternating group [22XA_6[122X, and [10X"2.A6.2_1"[110X for the double40cover of the symmetric group [22XS_6[122X. The names that actually occur are listed41in the first column of the overview table that is printed by the function42[2XDisplayAtlasInfo[102X ([14X3.5-1[114X), called without arguments, see below. The other43columns of the table describe the data that are available in the database.[133X4445[33X[0;0YFor example, [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) may print the following lines.46Omissions are indicated with [21X[10X...[110X[121X.[133X4748[4X[32X Example [32X[104X49[4X[25Xgap>[125X [27XDisplayAtlasInfo();[127X[104X50[4X[28Xgroup | # | maxes | cl | cyc | out | fnd | chk | prs[128X[104X51[4X[28X-------------------------+----+-------+----+-----+-----+-----+-----+----[128X[104X52[4X[28X...[128X[104X53[4X[28X2.A5 | 26 | 3 | | | | | + | + [128X[104X54[4X[28X2.A5.2 | 11 | 4 | | | | | + | + [128X[104X55[4X[28X2.A6 | 18 | 5 | | | | | | [128X[104X56[4X[28X2.A6.2_1 | 3 | 6 | | | | | | [128X[104X57[4X[28X2.A7 | 24 | | | | | | | [128X[104X58[4X[28X2.A7.2 | 7 | | | | | | | [128X[104X59[4X[28X...[128X[104X60[4X[28XM22 | 58 | 8 | + | + | | + | + | + [128X[104X61[4X[28XM22.2 | 46 | 7 | + | + | | + | + | + [128X[104X62[4X[28XM23 | 66 | 7 | + | + | | + | + | + [128X[104X63[4X[28XM24 | 62 | 9 | + | + | | + | + | + [128X[104X64[4X[28XMcL | 46 | 12 | + | + | | + | + | + [128X[104X65[4X[28XMcL.2 | 27 | 10 | | + | | + | + | + [128X[104X66[4X[28XO7(3) | 28 | | | | | | | [128X[104X67[4X[28XO7(3).2 | 3 | | | | | | | [128X[104X68[4X[28X...[128X[104X69[4X[32X[104X7071[33X[0;0YCalled with a group name as the only argument, the function [2XAtlasGroup[102X72([14X3.5-7[114X) returns a group isomorphic to the group with the given name. If73permutation generators are available in the database then a permutation74group (of smallest available degree) is returned, otherwise a matrix group.[133X7576[4X[32X Example [32X[104X77[4X[25Xgap>[125X [27Xg:= AtlasGroup( "M24" );[127X[104X78[4X[28XGroup([ (1,4)(2,7)(3,17)(5,13)(6,9)(8,15)(10,19)(11,18)(12,21)(14,16)[128X[104X79[4X[28X(20,24)(22,23), (1,4,6)(2,21,14)(3,9,15)(5,18,10)(13,17,16)[128X[104X80[4X[28X(19,24,23) ])[128X[104X81[4X[25Xgap>[125X [27XIsPermGroup( g ); NrMovedPoints( g ); Size( g );[127X[104X82[4X[28Xtrue[128X[104X83[4X[28X24[128X[104X84[4X[28X244823040[128X[104X85[4X[32X[104X868788[1X2.1-2 [33X[0;0YAccessing a Maximal Subgroup of a Group in [5XAtlasRep[105X[101X[1X[133X[101X8990[33X[0;0YMany maximal subgroups of extensions of simple groups can be constructed91using the function [2XAtlasSubgroup[102X ([14X3.5-8[114X). Given the name of the extension of92the simple group and the number of the conjugacy class of maximal subgroups,93this function returns a representative from this class.[133X9495[4X[32X Example [32X[104X96[4X[25Xgap>[125X [27Xg:= AtlasSubgroup( "M24", 1 );[127X[104X97[4X[28XGroup([ (2,10)(3,12)(4,14)(6,9)(8,16)(15,18)(20,22)(21,24), (1,7,2,9)[128X[104X98[4X[28X(3,22,10,23)(4,19,8,12)(5,14)(6,18)(13,16,17,24) ])[128X[104X99[4X[25Xgap>[125X [27XIsPermGroup( g ); NrMovedPoints( g ); Size( g );[127X[104X100[4X[28Xtrue[128X[104X101[4X[28X23[128X[104X102[4X[28X10200960[128X[104X103[4X[32X[104X104105[33X[0;0YThe classes of maximal subgroups are ordered w. r. t. decreasing subgroup106order. So the first class contains the largest maximal subgroups.[133X107108[33X[0;0YNote that groups obtained by [2XAtlasSubgroup[102X ([14X3.5-8[114X) may be not very suitable109for computations in the sense that much nicer representations exist. For110example, the sporadic simple O'Nan group [22XO'N[122X contains a maximal subgroup [22XS[122X111isomorphic with the Janko group [22XJ_1[122X; the smallest permutation representation112of [22XO'N[122X has degree [22X122760[122X, so restricting this representation to [22XS[122X yields a113representation of [22XJ_1[122X of that degree. However, [22XJ_1[122X has a faithful114permutation representation of degree [22X266[122X, which admits much more efficient115computations. If you are just interested in [22XJ_1[122X and not in its embedding116into [22XO'N[122X then one possibility to get a [21Xnicer[121X faithful representation is to117call [2XSmallerDegreePermutationRepresentation[102X ([14XReference:118SmallerDegreePermutationRepresentation[114X). In the abovementioned example, this119works quite well; note that in general, we cannot expect that we get a120representation of smallest degree in this way.[133X121122[4X[32X Example [32X[104X123[4X[25Xgap>[125X [27Xs:= AtlasSubgroup( "ON", 3 );[127X[104X124[4X[28X<permutation group of size 175560 with 2 generators>[128X[104X125[4X[25Xgap>[125X [27XNrMovedPoints( s ); Size( s );[127X[104X126[4X[28X122760[128X[104X127[4X[28X175560[128X[104X128[4X[25Xgap>[125X [27Xhom:= SmallerDegreePermutationRepresentation( s );;[127X[104X129[4X[25Xgap>[125X [27XNrMovedPoints( Image( hom ) );[127X[104X130[4X[28X1540[128X[104X131[4X[32X[104X132133[33X[0;0YIn this particular case, one could of course also ask directly for the group134[22XJ_1[122X.[133X135136[4X[32X Example [32X[104X137[4X[25Xgap>[125X [27Xj1:= AtlasGroup( "J1" );[127X[104X138[4X[28X<permutation group of size 175560 with 2 generators>[128X[104X139[4X[25Xgap>[125X [27XNrMovedPoints( j1 );[127X[104X140[4X[28X266[128X[104X141[4X[32X[104X142143[33X[0;0YIf you have a group [22XG[122X, say, and you are really interested in the embedding144of a maximal subgroup of [22XG[122X into [22XG[122X then an easy way to get compatible145generators is to create [22XG[122X with [2XAtlasGroup[102X ([14X3.5-7[114X) and then to call146[2XAtlasSubgroup[102X ([14X3.5-8[114X) with first argument the group [22XG[122X.[133X147148[4X[32X Example [32X[104X149[4X[25Xgap>[125X [27Xg:= AtlasGroup( "ON" );[127X[104X150[4X[28X<permutation group of size 460815505920 with 2 generators>[128X[104X151[4X[25Xgap>[125X [27Xs:= AtlasSubgroup( g, 3 );[127X[104X152[4X[28X<permutation group of size 175560 with 2 generators>[128X[104X153[4X[25Xgap>[125X [27XIsSubset( g, s );[127X[104X154[4X[28Xtrue[128X[104X155[4X[25Xgap>[125X [27XIsSubset( g, j1 );[127X[104X156[4X[28Xfalse[128X[104X157[4X[32X[104X158159160[1X2.2 [33X[0;0YAccessing Specific Generators in [5XAtlasRep[105X[101X[1X[133X[101X161162[33X[0;0YThe function [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), called with an admissible name of a163group as the only argument, lists the [5XATLAS[105X data available for this group.[133X164165[4X[32X Example [32X[104X166[4X[25Xgap>[125X [27XDisplayAtlasInfo( "A5" );[127X[104X167[4X[28XRepresentations for G = A5: (all refer to std. generators 1)[128X[104X168[4X[28X---------------------------[128X[104X169[4X[28X 1: G <= Sym(5) 3-trans., on cosets of A4 (1st max.)[128X[104X170[4X[28X 2: G <= Sym(6) 2-trans., on cosets of D10 (2nd max.)[128X[104X171[4X[28X 3: G <= Sym(10) rank 3, on cosets of S3 (3rd max.)[128X[104X172[4X[28X 4: G <= GL(4a,2) [128X[104X173[4X[28X 5: G <= GL(4b,2) [128X[104X174[4X[28X 6: G <= GL(4,3) [128X[104X175[4X[28X 7: G <= GL(6,3) [128X[104X176[4X[28X 8: G <= GL(2a,4) [128X[104X177[4X[28X 9: G <= GL(2b,4) [128X[104X178[4X[28X10: G <= GL(3,5) [128X[104X179[4X[28X11: G <= GL(5,5) [128X[104X180[4X[28X12: G <= GL(3a,9) [128X[104X181[4X[28X13: G <= GL(3b,9) [128X[104X182[4X[28X14: G <= GL(4,Z) [128X[104X183[4X[28X15: G <= GL(5,Z) [128X[104X184[4X[28X16: G <= GL(6,Z) [128X[104X185[4X[28X17: G <= GL(3a,Field([Sqrt(5)])) [128X[104X186[4X[28X18: G <= GL(3b,Field([Sqrt(5)])) [128X[104X187[4X[28X[128X[104X188[4X[28XPrograms for G = A5: (all refer to std. generators 1)[128X[104X189[4X[28X--------------------[128X[104X190[4X[28Xpresentation[128X[104X191[4X[28Xstd. gen. checker[128X[104X192[4X[28Xmaxes (all 3):[128X[104X193[4X[28X 1: A4[128X[104X194[4X[28X 2: D10[128X[104X195[4X[28X 3: S3[128X[104X196[4X[32X[104X197198[33X[0;0YIn order to fetch one of the listed permutation groups or matrix groups, you199can call [2XAtlasGroup[102X ([14X3.5-7[114X) with second argument the function [2XPosition[102X200([14XReference: Position[114X) and third argument the position in the list.[133X201202[4X[32X Example [32X[104X203[4X[25Xgap>[125X [27XAtlasGroup( "A5", Position, 1 );[127X[104X204[4X[28XGroup([ (1,2)(3,4), (1,3,5) ])[128X[104X205[4X[32X[104X206207[33X[0;0YNote that this approach may yield a different group after an update of the208database, if new data for the group become available.[133X209210[33X[0;0YAlternatively, you can describe the desired group by conditions, such as the211degree in the case of a permutation group, and the dimension and the base212ring in the case of a matrix group.[133X213214[4X[32X Example [32X[104X215[4X[25Xgap>[125X [27XAtlasGroup( "A5", NrMovedPoints, 10 );[127X[104X216[4X[28XGroup([ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ])[128X[104X217[4X[25Xgap>[125X [27XAtlasGroup( "A5", Dimension, 4, Ring, GF(2) );[127X[104X218[4X[28X<matrix group of size 60 with 2 generators>[128X[104X219[4X[32X[104X220221[33X[0;0YThe same holds for the restriction to maximal subgroups: Use [2XAtlasSubgroup[102X222([14X3.5-8[114X) with the same arguments as [2XAtlasGroup[102X ([14X3.5-7[114X), except that223additionally the number of the class of maximal subgroups is entered as the224last argument. Note that the conditions refer to the group, not to the225subgroup; it may happen that the subgroup moves fewer points than the big226group.[133X227228[4X[32X Example [32X[104X229[4X[25Xgap>[125X [27XAtlasSubgroup( "A5", Dimension, 4, Ring, GF(2), 1 );[127X[104X230[4X[28X<matrix group of size 12 with 2 generators>[128X[104X231[4X[25Xgap>[125X [27Xg:= AtlasSubgroup( "A5", NrMovedPoints, 10, 3 );[127X[104X232[4X[28XGroup([ (2,4)(3,5)(6,8)(7,10), (1,4)(3,8)(5,7)(6,10) ])[128X[104X233[4X[25Xgap>[125X [27XSize( g ); NrMovedPoints( g );[127X[104X234[4X[28X6[128X[104X235[4X[28X9[128X[104X236[4X[32X[104X237238239[1X2.3 [33X[0;0YBasic Concepts used in [5XAtlasRep[105X[101X[1X[133X[101X240241242[1X2.3-1 [33X[0;0YGroups, Generators, and Representations[133X[101X243244[33X[0;0YUp to now, we have talked only about groups and subgroups. The [5XAtlasRep[105X245package provides access to [13Xgroup generators[113X, and in fact these generators246have the property that mapping one set of generators to another set of247generators for the same group defines an isomorphism. These generators are248called [13Xstandard generators[113X, see Section [14X3.3[114X.[133X249250[33X[0;0YSo instead of thinking about several generating sets of a group [22XG[122X, say, we251can think about one abstract group [22XG[122X, with one fixed set of generators, and252mapping these generators to any set of generators provided by [5XAtlasRep[105X253defines a representation of [22XG[122X. This viewpoint motivates the name [21X[5XATLAS[105X of254Group Representations[121X for the database.[133X255256[33X[0;0YIf you are interested in the generators provided by the database rather than257in the groups they generate, you can use the function258[2XOneAtlasGeneratingSetInfo[102X ([14X3.5-5[114X) instead of [2XAtlasGroup[102X ([14X3.5-7[114X), with the259same arguments. This will yield a record that describes the representation260in question. Calling the function [2XAtlasGenerators[102X ([14X3.5-2[114X) with this record261will then yield a record with the additional component [10Xgenerators[110X, which262holds the list of generators.[133X263264[4X[32X Example [32X[104X265[4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "A5", NrMovedPoints, 10 );[127X[104X266[4X[28Xrec( groupname := "A5", id := "", [128X[104X267[4X[28X identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ],[128X[104X268[4X[28X isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, [128X[104X269[4X[28X repname := "A5G1-p10B0", repnr := 3, size := 60, stabilizer := "S3",[128X[104X270[4X[28X standardization := 1, transitivity := 1, type := "perm" )[128X[104X271[4X[25Xgap>[125X [27Xinfo2:= AtlasGenerators( info );[127X[104X272[4X[28Xrec( generators := [ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ], [128X[104X273[4X[28X groupname := "A5", id := "", [128X[104X274[4X[28X identifier := [ "A5", [ "A5G1-p10B0.m1", "A5G1-p10B0.m2" ], 1, 10 ],[128X[104X275[4X[28X isPrimitive := true, maxnr := 3, p := 10, rankAction := 3, [128X[104X276[4X[28X repname := "A5G1-p10B0", repnr := 3, size := 60, stabilizer := "S3",[128X[104X277[4X[28X standardization := 1, transitivity := 1, type := "perm" )[128X[104X278[4X[25Xgap>[125X [27Xinfo2.generators;[127X[104X279[4X[28X[ (2,4)(3,5)(6,8)(7,10), (1,2,3)(4,6,7)(5,8,9) ][128X[104X280[4X[32X[104X281282283[1X2.3-2 [33X[0;0YStraight Line Programs[133X[101X284285[33X[0;0YFor computing certain group elements from standard generators, such as286generators of a subgroup or class representatives, [5XAtlasRep[105X uses [13Xstraight287line programs[113X, see [14X'Reference: Straight Line Programs'[114X. Essentially this288means to evaluate words in the generators, similar to [2XMappedWord[102X ([14XReference:289MappedWord[114X) but more efficiently.[133X290291[33X[0;0YIt can be useful to deal with these straight line programs, see [2XAtlasProgram[102X292([14X3.5-3[114X). For example, an automorphism [22Xα[122X, say, of the group [22XG[122X, if available293in [5XAtlasRep[105X, is given by a straight line program that defines the images of294standard generators of [22XG[122X. This way, one can for example compute the image of295a subgroup [22XU[122X of [22XG[122X under [22Xα[122X by first applying the straight line program for [22Xα[122X296to standard generators of [22XG[122X, and then applying the straight line program for297the restriction from [22XG[122X to [22XU[122X.[133X298299[4X[32X Example [32X[104X300[4X[25Xgap>[125X [27Xprginfo:= AtlasProgramInfo( "A5", "maxes", 1 );[127X[104X301[4X[28Xrec( groupname := "A5", identifier := [ "A5", "A5G1-max1W1", 1 ], [128X[104X302[4X[28X size := 12, standardization := 1, subgroupname := "A4" )[128X[104X303[4X[25Xgap>[125X [27Xprg:= AtlasProgram( prginfo.identifier );[127X[104X304[4X[28Xrec( groupname := "A5", identifier := [ "A5", "A5G1-max1W1", 1 ], [128X[104X305[4X[28X program := <straight line program>, size := 12, [128X[104X306[4X[28X standardization := 1, subgroupname := "A4" )[128X[104X307[4X[25Xgap>[125X [27XDisplay( prg.program );[127X[104X308[4X[28X# input:[128X[104X309[4X[28Xr:= [ g1, g2 ];[128X[104X310[4X[28X# program:[128X[104X311[4X[28Xr[3]:= r[1]*r[2];[128X[104X312[4X[28Xr[4]:= r[2]*r[1];[128X[104X313[4X[28Xr[5]:= r[3]*r[3];[128X[104X314[4X[28Xr[1]:= r[5]*r[4];[128X[104X315[4X[28X# return values:[128X[104X316[4X[28X[ r[1], r[2] ][128X[104X317[4X[25Xgap>[125X [27XResultOfStraightLineProgram( prg.program, info2.generators );[127X[104X318[4X[28X[ (1,10)(2,3)(4,9)(7,8), (1,2,3)(4,6,7)(5,8,9) ][128X[104X319[4X[32X[104X320321322[1X2.4 [33X[0;0YExamples of Using the [5XAtlasRep[105X[101X[1X Package[133X[101X323324325[1X2.4-1 [33X[0;0YExample: Class Representatives[133X[101X326327[33X[0;0YFirst we show the computation of class representatives of the Mathieu group328[22XM_11[122X, in a [22X2[122X-modular matrix representation. We start with the ordinary and329Brauer character tables of this group.[133X330331[4X[32X Example [32X[104X332[4X[25Xgap>[125X [27Xtbl:= CharacterTable( "M11" );;[127X[104X333[4X[25Xgap>[125X [27Xmodtbl:= tbl mod 2;;[127X[104X334[4X[25Xgap>[125X [27XCharacterDegrees( modtbl );[127X[104X335[4X[28X[ [ 1, 1 ], [ 10, 1 ], [ 16, 2 ], [ 44, 1 ] ][128X[104X336[4X[32X[104X337338[33X[0;0YThe output of [2XCharacterDegrees[102X ([14XReference: CharacterDegrees[114X) means that the339[22X2[122X-modular irreducibles of [22XM_11[122X have degrees [22X1[122X, [22X10[122X, [22X16[122X, [22X16[122X, and [22X44[122X.[133X340341[33X[0;0YUsing [2XDisplayAtlasInfo[102X ([14X3.5-1[114X), we find out that matrix generators for the342irreducible [22X10[122X-dimensional representation are available in the database.[133X343344[4X[32X Example [32X[104X345[4X[25Xgap>[125X [27XDisplayAtlasInfo( "M11", Characteristic, 2 );[127X[104X346[4X[28XRepresentations for G = M11: (all refer to std. generators 1)[128X[104X347[4X[28X----------------------------[128X[104X348[4X[28X 6: G <= GL(10,2) character 10a[128X[104X349[4X[28X 7: G <= GL(32,2) character 16ab[128X[104X350[4X[28X 8: G <= GL(44,2) character 44a[128X[104X351[4X[28X16: G <= GL(16a,4) character 16a[128X[104X352[4X[28X17: G <= GL(16b,4) character 16b[128X[104X353[4X[32X[104X354355[33X[0;0YSo we decide to work with this representation. We fetch the generators and356compute the list of class representatives of [22XM_11[122X in the representation. The357ordering of class representatives is the same as that in the character table358of the [5XATLAS[105X of Finite Groups ([CCNPW85]), which coincides with the ordering359of columns in the [5XGAP[105X table we have fetched above.[133X360361[4X[32X Example [32X[104X362[4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "M11", Characteristic, 2,[127X[104X363[4X[25X>[125X [27X Dimension, 10 );;[127X[104X364[4X[25Xgap>[125X [27Xgens:= AtlasGenerators( info.identifier );;[127X[104X365[4X[25Xgap>[125X [27Xccls:= AtlasProgram( "M11", gens.standardization, "classes" );[127X[104X366[4X[28Xrec( groupname := "M11", identifier := [ "M11", "M11G1-cclsW1", 1 ], [128X[104X367[4X[28X outputs := [ "1A", "2A", "3A", "4A", "5A", "6A", "8A", "8B", "11A", [128X[104X368[4X[28X "11B" ], program := <straight line program>, [128X[104X369[4X[28X standardization := 1 )[128X[104X370[4X[25Xgap>[125X [27Xreps:= ResultOfStraightLineProgram( ccls.program, gens.generators );;[127X[104X371[4X[32X[104X372373[33X[0;0YIf we would need only a few class representatives, we could use the [5XGAP[105X374library function [2XRestrictOutputsOfSLP[102X ([14XReference: RestrictOutputsOfSLP[114X) to375create a straight line program that computes only specified outputs. Here is376an example where only the class representatives of order eight are computed.[133X377378[4X[32X Example [32X[104X379[4X[25Xgap>[125X [27Xord8prg:= RestrictOutputsOfSLP( ccls.program,[127X[104X380[4X[25X>[125X [27X Filtered( [ 1 .. 10 ], i -> ccls.outputs[i][1] = '8' ) );[127X[104X381[4X[28X<straight line program>[128X[104X382[4X[25Xgap>[125X [27Xord8reps:= ResultOfStraightLineProgram( ord8prg, gens.generators );;[127X[104X383[4X[25Xgap>[125X [27XList( ord8reps, m -> Position( reps, m ) );[127X[104X384[4X[28X[ 7, 8 ][128X[104X385[4X[32X[104X386387[33X[0;0YLet us check that the class representatives have the right orders.[133X388389[4X[32X Example [32X[104X390[4X[25Xgap>[125X [27XList( reps, Order ) = OrdersClassRepresentatives( tbl );[127X[104X391[4X[28Xtrue[128X[104X392[4X[32X[104X393394[33X[0;0YFrom the class representatives, we can compute the Brauer character we had395started with. This Brauer character is defined on all classes of the396[22X2[122X-modular table. So we first pick only those representatives, using the [5XGAP[105X397function [2XGetFusionMap[102X ([14XReference: GetFusionMap[114X); in this situation, it398returns the class fusion from the Brauer table into the ordinary table.[133X399400[4X[32X Example [32X[104X401[4X[25Xgap>[125X [27Xfus:= GetFusionMap( modtbl, tbl );[127X[104X402[4X[28X[ 1, 3, 5, 9, 10 ][128X[104X403[4X[25Xgap>[125X [27Xmodreps:= reps{ fus };;[127X[104X404[4X[32X[104X405406[33X[0;0YThen we call the [5XGAP[105X function [2XBrauerCharacterValue[102X ([14XReference:407BrauerCharacterValue[114X), which computes the Brauer character value from the408matrix given.[133X409410[4X[32X Example [32X[104X411[4X[25Xgap>[125X [27Xchar:= List( modreps, BrauerCharacterValue );[127X[104X412[4X[28X[ 10, 1, 0, -1, -1 ][128X[104X413[4X[25Xgap>[125X [27XPosition( Irr( modtbl ), char );[127X[104X414[4X[28X2[128X[104X415[4X[32X[104X416417418[1X2.4-2 [33X[0;0YExample: Permutation and Matrix Representations[133X[101X419420[33X[0;0YThe second example shows the computation of a permutation representation421from a matrix representation. We work with the [22X10[122X-dimensional representation422used above, and consider the action on the [22X2^10[122X vectors of the underlying423row space.[133X424425[4X[32X Example [32X[104X426[4X[25Xgap>[125X [27Xgrp:= Group( gens.generators );;[127X[104X427[4X[25Xgap>[125X [27Xv:= GF(2)^10;;[127X[104X428[4X[25Xgap>[125X [27Xorbs:= Orbits( grp, AsList( v ) );;[127X[104X429[4X[25Xgap>[125X [27XList( orbs, Length );[127X[104X430[4X[28X[ 1, 396, 55, 330, 66, 165, 11 ][128X[104X431[4X[32X[104X432433[33X[0;0YWe see that there are six nontrivial orbits, and we can compute the434permutation actions on these orbits directly using [2XAction[102X ([14XReference: Action435homomorphisms[114X). However, for larger examples, one cannot write down all436orbits on the row space, so one has to use another strategy if one is437interested in a particular orbit.[133X438439[33X[0;0YLet us assume that we are interested in the orbit of length [22X11[122X. The point440stabilizer is the first maximal subgroup of [22XM_11[122X, thus the restriction of441the representation to this subgroup has a nontrivial fixed point space. This442restriction can be computed using the [5XAtlasRep[105X package.[133X443444[4X[32X Example [32X[104X445[4X[25Xgap>[125X [27Xgens:= AtlasGenerators( "M11", 6, 1 );;[127X[104X446[4X[32X[104X447448[33X[0;0YNow computing the fixed point space is standard linear algebra.[133X449450[4X[32X Example [32X[104X451[4X[25Xgap>[125X [27Xid:= IdentityMat( 10, GF(2) );;[127X[104X452[4X[25Xgap>[125X [27Xsub1:= Subspace( v, NullspaceMat( gens.generators[1] - id ) );;[127X[104X453[4X[25Xgap>[125X [27Xsub2:= Subspace( v, NullspaceMat( gens.generators[2] - id ) );;[127X[104X454[4X[25Xgap>[125X [27Xfix:= Intersection( sub1, sub2 );[127X[104X455[4X[28X<vector space of dimension 1 over GF(2)>[128X[104X456[4X[32X[104X457458[33X[0;0YThe final step is of course the computation of the permutation action on the459orbit.[133X460461[4X[32X Example [32X[104X462[4X[25Xgap>[125X [27Xorb:= Orbit( grp, Basis( fix )[1] );;[127X[104X463[4X[25Xgap>[125X [27Xact:= Action( grp, orb );; Print( act, "\n" );[127X[104X464[4X[28XGroup( [ ( 1, 2)( 4, 6)( 5, 8)( 7,10), ( 1, 3, 5, 9)( 2, 4, 7,11) ] )[128X[104X465[4X[32X[104X466467[33X[0;0YNote that this group is [13Xnot[113X equal to the group obtained by fetching the468permutation representation from the database. This is due to a different469numbering of the points, so the groups are permutation isomorphic.[133X470471[4X[32X Example [32X[104X472[4X[25Xgap>[125X [27Xpermgrp:= Group( AtlasGenerators( "M11", 1 ).generators );;[127X[104X473[4X[25Xgap>[125X [27XPrint( permgrp, "\n" );[127X[104X474[4X[28XGroup( [ ( 2,10)( 4,11)( 5, 7)( 8, 9), ( 1, 4, 3, 8)( 2, 5, 6, 9) ] )[128X[104X475[4X[25Xgap>[125X [27Xpermgrp = act;[127X[104X476[4X[28Xfalse[128X[104X477[4X[25Xgap>[125X [27XIsConjugate( SymmetricGroup(11), permgrp, act );[127X[104X478[4X[28Xtrue[128X[104X479[4X[32X[104X480481482[1X2.4-3 [33X[0;0YExample: Outer Automorphisms[133X[101X483484[33X[0;0YThe straight line programs for applying outer automorphisms to standard485generators can of course be used to define the automorphisms themselves as486[5XGAP[105X mappings.[133X487488[4X[32X Example [32X[104X489[4X[25Xgap>[125X [27XDisplayAtlasInfo( "G2(3)", IsStraightLineProgram );[127X[104X490[4X[28XPrograms for G = G2(3): (all refer to std. generators 1)[128X[104X491[4X[28X-----------------------[128X[104X492[4X[28Xclass repres.[128X[104X493[4X[28Xpresentation[128X[104X494[4X[28Xrepr. cyc. subg.[128X[104X495[4X[28Xstd. gen. checker[128X[104X496[4X[28Xautomorphisms:[128X[104X497[4X[28X 2[128X[104X498[4X[28Xmaxes (all 10):[128X[104X499[4X[28X 1: U3(3).2[128X[104X500[4X[28X 2: U3(3).2[128X[104X501[4X[28X 3: (3^(1+2)+x3^2):2S4[128X[104X502[4X[28X 4: (3^(1+2)+x3^2):2S4[128X[104X503[4X[28X 5: L3(3).2[128X[104X504[4X[28X 6: L3(3).2[128X[104X505[4X[28X 7: L2(8).3[128X[104X506[4X[28X 8: 2^3.L3(2)[128X[104X507[4X[28X 9: L2(13)[128X[104X508[4X[28X 10: 2^(1+4)+:3^2.2[128X[104X509[4X[25Xgap>[125X [27Xprog:= AtlasProgram( "G2(3)", "automorphism", "2" ).program;;[127X[104X510[4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "G2(3)", Dimension, 7 );;[127X[104X511[4X[25Xgap>[125X [27Xgens:= AtlasGenerators( info ).generators;;[127X[104X512[4X[25Xgap>[125X [27Ximgs:= ResultOfStraightLineProgram( prog, gens );;[127X[104X513[4X[32X[104X514515[33X[0;0YIf we are not suspicious whether the script really describes an automorphism516then we should tell this to [5XGAP[105X, in order to avoid the expensive checks of517the properties of being a homomorphism and bijective (see518Section [14X'Reference: Creating Group Homomorphisms'[114X). This looks as follows.[133X519520[4X[32X Example [32X[104X521[4X[25Xgap>[125X [27Xg:= Group( gens );;[127X[104X522[4X[25Xgap>[125X [27Xaut:= GroupHomomorphismByImagesNC( g, g, gens, imgs );;[127X[104X523[4X[25Xgap>[125X [27XSetIsBijective( aut, true );[127X[104X524[4X[32X[104X525526[33X[0;0YIf we are suspicious whether the script describes an automorphism then we527might have the idea to check it with [5XGAP[105X, as follows.[133X528529[4X[32X Example [32X[104X530[4X[25Xgap>[125X [27Xaut:= GroupHomomorphismByImages( g, g, gens, imgs );;[127X[104X531[4X[25Xgap>[125X [27XIsBijective( aut );[127X[104X532[4X[28Xtrue[128X[104X533[4X[32X[104X534535[33X[0;0Y(Note that even for a comparatively small group such as [22XG_2(3)[122X, this was a536difficult task for [5XGAP[105X before version 4.3.)[133X537538[33X[0;0YOften one can form images under an automorphism [22Xα[122X, say, without creating the539homomorphism object. This is obvious for the standard generators of the540group [22XG[122X themselves, but also for generators of a maximal subgroup [22XM[122X computed541from standard generators of [22XG[122X, provided that the straight line programs in542question refer to the same standard generators. Note that the generators of543[22XM[122X are given by evaluating words in terms of standard generators of [22XG[122X, and544their images under [22Xα[122X can be obtained by evaluating the same words at the545images under [22Xα[122X of the standard generators of [22XG[122X.[133X546547[4X[32X Example [32X[104X548[4X[25Xgap>[125X [27Xmax1:= AtlasProgram( "G2(3)", 1 ).program;;[127X[104X549[4X[25Xgap>[125X [27Xmgens:= ResultOfStraightLineProgram( max1, gens );;[127X[104X550[4X[25Xgap>[125X [27Xcomp:= CompositionOfStraightLinePrograms( max1, prog );;[127X[104X551[4X[25Xgap>[125X [27Xmimgs:= ResultOfStraightLineProgram( comp, gens );;[127X[104X552[4X[32X[104X553554[33X[0;0YThe list [10Xmgens[110X is the list of generators of the first maximal subgroup of555[22XG_2(3)[122X, [10Xmimgs[110X is the list of images under the automorphism given by the556straight line program [10Xprog[110X. Note that applying the program returned by557[2XCompositionOfStraightLinePrograms[102X ([14XReference:558CompositionOfStraightLinePrograms[114X) means to apply first [10Xprog[110X and then [10Xmax1[110X.559Since we have already constructed the [5XGAP[105X object representing the560automorphism, we can check whether the results are equal.[133X561562[4X[32X Example [32X[104X563[4X[25Xgap>[125X [27Xmimgs = List( mgens, x -> x^aut );[127X[104X564[4X[28Xtrue[128X[104X565[4X[32X[104X566567[33X[0;0YHowever, it should be emphasized that using [10Xaut[110X requires a huge machinery of568computations behind the scenes, whereas applying the straight line programs569[10Xprog[110X and [10Xmax1[110X involves only elementary operations with the generators. The570latter is feasible also for larger groups, for which constructing the [5XGAP[105X571automorphism might be too hard.[133X572573574[1X2.4-4 [33X[0;0YExample: Using Semi-presentations and Black Box Programs[133X[101X575576[33X[0;0YLet us suppose that we want to restrict a representation of the Mathieu577group [22XM_12[122X to a non-maximal subgroup of the type [22XL_2(11)[122X. The idea is that578this subgroup can be found as a maximal subgroup of a maximal subgroup of579the type [22XM_11[122X, which is itself maximal in [22XM_12[122X. For that, we fetch a580representation of [22XM_12[122X and use a straight line program for restricting it to581the first maximal subgroup, which has the type [22XM_11[122X.[133X582583[4X[32X Example [32X[104X584[4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "M12", NrMovedPoints, 12 );[127X[104X585[4X[28Xrec( charactername := "1a+11a", groupname := "M12", id := "a", [128X[104X586[4X[28X identifier := [ "M12", [ "M12G1-p12aB0.m1", "M12G1-p12aB0.m2" ], 1, [128X[104X587[4X[28X 12 ], isPrimitive := true, maxnr := 1, p := 12, rankAction := 2,[128X[104X588[4X[28X repname := "M12G1-p12aB0", repnr := 1, size := 95040, [128X[104X589[4X[28X stabilizer := "M11", standardization := 1, transitivity := 5, [128X[104X590[4X[28X type := "perm" )[128X[104X591[4X[25Xgap>[125X [27XgensM12:= AtlasGenerators( info.identifier );;[127X[104X592[4X[25Xgap>[125X [27XrestM11:= AtlasProgram( "M12", "maxes", 1 );;[127X[104X593[4X[25Xgap>[125X [27XgensM11:= ResultOfStraightLineProgram( restM11.program,[127X[104X594[4X[25X>[125X [27X gensM12.generators );[127X[104X595[4X[28X[ (3,9)(4,12)(5,10)(6,8), (1,4,11,5)(2,10,8,3) ][128X[104X596[4X[32X[104X597598[33X[0;0YNow we [13Xcannot[113X simply apply a straight line program for a group to some599generators, since they are not necessarily [13Xstandard[113X generators of the group.600We check this property using a semi-presentation for [22XM_11[122X, see [14X6.1-7[114X.[133X601602[4X[32X Example [32X[104X603[4X[25Xgap>[125X [27XcheckM11:= AtlasProgram( "M11", "check" );[127X[104X604[4X[28Xrec( groupname := "M11", identifier := [ "M11", "M11G1-check1", 1, 1 ][128X[104X605[4X[28X , program := <straight line decision>, standardization := 1 )[128X[104X606[4X[25Xgap>[125X [27XResultOfStraightLineDecision( checkM11.program, gensM11 );[127X[104X607[4X[28Xtrue[128X[104X608[4X[32X[104X609610[33X[0;0YSo we are lucky that applying the appropriate program for [22XM_11[122X will give us611the required generators for [22XL_2(11)[122X.[133X612613[4X[32X Example [32X[104X614[4X[25Xgap>[125X [27XrestL211:= AtlasProgram( "M11", "maxes", 2 );;[127X[104X615[4X[25Xgap>[125X [27XgensL211:= ResultOfStraightLineProgram( restL211.program, gensM11 );[127X[104X616[4X[28X[ (3,9)(4,12)(5,10)(6,8), (1,11,9)(2,12,8)(3,6,10) ][128X[104X617[4X[25Xgap>[125X [27XG:= Group( gensL211 );; Size( G ); IsSimple( G );[127X[104X618[4X[28X660[128X[104X619[4X[28Xtrue[128X[104X620[4X[32X[104X621622[33X[0;0YUsually representations are not given in terms of standard generators. For623example, let us take the [22XM_11[122X type group returned by the [5XGAP[105X function624[2XMathieuGroup[102X ([14XReference: MathieuGroup[114X).[133X625626[4X[32X Example [32X[104X627[4X[25Xgap>[125X [27XG:= MathieuGroup( 11 );;[127X[104X628[4X[25Xgap>[125X [27Xgens:= GeneratorsOfGroup( G );[127X[104X629[4X[28X[ (1,2,3,4,5,6,7,8,9,10,11), (3,7,11,8)(4,10,5,6) ][128X[104X630[4X[25Xgap>[125X [27XResultOfStraightLineDecision( checkM11.program, gens );[127X[104X631[4X[28Xfalse[128X[104X632[4X[32X[104X633634[33X[0;0YIf we want to compute an [22XL_2(11)[122X type subgroup of this group, we can use a635black box program for computing standard generators, and then apply the636straight line program for computing the restriction.[133X637638[4X[32X Example [32X[104X639[4X[25Xgap>[125X [27Xfind:= AtlasProgram( "M11", "find" );[127X[104X640[4X[28Xrec( groupname := "M11", identifier := [ "M11", "M11G1-find1", 1, 1 ],[128X[104X641[4X[28X program := <black box program>, standardization := 1 )[128X[104X642[4X[25Xgap>[125X [27Xstdgens:= ResultOfBBoxProgram( find.program, Group( gens ) );;[127X[104X643[4X[25Xgap>[125X [27XList( stdgens, Order );[127X[104X644[4X[28X[ 2, 4 ][128X[104X645[4X[25Xgap>[125X [27XResultOfStraightLineDecision( checkM11.program, stdgens );[127X[104X646[4X[28Xtrue[128X[104X647[4X[25Xgap>[125X [27XgensL211:= ResultOfStraightLineProgram( restL211.program, stdgens );;[127X[104X648[4X[25Xgap>[125X [27XList( gensL211, Order );[127X[104X649[4X[28X[ 2, 3 ][128X[104X650[4X[25Xgap>[125X [27XG:= Group( gensL211 );; Size( G ); IsSimple( G );[127X[104X651[4X[28X660[128X[104X652[4X[28Xtrue[128X[104X653[4X[32X[104X654655656[1X2.4-5 [33X[0;0YExample: Using the [5XGAP[105X[101X[1X Library of Tables of Marks[133X[101X657658[33X[0;0YThe [5XGAP[105X Library of Tables of Marks (the [5XGAP[105X package [5XTomLib[105X, [NMP13])659provides, for many almost simple groups, information for constructing660representatives of all conjugacy classes of subgroups. If this information661is compatible with the standard generators of the [5XATLAS[105X of Group662Representations then we can use it to restrict any representation from the663[5XATLAS[105X to prescribed subgroups. This is useful in particular for those664subgroups for which the [5XATLAS[105X of Group Representations itself does not665contain a straight line program.[133X666667[4X[32X Example [32X[104X668[4X[25Xgap>[125X [27Xtom:= TableOfMarks( "A5" );[127X[104X669[4X[28XTableOfMarks( "A5" )[128X[104X670[4X[25Xgap>[125X [27Xinfo:= StandardGeneratorsInfo( tom );[127X[104X671[4X[28X[ rec( ATLAS := true, description := "|a|=2, |b|=3, |ab|=5", [128X[104X672[4X[28X generators := "a, b", [128X[104X673[4X[28X script := [ [ 1, 2 ], [ 2, 3 ], [ 1, 1, 2, 1, 5 ] ], [128X[104X674[4X[28X standardization := 1 ) ][128X[104X675[4X[32X[104X676677[33X[0;0YThe [9Xtrue[109X value of the component [10XATLAS[110X indicates that the information stored678on [10Xtom[110X refers to the standard generators of type [22X1[122X in the [5XATLAS[105X of Group679Representations.[133X680681[33X[0;0YWe want to restrict a [22X4[122X-dimensional integral representation of [22XA_5[122X to a682Sylow [22X2[122X subgroup of [22XA_5[122X, and use [2XRepresentativeTomByGeneratorsNC[102X ([14XReference:683RepresentativeTomByGeneratorsNC[114X) for that.[133X684685[4X[32X Example [32X[104X686[4X[25Xgap>[125X [27Xinfo:= OneAtlasGeneratingSetInfo( "A5", Ring, Integers, Dimension, 4 );;[127X[104X687[4X[25Xgap>[125X [27Xstdgens:= AtlasGenerators( info.identifier );[127X[104X688[4X[28Xrec( dim := 4, [128X[104X689[4X[28X generators := [128X[104X690[4X[28X [ [128X[104X691[4X[28X [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1, 0, 0 ], [128X[104X692[4X[28X [ -1, -1, -1, -1 ] ], [128X[104X693[4X[28X [ [ 0, 1, 0, 0 ], [ 0, 0, 0, 1 ], [ 0, 0, 1, 0 ], [128X[104X694[4X[28X [ 1, 0, 0, 0 ] ] ], groupname := "A5", id := "", [128X[104X695[4X[28X identifier := [ "A5", "A5G1-Zr4B0.g", 1, 4 ], [128X[104X696[4X[28X repname := "A5G1-Zr4B0", repnr := 14, ring := Integers, size := 60, [128X[104X697[4X[28X standardization := 1, type := "matint" )[128X[104X698[4X[25Xgap>[125X [27Xorders:= OrdersTom( tom );[127X[104X699[4X[28X[ 1, 2, 3, 4, 5, 6, 10, 12, 60 ][128X[104X700[4X[25Xgap>[125X [27Xpos:= Position( orders, 4 );[127X[104X701[4X[28X4[128X[104X702[4X[25Xgap>[125X [27Xsub:= RepresentativeTomByGeneratorsNC( tom, pos, stdgens.generators );[127X[104X703[4X[28X<matrix group of size 4 with 2 generators>[128X[104X704[4X[25Xgap>[125X [27XGeneratorsOfGroup( sub );[127X[104X705[4X[28X[ [ [ 1, 0, 0, 0 ], [ -1, -1, -1, -1 ], [ 0, 0, 0, 1 ], [128X[104X706[4X[28X [ 0, 0, 1, 0 ] ], [128X[104X707[4X[28X [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 1, 0, 0 ], [128X[104X708[4X[28X [ -1, -1, -1, -1 ] ] ][128X[104X709[4X[32X[104X710711712[1X2.4-6 [33X[0;0YExample: Index [22X770[122X[101X[1X Subgroups in [22XM_22[122X[101X[1X[133X[101X713714[33X[0;0YThe sporadic simple Mathieu group [22XM_22[122X contains a unique class of subgroups715of index [22X770[122X (and order [22X576[122X). This can be seen for example using [5XGAP[105X's716Library of Tables of Marks.[133X717718[4X[32X Example [32X[104X719[4X[25Xgap>[125X [27Xtom:= TableOfMarks( "M22" );[127X[104X720[4X[28XTableOfMarks( "M22" )[128X[104X721[4X[25Xgap>[125X [27Xsubord:= Size( UnderlyingGroup( tom ) ) / 770;[127X[104X722[4X[28X576[128X[104X723[4X[25Xgap>[125X [27Xord:= OrdersTom( tom );;[127X[104X724[4X[25Xgap>[125X [27Xtomstabs:= Filtered( [ 1 .. Length( ord ) ], i -> ord[i] = subord );[127X[104X725[4X[28X[ 144 ][128X[104X726[4X[32X[104X727728[33X[0;0YThe permutation representation of [22XM_22[122X on the right cosets of such a729subgroup [22XS[122X is contained in the [5XATLAS[105X of Group Representations.[133X730731[4X[32X Example [32X[104X732[4X[25Xgap>[125X [27XDisplayAtlasInfo( "M22", NrMovedPoints, 770 );[127X[104X733[4X[28XRepresentations for G = M22: (all refer to std. generators 1)[128X[104X734[4X[28X----------------------------[128X[104X735[4X[28X12: G <= Sym(770) rank 9, on cosets of (A4xA4):4 < 2^4:A6[128X[104X736[4X[32X[104X737738[33X[0;0YWe now verify the information shown about the point stabilizer and about the739maximal overgroups of [22XS[122X in [22XM_22[122X.[133X740741[4X[32X Example [32X[104X742[4X[25Xgap>[125X [27Xmaxtom:= MaximalSubgroupsTom( tom );[127X[104X743[4X[28X[ [ 155, 154, 153, 152, 151, 150, 146, 145 ], [128X[104X744[4X[28X [ 22, 77, 176, 176, 231, 330, 616, 672 ] ][128X[104X745[4X[25Xgap>[125X [27XList( tomstabs, i -> List( maxtom[1], j -> ContainedTom( tom, i, j ) ) );[127X[104X746[4X[28X[ [ 0, 10, 0, 0, 0, 0, 0, 0 ] ][128X[104X747[4X[32X[104X748749[33X[0;0YWe see that the only maximal subgroups of [22XM_22[122X that contain [22XS[122X have index [22X77[122X750in [22XM_22[122X. According to the [5XATLAS[105X of Finite Groups, these maximal subgroups751have the structure [22X2^4:A_6[122X. From that and from the structure of [22XA_6[122X, we752conclude that [22XS[122X has the structure [22X2^4:(3^2:4)[122X.[133X753754[33X[0;0YAlternatively, we look at the permutation representation of degree [22X770[122X. We755fetch it from the [5XATLAS[105X of Group Representations. There is exactly one756nontrivial block system for this representation, with [22X77[122X blocks of length757[22X10[122X.[133X758759[4X[32X Example [32X[104X760[4X[25Xgap>[125X [27Xg:= AtlasGroup( "M22", NrMovedPoints, 770 );[127X[104X761[4X[28X<permutation group of size 443520 with 2 generators>[128X[104X762[4X[25Xgap>[125X [27Xallbl:= AllBlocks( g );;[127X[104X763[4X[25Xgap>[125X [27XList( allbl, Length );[127X[104X764[4X[28X[ 10 ][128X[104X765[4X[32X[104X766767[33X[0;0YFurthermore, [5XGAP[105X computes that the point stabilizer [22XS[122X has the structure [22X(A_4768× A_4):4[122X.[133X769770[4X[32X Example [32X[104X771[4X[25Xgap>[125X [27Xstab:= Stabilizer( g, 1 );;[127X[104X772[4X[25Xgap>[125X [27XStructureDescription( stab );[127X[104X773[4X[28X"(A4 x A4) : C4"[128X[104X774[4X[25Xgap>[125X [27Xblocks:= Orbit( g, allbl[1], OnSets );;[127X[104X775[4X[25Xgap>[125X [27Xact:= Action( g, blocks, OnSets );;[127X[104X776[4X[25Xgap>[125X [27XStructureDescription( Stabilizer( act, 1 ) );[127X[104X777[4X[28X"(C2 x C2 x C2 x C2) : A6"[128X[104X778[4X[32X[104X779780781[1X2.4-7 [33X[0;0YExample: Index [22X462[122X[101X[1X Subgroups in [22XM_22[122X[101X[1X[133X[101X782783[33X[0;0YThe [5XATLAS[105X of Group Representations contains three degree [22X462[122X permutation784representations of the group [22XM_22[122X.[133X785786[4X[32X Example [32X[104X787[4X[25Xgap>[125X [27XDisplayAtlasInfo( "M22", NrMovedPoints, 462 );[127X[104X788[4X[28XRepresentations for G = M22: (all refer to std. generators 1)[128X[104X789[4X[28X----------------------------[128X[104X790[4X[28X7: G <= Sym(462a) rank 5, on cosets of 2^4:A5 < 2^4:A6[128X[104X791[4X[28X8: G <= Sym(462b) rank 8, on cosets of 2^4:A5 < L3(4), 2^4:S5[128X[104X792[4X[28X9: G <= Sym(462c) rank 8, on cosets of 2^4:A5 < L3(4), 2^4:A6[128X[104X793[4X[32X[104X794795[33X[0;0YThe point stabilizers in these three representations have the structure796[22X2^4:A_5[122X. Using [5XGAP[105X's Library of Tables of Marks, we can show that these797stabilizers are exactly the three classes of subgroups of order [22X960[122X in [22XM_22[122X.798For that, we first verify that the group generators stored in [5XGAP[105X's table of799marks coincide with the standard generators used by the [5XATLAS[105X of Group800Representations.[133X801802[4X[32X Example [32X[104X803[4X[25Xgap>[125X [27Xtom:= TableOfMarks( "M22" );[127X[104X804[4X[28XTableOfMarks( "M22" )[128X[104X805[4X[25Xgap>[125X [27Xgenstom:= GeneratorsOfGroup( UnderlyingGroup( tom ) );;[127X[104X806[4X[25Xgap>[125X [27XcheckM22:= AtlasProgram( "M22", "check" );[127X[104X807[4X[28Xrec( groupname := "M22", identifier := [ "M22", "M22G1-check1", 1, 1 ][128X[104X808[4X[28X , program := <straight line decision>, standardization := 1 )[128X[104X809[4X[25Xgap>[125X [27XResultOfStraightLineDecision( checkM22.program, genstom );[127X[104X810[4X[28Xtrue[128X[104X811[4X[32X[104X812813[33X[0;0YThere are indeed three classes of subgroups of order [22X960[122X in [22XM_22[122X.[133X814815[4X[32X Example [32X[104X816[4X[25Xgap>[125X [27Xord:= OrdersTom( tom );;[127X[104X817[4X[25Xgap>[125X [27Xtomstabs:= Filtered( [ 1 .. Length( ord ) ], i -> ord[i] = 960 );[127X[104X818[4X[28X[ 147, 148, 149 ][128X[104X819[4X[32X[104X820821[33X[0;0YNow we compute representatives of these three classes in the three822representations [10X462a[110X, [10X462b[110X, and [10X462c[110X. We see that each of the three classes823occurs as a point stabilizer in exactly one of the three representations.[133X824825[4X[32X Example [32X[104X826[4X[25Xgap>[125X [27Xatlasreps:= AllAtlasGeneratingSetInfos( "M22", NrMovedPoints, 462 );[127X[104X827[4X[28X[ rec( charactername := "1a+21a+55a+154a+231a", groupname := "M22", [128X[104X828[4X[28X id := "a", [128X[104X829[4X[28X identifier := [128X[104X830[4X[28X [ "M22", [ "M22G1-p462aB0.m1", "M22G1-p462aB0.m2" ], 1, 462 ],[128X[104X831[4X[28X isPrimitive := false, p := 462, rankAction := 5, [128X[104X832[4X[28X repname := "M22G1-p462aB0", repnr := 7, size := 443520, [128X[104X833[4X[28X stabilizer := "2^4:A5 < 2^4:A6", standardization := 1, [128X[104X834[4X[28X transitivity := 1, type := "perm" ), [128X[104X835[4X[28X rec( charactername := "1a+21a^2+55a+154a+210a", groupname := "M22", [128X[104X836[4X[28X id := "b", [128X[104X837[4X[28X identifier := [128X[104X838[4X[28X [ "M22", [ "M22G1-p462bB0.m1", "M22G1-p462bB0.m2" ], 1, 462 ],[128X[104X839[4X[28X isPrimitive := false, p := 462, rankAction := 8, [128X[104X840[4X[28X repname := "M22G1-p462bB0", repnr := 8, size := 443520, [128X[104X841[4X[28X stabilizer := "2^4:A5 < L3(4), 2^4:S5", standardization := 1, [128X[104X842[4X[28X transitivity := 1, type := "perm" ), [128X[104X843[4X[28X rec( charactername := "1a+21a^2+55a+154a+210a", groupname := "M22", [128X[104X844[4X[28X id := "c", [128X[104X845[4X[28X identifier := [128X[104X846[4X[28X [ "M22", [ "M22G1-p462cB0.m1", "M22G1-p462cB0.m2" ], 1, 462 ],[128X[104X847[4X[28X isPrimitive := false, p := 462, rankAction := 8, [128X[104X848[4X[28X repname := "M22G1-p462cB0", repnr := 9, size := 443520, [128X[104X849[4X[28X stabilizer := "2^4:A5 < L3(4), 2^4:A6", standardization := 1, [128X[104X850[4X[28X transitivity := 1, type := "perm" ) ][128X[104X851[4X[25Xgap>[125X [27Xatlasreps:= List( atlasreps, AtlasGroup );;[127X[104X852[4X[25Xgap>[125X [27Xtomstabreps:= List( atlasreps, G -> List( tomstabs,[127X[104X853[4X[25X>[125X [27Xi -> RepresentativeTomByGenerators( tom, i, GeneratorsOfGroup( G ) ) ) );;[127X[104X854[4X[25Xgap>[125X [27XList( tomstabreps, x -> List( x, NrMovedPoints ) );[127X[104X855[4X[28X[ [ 462, 462, 461 ], [ 460, 462, 462 ], [ 462, 461, 462 ] ][128X[104X856[4X[32X[104X857858[33X[0;0YMore precisely, we see that the point stabilizers in the three859representations [10X462a[110X, [10X462b[110X, [10X462c[110X lie in the subgroup classes [22X149[122X, [22X147[122X, [22X148[122X,860respectively, of the table of marks.[133X861862[33X[0;0YThe point stabilizers in the representations [10X462b[110X and [10X462c[110X are isomorphic,863but not isomorphic with the point stabilizer in [10X462a[110X.[133X864865[4X[32X Example [32X[104X866[4X[25Xgap>[125X [27Xstabs:= List( atlasreps, G -> Stabilizer( G, 1 ) );;[127X[104X867[4X[25Xgap>[125X [27XList( stabs, IdGroup );[127X[104X868[4X[28X[ [ 960, 11358 ], [ 960, 11357 ], [ 960, 11357 ] ][128X[104X869[4X[25Xgap>[125X [27XList( stabs, PerfectIdentification );[127X[104X870[4X[28X[ [ 960, 2 ], [ 960, 1 ], [ 960, 1 ] ][128X[104X871[4X[32X[104X872873[33X[0;0YThe three representations are imprimitive. The containment of the point874stabilizers in maximal subgroups of [22XM_22[122X can be computed using the table of875marks of [22XM_22[122X.[133X876877[4X[32X Example [32X[104X878[4X[25Xgap>[125X [27Xmaxtom:= MaximalSubgroupsTom( tom );[127X[104X879[4X[28X[ [ 155, 154, 153, 152, 151, 150, 146, 145 ], [128X[104X880[4X[28X [ 22, 77, 176, 176, 231, 330, 616, 672 ] ][128X[104X881[4X[25Xgap>[125X [27XList( tomstabs, i -> List( maxtom[1], j -> ContainedTom( tom, i, j ) ) );[127X[104X882[4X[28X[ [ 21, 0, 0, 0, 1, 0, 0, 0 ], [ 21, 6, 0, 0, 0, 0, 0, 0 ], [128X[104X883[4X[28X [ 0, 6, 0, 0, 0, 0, 0, 0 ] ][128X[104X884[4X[32X[104X885886[33X[0;0YWe see:[133X887888[30X [33X[0;6YThe point stabilizers in [10X462a[110X (subgroups in the class [22X149[122X of the table889of marks) are contained only in maximal subgroups in class [22X154[122X; these890groups have the structure [22X2^4:A_6[122X.[133X891892[30X [33X[0;6YThe point stabilizers in [10X462b[110X (subgroups in the class [22X147[122X) are893contained in maximal subgroups in the classes [22X155[122X and [22X151[122X; these894groups have the structures [22XL_3(4)[122X and [22X2^4:S_5[122X, respectively.[133X895896[30X [33X[0;6YThe point stabilizers in [10X462c[110X (subgroups in the class [22X148[122X) are897contained in maximal subgroups in the classes [22X155[122X and [22X154[122X.[133X898899[33X[0;0YWe identify the supergroups of the point stabilizers by computing the block900systems.[133X901902[4X[32X Example [32X[104X903[4X[25Xgap>[125X [27Xbl:= List( atlasreps, AllBlocks );;[127X[104X904[4X[25Xgap>[125X [27XList( bl, Length );[127X[104X905[4X[28X[ 1, 3, 2 ][128X[104X906[4X[25Xgap>[125X [27XList( bl, l -> List( l, Length ) );[127X[104X907[4X[28X[ [ 6 ], [ 21, 21, 2 ], [ 21, 6 ] ][128X[104X908[4X[32X[104X909910[33X[0;0YNote that the two block systems with blocks of length [22X21[122X for [10X462b[110X belong to911the same supergroups (of the type [22XL_3(4)[122X); each of these subgroups fixes two912different subsets of [22X21[122X points.[133X913914[33X[0;0YThe representation [10X462a[110X is [13Xmultiplicity-free[113X, that is, it splits into a sum915of pairwise nonisomorphic irreducible representations. This can be seen from916the fact that the rank of this permutation representation (that is, the917number of orbits of the point stabilizer) is five; each permutation918representation with this property is multiplicity-free.[133X919920[33X[0;0YThe other two representations have rank eight. We have seen the ranks in the921overview that was shown by [2XDisplayAtlasInfo[102X ([14X3.5-1[114X) in the beginning. Now we922compute the ranks from the permutation groups.[133X923924[4X[32X Example [32X[104X925[4X[25Xgap>[125X [27XList( atlasreps, RankAction );[127X[104X926[4X[28X[ 5, 8, 8 ][128X[104X927[4X[32X[104X928929[33X[0;0YIn fact the two representations [10X462b[110X and [10X462c[110X have the same permutation930character. We check this by computing the possible permutation characters of931degree [22X462[122X for [22XM_22[122X, and decomposing them into irreducible characters, using932the character table from [5XGAP[105X's Character Table Library.[133X933934[4X[32X Example [32X[104X935[4X[25Xgap>[125X [27Xt:= CharacterTable( "M22" );;[127X[104X936[4X[25Xgap>[125X [27Xperms:= PermChars( t, 462 );[127X[104X937[4X[28X[ Character( CharacterTable( "M22" ),[128X[104X938[4X[28X [ 462, 30, 3, 2, 2, 2, 3, 0, 0, 0, 0, 0 ] ), [128X[104X939[4X[28X Character( CharacterTable( "M22" ),[128X[104X940[4X[28X [ 462, 30, 12, 2, 2, 2, 0, 0, 0, 0, 0, 0 ] ) ][128X[104X941[4X[25Xgap>[125X [27XMatScalarProducts( t, Irr( t ), perms );[127X[104X942[4X[28X[ [ 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0 ], [128X[104X943[4X[28X [ 1, 2, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0 ] ][128X[104X944[4X[32X[104X945946[33X[0;0YIn particular, we see that the rank eight characters are not947multiplicity-free.[133X948949950951