gap> Read("/home/math6/wdj/gap/games/grpdata.g"); gap> Read("/home/math6/wdj/gap/new/AbStab.g"); The record 'descriptions' contains brief descriptions of the functions in this file. Functions of importance: MakeAbStabChain, FactorPermGroupElement, Shrink gap> descriptions; rec( MakeAbChainShort := "MakeAbChainShort( G )\n An attempt to shorten the generators of the stabil\ izer subgroups", Shrink := "Shrink( G, elm )\n Shrinks the length of the word that represents elm in G\ .", map := "map( G, a )\n Maps the abstract word a to an element of G", FactorPermGroupElement := "FactorPermGroupElement( G, elm )\n Returns an abstract word that represent\ s elm in the generators of G", MakeAbStabChain := "MakeAbStabChain( G <,l > )\n Creates a chain of stabilizer subgroups for G\ , with preference given to the\n ordering of the points listed in l", FirstStabilizer := "FirstStabilizer( G <,l > )\n Returns the stabilizer in G of the first move\ d point in l", NewMinGenSet := "NewMinGenSet( X )\n An attempt at a faster MinGenSet", MinGenSet := "MinGenSet( X )\n Returns a group generated by X (either a group or a set o\ f generators) that\n has a subset of X (or X.generators) as generators, with p\ reference to\n the ordering of X", WordInStrongGens := "WordInStrongGens(G,x)\n Writes x in terms of strong generators of G", WordModStabilizer := "WordModStabilizer(G,x)\n Returns [s, a], where s is in a stabilizer subgro\ up of G, a is a word and\n x = map(G,a) * y", GenTable := "GenTable( G <,base> <,wantInverse> )\n Creates a table of elements that ge\ nerate a stabilizing subgroup of G", LeftSchreier := "LeftSchreier( G <,base> <,wantInverse> )\n Creates the left Schreier trans\ versal in G of a stabilizer subgroup", MakeShortStab := "MakeShortStab( G <,base> <,wantInverse> )\n The same as MakeStab, but it t\ ries to make the transversal elements shorter", MakeStab := "MakeStab( G <,base> <,wantInverse> )\n Creates the first portion of the ch\ ain", AddSpot := "AddSpot( list, position, thing )\n Binds 'list[position]' and adds 'thing'\ to the list 'list[postition]'", AddAbstractGens := "AddAbstractGens( G )\n Creates the list G.abstractGenerators corresponding\ to G.generators.", Shrink_arg := "Shrink_arg( list )\n Converts [arg] to arg", execute := "execute( f, list )\n Does f(arg), where list = [arg]" ) gap> descriptions; rec( MakeAbChainShort := "MakeAbChainShort( G )\n An attempt to shorten the generators of the stabil\ izer subgroups", Shrink := "Shrink( G, elm )\n Shrinks the length of the word that represents elm in G\ .", map := "map( G, a )\n Maps the abstract word a to an element of G", FactorPermGroupElement := "FactorPermGroupElement( G, elm )\n Returns an abstract word that represent\ s elm in the generators of G", MakeAbStabChain := "MakeAbStabChain( G <,l > )\n Creates a chain of stabilizer subgroups for G\ , with preference given to the\n ordering of the points listed in l", FirstStabilizer := "FirstStabilizer( G <,l > )\n Returns the stabilizer in G of the first move\ d point in l", NewMinGenSet := "NewMinGenSet( X )\n An attempt at a faster MinGenSet", MinGenSet := "MinGenSet( X )\n Returns a group generated by X (either a group or a set o\ f generators) that\n has a subset of X (or X.generators) as generators, with p\ reference to\n the ordering of X", WordInStrongGens := "WordInStrongGens(G,x)\n Writes x in terms of strong generators of G", WordModStabilizer := "WordModStabilizer(G,x)\n Returns [s, a], where s is in a stabilizer subgro\ up of G, a is a word and\n x = map(G,a) * y", GenTable := "GenTable( G <,base> <,wantInverse> )\n Creates a table of elements that ge\ nerate a stabilizing subgroup of G", LeftSchreier := "LeftSchreier( G <,base> <,wantInverse> )\n Creates the left Schreier trans\ versal in G of a stabilizer subgroup", MakeShortStab := "MakeShortStab( G <,base> <,wantInverse> )\n The same as MakeStab, but it t\ ries to make the transversal elements shorter", MakeStab := "MakeStab( G <,base> <,wantInverse> )\n Creates the first portion of the ch\ ain", AddSpot := "AddSpot( list, position, thing )\n Binds 'list[position]' and adds 'thing'\ to the list 'list[postition]'", AddAbstractGens := "AddAbstractGens( G )\n Creates the list G.abstractGenerators corresponding\ to G.generators.", Shrink_arg := "Shrink_arg( list )\n Converts [arg] to arg", execute := "execute( f, list )\n Does f(arg), where list = [arg]" ) gap> G:=MinGenSet(f1,f2,f3,f4,r1,r2,r3,r4); Error, Function: number of args must be 1 gap> gen:=Set([f1,f2,f3,f4,r1,r2,r3,r4]); [ (25,26,27,28,29,30,31,32), (17,18,19,20,21,22,23,24), ( 9,10,11,12,13,14,15,16), ( 4,31)( 5,30)( 6,29)( 7,28)(12,23)(13,22)(14,21) (15,20), ( 3,30)( 4,29)( 5,28)( 6,27)(11,22)(12,21)(13,20)(14,19), ( 2,29)( 3,28)( 4,27)( 5,26)(10,21)(11,22)(12,23)(13,24), (1,2,3,4,5,6,7,8), ( 1,28)( 2,27)( 3,26)( 4,25)( 9,20)(10,19)(11,18)(12,17) ] gap> G:=MinGenSet(gen); Group( (25,26,27,28,29,30,31,32), (17,18,19,20,21,22,23,24), ( 9,10,11,12,13, 14,15,16), ( 4,31)( 5,30)( 6,29)( 7,28)(12,23)(13,22)(14,21)(15,20), ( 3,30) ( 4,29)( 5,28)( 6,27)(11,22)(12,21)(13,20)(14,19), ( 2,29)( 3,28)( 4,27) ( 5,26)(10,21)(11,22)(12,23)(13,24), (1,2,3,4,5,6,7,8) ) gap> Size(G); 437763136697395052544000000 gap> f1; ( 1,28)( 2,27)( 3,26)( 4,25)( 9,20)(10,19)(11,18)(12,17) gap> 2_cycle:=(1,2); (1,2) gap> 2_cycle in G; true gap> 2cycle:=Shrink(G,2_cycle); g1^-2*g5^-1*g1*g4^-1*g1*g4^-1*g1^-1*g7^2*g5^-1*g1^-1*g5^-1*g7^-3*g5^-1*g1^-1*g\ 5^-1*g7*g5^-1*g1^2*g5^-1*g7*g5^-1*g1^-1*g5^-1*g7^-1*g5^-1*g1^2*g5^-1*g7*g5^-1*\ g1^-1*g5^-1*g7^-1*g5^-1*g1^-4*g5^-1*g7*g5^-1*g1*g5^-1*g7^-1*g5^-1*g1*g5^-1*g7^\ -2*g5^-1*g1^-1*g5^-1*g7*g5^-1*g1^-1*g5^-1*g7^-1*g5^-1*g1^2*g5^-1*g7^4*g5^-1*g1\ *g5^-1*g7^-3*g5^-1*g1^-1*g5^-1*g7*g5^-1*g1^2*g5^-1*g7^-1*g5^-1*g1*g5^-1*g7^3*g\ 5^-1*g1*g5^-1*g7^-3*g5^-1*g1^-1*g5^-1*g7^2*g5^-1*g1^-1*g5^-1*g7^-1*g5^-1 gap> FactorPermGroupElement(G,f2); g6 gap> FactorPermGroupElement(G,f3); g5 gap> FactorPermGroupElement(G,f4); g4 gap> FactorPermGroupElement(G,r1); g7 gap> FactorPermGroupElement(G,r2); g3 gap> FactorPermGroupElement(G,r3); g2 gap> FactorPermGroupElement(G,r4); g1 gap> 2cyclea:=Shrink(G,2cycle); g1^-2*g5^-1*g1*g4^-1*g1*g4^-1*g1^-1*g7^2*g5^-1*g1^-1*g5^-1*g7^-3*g5^-1*g1^-1*g\ 5^-1*g7*g5^-1*g1^2*g5^-1*g7*g5^-1*g1^-1*g5^-1*g7^-1*g5^-1*g1^2*g5^-1*g7*g5^-1*\ g1^-1*g5^-1*g7^-1*g5^-1*g1^-4*g5^-1*g7*g5^-1*g1*g5^-1*g7^-1*g5^-1*g1*g5^-1*g7^\ -2*g5^-1*g1^-1*g5^-1*g7*g5^-1*g1^-1*g5^-1*g7^-1*g5^-1*g1^2*g5^-1*g7^4*g5^-1*g1\ *g5^-1*g7^-3*g5^-1*g1^-1*g5^-1*g7*g5^-1*g1^2*g5^-1*g7^-1*g5^-1*g1*g5^-1*g7^3*g\ 5^-1*g1*g5^-1*g7^-3*g5^-1*g1^-1*g5^-1*g7^2*g5^-1*g1^-1*g5^-1*g7^-1*g5^-1 gap> quit; cycle2:=[r4^(-2),f3,r4,f4,r4,f4,r4^(-1), r1^2,f3,r4^(-1),f3,r1^(-3),f3,r4^(-1), f3,r1,f3,r4^2,f3,r1,f3,r4^(-1), f3,r1^(-1),f3,r4^2,f3,r1, f3,r4^(-1),f3,r1^(-1),f3,r4^(-4),f3,r1, f3,r4,f3,r1^(-1),f3,r4,f3, r1^(-2),f3,r4^(-1),f3,r1,f3,r4^(-1),f3,r1^(-1), f3,r4^2,f3,r1^4,f3,r4,f3, r1^(-3),f3,r4^(-1),f3,r1,f3,r4^2, f3,r1^(-1),f3,r4,f3,r1^3,f3,r4, f3,r1^(-3),f3,r4^(-1),f3, r1^2,f3,r4^(-1),f3,r1^(-1),f3];