/* program.txt * The following Magma program enables verification of the computational * details behind the finiteness proof of the group (2,3,13;4) which * appears in the paper "On Coxeter's families of group presentations" * by George Havas and Derek Holt. The output of this program (when * run with Magma V2.15-13 on an Intel Xeon E5430 CPU rated at 2.66GHz) * appears in the file output.txt on this website. Further comments on * the program appear in the paper. */ SetEchoInput(true); G := Group< a,b | a^2, b^3, (a*b)^13, (a,b)^4 >; AQInvariants( G ); //shows G is perfect LI := LowIndexSubgroups( G, 26 ); S := LI[10]; S; //S has index 26 in G h1, P := CosetAction( G, S ); ChiefFactors( P ); #Complements( P, pCore(P,2) ); //the max normal 2-sbgp is complemented in P Index( G, LI[2] ); //LI[2] has index 13 in G hbar, PP := CosetAction( G, LI[2] ); #PP; KK := Kernel( hbar ); Index( G, KK ); Index( P, h1(KK) ); KK := Rewrite( G, KK : Simplify:=false ); _ := pQuotient( KK, 2, 2 : Print:=1 ); //shows that KK = (C_2)^12 T := LI[6]; Index( G, T ); //T has index 26 in G h2, Q := CosetAction( G, T ); ChiefFactors( Q ); L := Kernel( h2 ); L := Rewrite( G, L : Simplify:=false ); AQInvariants( L ); //shows that L is perfect x := (a*b)^2*a*b^-1; x in S; Order( h1(x) ); Order( h2(x) ); /* Compute the inverse image I of a Sylow 2-subgroup P_2 x Q_2 of P x Q. * This is not completely straightforward, but may be done as follows. * (It is convenient to choose I such that x^13 is in I, which is the * purpose of the explicit for loop in the following code.) */ P2 := Sylow( P, 2 ); for g in Transversal( P, P2 ) do if h1(x^13) in P2^g then P2 := P2^g; break; end if; end for; h1(x^13) in P2; m1 := CosetAction( P, P2 ); IP2 := sub< G | h1*m1 >; Index( G, IP2 ); IP2 := Rewrite( G, IP2 ); h2r := hom< IP2 -> Q | [ h2(IP2.i) : i in [1..Ngens(IP2)] ] >; Q2 := Sylow( Q, 2 ); m2 := CosetAction( Q, Q2 ); I := sub< IP2 | h2r*m2 >; Index( IP2, I ); I := Rewrite( IP2, I : Simplify:=false ); _, pqm := pQuotient( I, 2, 12 : Print:=1 ); Factorisation( #P2 * #Q2 ); y := I!IP2!(x^13); Order( pqm( y ) ); S := Rewrite( G, S ); x := S!x; Index( S, sub : CosetLimit:=10^8, Hard:=true, Mendelsohn:=true ); [ pMultiplicator( P, p ) : p in [2,3,13] ]; [ pMultiplicator( Q, p ) : p in [2,3,5,13] ]; /* We determine the structure of the normal subgroup of order 2^13. * To build the subgroup we choose random elements in I and test them for * membership in the subgroup, until we have the complete subgroup. */ C := pCore(P,2); elts := []; repeat repeat z := Random(I,10,15); until h1(z) in C and h2r(z) eq Id(Q); Append(~elts, pqm(z)); U := sub< Image(pqm) | elts >; until #U eq 2^13; IsExtraSpecial(U); FormType( ActionGroup( GModule( P, C ) ) ); Ep := ExtraSpecialGroup( 2, 6 : Type := "+" ); Em := ExtraSpecialGroup( 2, 6 : Type := "-" ); #{ x : x in Ep | Order(x) eq 2 }; #{ x : x in Em | Order(x) eq 2 }; #{ x : x in U | Order(x) eq 2 }; //We now address H H := Group< c,d | c^2, d^3, (c*d)^13 * (c,d)^-4 >; AQInvariants( H ); Index( H, sub< H | c*d, (c,d) > );