// p7g2r1075.m print "\nConstruct Khukhro's 2-generator 7-group counterexample to the Hughes", "\nconjecture, and then repeatedly factor out complements to [b,a]^7 in", "\nthe centre of the group, so as to obtain smaller counterexamples"; d := 2; p := 7; cl := 13; // ngens; prime; class P := pQuotient( FreeGroup(d), p, cl : Exponent := p ); printf "\nB(2,7 : 13) has order %o^%o\n", p, FactoredOrder(P)[1][2]; G := pCoveringGroup(P); printf "\nThe p-covering group G has order %o^%o and class %o", p, FactoredOrder(G)[1][2], pClass(G); print "\nG is generated by a and b; and [b,a] has order", Order( (b,a) ), "\n[b,a,a] has order", Order( (b,a,a) ), "; [b,a,b] has order", Order( (b,a,b) ), "\ngamma_3(G) is the normal closure of < [b,a,a], [b,a,b] >,", "\nand gamma_3(G) has class at most 4, so gamma_3(G) has exponent 7"; print "\nNow compute suitable 7th powers of elements outside the derived group"; load "twB27c8"; // should be already computed by gettestwords.m S := [ x^p : x in testwords ]; H := quo< G | S >; printf "The quotient group H has order %o^%o", p, FactoredOrder(H)[1][2]; print "\nH is generated by a and b; and [b,a] has order", Order( (b,a) ), "\nH is Khukhro's 2-generator anti-Hughes 7-group"; print "\nNow factor out a complement for [b,a]^7 in the multiplier"; // Since the exponent of H.846 in nonzero in [b,a]^7 we choose a // complement of H.846 . H.846 is chosen because it is one of // two individual such H.i's which lead to a minimal anti-Hughes // group by this kind of reduction, as revealed by p7exp.m alive := 846; print "Factoring out a complement of", H.alive, "gives us a smaller anti-Hughes group"; CurrentQ := quo< H | [ H.i : i in ([669..alive-1] cat [alive+1..1075]) ] >; printf "CurrentQ with order %o^%o", p, FactoredOrder(CurrentQ)[1][2]; print "\nCurrentQ is generated by a and b; and [b,a]^7 =", (b,a)^p, "\n"; //Repeatedly factor out complements for [b,a]^7 in the centre Z := Centre(CurrentQ); while Order(Z) ne p do rank := FactoredOrder(Z)[1][2]; printf "Z, its centre, has order %o^%o", p, rank; print "\nNow build a complement for [b,a]^7 in Z\n"; ZGens := [ CurrentQ!Z.i : i in [1..rank] ]; _, index := Max( Eltseq( (b,a)^p ) ); ComplGens := [ ZGens[i] * (CurrentQ.index)^-Eltseq(ZGens[i])[index] : i in [1..rank] ]; NextQ := quo< CurrentQ | ComplGens >; printf "Factor it out to get an anti-Hughes group of order %o^%o", p, FactoredOrder(NextQ)[1][2]; print "\ngenerated by a and b; and [b,a]^7 =", (b,a)^p; CurrentQ := NextQ; Z := Centre(CurrentQ); end while; printf "The centre is generated by %o and has order %o^%o", CurrentQ!(Z.1), p, FactoredOrder(Z)[1][2]; printf "\nSo this method reduces to an anti-Hughes group with order %o^%o", p, FactoredOrder(CurrentQ)[1][2]; print "\nwhich is as far as we can reduce the group (by this method!)";