M_{12}
The following input gives a symmetric presentation of the Mathieu group M_{12}:
gap> t := AbstractGenerator("t");; gap> K := Group((1,2,3,4,5),(1,2,3)); Group( (1,2,3,4,5), (1,2,3) ) gap> SGrec := SetupSymmetricPresentation(K,t); rec( skeleton := rec( groupK := Group( (1,2,3,4,5), (1,2,3) ), gainGroups := [ rec( dom := 1, op := function (...) internal; end ) ], gens := [ rec( name := t, wgg := 1 ) ] ), makeGen := function ( pt ) ... end ) gap> t := SGrec.makeGen; function ( pt ) ... end gap> Pres := SGrec.skeleton; rec( groupK := Group( (1,2,3,4,5), (1,2,3) ), gainGroups := [ rec( dom := 1, op := function (...) internal; end ) ], gens := [ rec( name := t, wgg := 1 ) ] ) gap> Pres.name := "M12 Symmetric"; "M12 Symmetric" gap> Pres.strategy := rec(EC := [1000..3000]); rec( EC := [ 1000 .. 3000 ] ) gap> Pres.relators := [t(1)^3,(t(1)/t(2))^2*DCEWord(K,(3,4,5))]; [ DCEWord(Group( (1,2,3,4,5), (1,2,3) ),[t])^3, DCEWord(Group( (1,2,3,4,5), (1,2,3) ),[t, (1,3,4,5,2), t^-1, (1,2,5,4,3), t, (1,3,4,5,2), t^-1\ , (1,2,5,4,3), (3,4,5)]) ] gap> Pres.subgens := [DCEWord(K,(1,2,3,4,5)),DCEWord(K,(1,2,3)), > (DCEWord(K,(1,2,3,4,5))*t(1))^8]; [ DCEWord(Group( (1,2,3,4,5), (1,2,3) ),[(1,2,3,4,5)]), DCEWord(Group( (1,2,3,4,5), (1,2,3) ),[(1,2,3)]), DCEWord(Group( (1,2,3,4,5), (1,2,3) ),[(1,2,3,4,5), t])^8 ] gap> Pres.relators[1].weight := 2;; # default weight is too low
DCE enumerates this presentation in a few seconds.
gap> InfoDCE1 := Ignore; function (...) internal; end gap> u := DCE(Pres); << Double coset table "M12 Symmetric" early-closed 47 double 1584 single >> gap> time; 5400
He: 2
The following is a presentation of He: 2 generated by 180 symmetric generators of order 7 permuted by 3S_7times 2. This is really 30 generators permuted monomially, but we don't have monomial groups in GAP.
The following can be placed in an input file he2.g
.
# # The group K we want is 3S7 x 2. We make this from a handy # representation of 3S7 # DoubleP := function(p,n) local l; l := OnTuples([1..n],p); Append(l,l+n); return PermList(l); end;Swap := function(n) return PermList(Concatenation([n+1..2*n],[1..n])); end;
K := Group( DoubleP((1, 2)( 3, 5)( 4, 7)( 6,10)( 8,12)( 9,14)(11,17)(13,20) (15,23)(16,25)(18,28)(19,30)(21,33)(22,35)(24,37)(26,40)(27,41) (29,44)(31,47)(32,49)(34,51)(36,54)(38,57)(39,46)(42,61)(43,63) (45,66)(48,53)(50,70)(52,60)(55,73)(56,65)(58,76)(59,78)(62,75) (64,80)(67,84)(68,74)(69,77)(71,85)(72,86)(79,89)(81,88)(82,87) (83,90),90), DoubleP(( 1, 3, 6)(44,65,49) (2,4,8,13,21,34,52,10,16,26,28,43,64,82,5,9,15,24,38,58,77) (7,11,18,29,45,67,63,14,22,20,32,50,61,33,25,39,37,56,75,86,57) (12,19,31,48,69,51,71,23,36,55,74,87,76,88,40,59,79,41,60,80,90) (17,27,42,62,81,47,30,46,68,84,70,85,89,78,35,53,72,66,83,73,54) ,90),Swap(90) ); # # Now lets get the generators we want # x := DCEWord(K,K.1); y := DCEWord(K,K.2); a := DCEWord(K,K.3); # # And the name for our generator outside K # t := AbstractGenerator("t"); # # Now we can specify our setup # SGrec := SetupSymmetricPresentation(K,t); SG := SGrec.makeGen; Pres := SGrec.skeleton; # # We still have to put some fields in the presentation # Pres.name := "He:2 Symmetric"; Pres.relators := [ SG(1)^7,(SG(1)* SG(2))^2, SG(1)^2 / SG(3), y^-7 / (SG(1)^-1*SG(2)^-2*SG(1)^2*SG(2)), y^9 / Comm(SG(1),SG(65)), SG(1)*SG(91), DCEWord(K,DoubleP((1,2)(3,5)(4,76)(6,10)(7,58)(8,12)(9,80)(11,70) (13,20)(14,64)(15,23)(16,51)(17,50)(18,28)(19,42)(21,87) (22,62)(24,37)(25,34)(26,40)(27,32)(29,68)(30,61)(31,85) (33,82)(35,75)(36,72)(38,60)(39,66)(41,49)(43,69)(44,74) (45,46)(47,71)(48,65)(52,57)(53,56)(54,86)(55,81)(59,84) (63,77)(67,78)(73,88)(79,83)(89,90),90)) / (SG(1)*SG(2)^2*SG(1)^2*SG(2)) ]; Pres.subgens := [t,x,x^(y^3)*x^(y^-1*x*y^-2), Comm(x,y^-1*x*y^-1),Comm(x,y*x*y^2),a]; Pres.strategy := rec(EC := [8000..12000]);
We can run this example quietly:
gap> Read("he2.g"); gap> InfoDCE1 := Ignore; function (...) internal; end gap> u := DCE(Pres); << Double coset table "He:2 Symmetric" early-closed 9 double 8330 single >> gap> time; 126716
GAP 3.4.4