// this script checks all genus 7 generating triples // setup SetLogFile("genus7check.log":Overwrite := true); CheckTriple := function(sigma,g,ords,G,a,b,c); print sigma,g,ords; print G, [a,b,c]; l := ords[1]; m := ords[2]; n := ords[3]; RH := (2*sigma-2)/g -(1-1/l-1/m-1/n); return([ RH eq 0, g eq #G, #G eq #sub, l eq Order(a),m eq Order(b), n eq Order(c), a*b*c eq Identity(G)]); end function; load "smallpermgroups.mgm"; // tests print "###case 1"; G := CyclicGroup(15); CheckTriple(7,15,[15,15,15],G,x,x,x^13); print "###case 2"; G := CyclicGroup(16); CheckTriple(7,16,[8,16,16],G,x^2,x,x^13); print "###case 3"; G := CyclicGroup(16); CheckTriple(7,16,[8,16,16],G,x^2,x^3,x^11); print "###case 4"; G := CyclicGroup(16); CheckTriple(7,16,[8,16,16],G,x^2,x^7,x^7); print "###case 5"; G := CyclicGroup(18); CheckTriple(7,18,[6,9,18],G,x^3,x^14,x); print "###case 6"; G := CyclicGroup(18); CheckTriple(7,18,[6,9,18],G,x^3,x^10,x^5); print "###case 7"; G := CyclicGroup(20); CheckTriple(7,20,[4,10,20],G,x^5,x^14,x); print "###case 8"; G := CyclicGroup(21); CheckTriple(7,21,[3,21,21],G,x^7,x^13,x); print "###case 9"; G := CyclicGroup(24); CheckTriple(7,24,[3,8,24],G,x^8,x^15,x); print "###case 10"; G := AbelianGroup([12,2]); CheckTriple(7,24,[4,6,12],G,3*x,4*x+y,5*x+y); print "###case 11"; G := SpecialLinearGroup(2,3); CheckTriple(7,24,[6,6,6],G,x*y^2,y*x*y,(x*y^3*x*y)^(-1)); print "###case 12"; G := AbelianGroup([9,3]); CheckTriple(7,27,[3,9,9],G,y,x,8*x+2*y); print "###case 13"; G := SmallGroup(27,4); CheckTriple(7,27,[3,9,9],G,y,x,x^2*y^2*z^2); print "###case 14"; G := CyclicGroup(28); CheckTriple(7,28,[2,28,28],G,x^14,x^13,x); print "###case 15"; G := SmallGroup(28,1); x := a; y := c; CheckTriple(7,28,[4,4,14],G,x,x*y,x^2*y^(-1)); [Order(x),Order(y)]; [y^x,y^(-1)]; print "###case 16"; G := CyclicGroup(30); CheckTriple(7,30,[2,15,30],G,x^15,x^14,x); print "###case 17"; G := AbelianGroup([16,2]); CheckTriple(7,32,[2,16,16],G,y,x,15*x+y); print "###case 18"; G := SmallGroup(32,17); x := b; y := a; CheckTriple(7,32,[2,16,16],G,x,(y*x)^(-1),y); [Order(x),Order(y)]; [y^x,y^9]; print "###case 19"; G := SmallGroup(32,10); CheckTriple(7,32,[4,4,8],G,y,x*w,x*y*v); print "###case 20"; G := SmallGroup(32,11); CheckTriple(7,32,[4,4,8],G,x*y,y*w,x*v); print "###case 21"; G := SmallGroup(32,13); CheckTriple(7,32,[4,4,8],G,x,x*y*w,y*z*v); print "###case 22"; G := SmallGroup(32,14); CheckTriple(7,32,[4,4,8],G,x,x*y*w,y*z); print "###case 23"; G := SmallGroup(36,6); x := a; y := d; z := b; CheckTriple(7,36,[3,4,12],G,y*z,x*y,x^(-1)*z^(-1)); [Order(x),Order(y),Order(z)]; [y^x,y^2]; [z^x,z]; print "###case 24"; G := SmallGroup(42,4); x := a; y := b*c; CheckTriple(7,42,[2,6,21],G,x,(y*x)^(-1),y); [Order(x),Order(y)]; [y^x,y^13]; print "###case 25"; G := SmallGroup(48,33); CheckTriple(7,48,[2,6,12],G,x*z,y*z*w*v,x*y^2*z*w*v); print "###case 26"; G := SmallGroup(48,32); CheckTriple(7,48,[3,4,6],G,y,x*w*v,x*y^2*z); print "###case 27"; G := SmallGroup(54,3); x := a*b; y := c^2; CheckTriple(7,54,[2,6,9],G,x^3,x*y,y^(-1)*x^2); [Order(x),Order(y)]; [y^x,y^(-1)]; print "###case 28"; G := SmallGroup(54,6); x := a*b; y := c^2; CheckTriple(7,54,[2,6,9],G,x^3,x*y,y^(-1)*x^2); [Order(x),Order(y)]; [y^x,y^2]; print "###case 29"; G := SmallGroup(56,4); x := a; y := b*d; CheckTriple(7,56,[2,4,28],G,x,(y*x)^(-1),y); [Order(x),Order(y)]; [y^x,y^13]; print "###case 30"; G := SmallGroup(56,11); CheckTriple(7,56,[2,7,7],G,y,(x*y)^(-1),x); print "###case 31"; G := SmallGroup(64,38); CheckTriple(7,64,[2,4,16],G,y,x,x*y*w); print "###case 32"; G := SmallGroup(64,41); CheckTriple(7,64,[2,4,16],G,y,x,x*y*w*u); print "###case 33"; G := SmallGroup(72,25); CheckTriple(7,72,[3,3,6],G,x,x*y*w,x*y^2*z*w*v); print "###case 34"; G := SmallGroup(144,127); CheckTriple(7,144,[2,3,12],G,x*z,y^2*w*v,x*y*v); print "###case 35"; P := SymmetricGroup(9); a := P!(1,8)(2,3)(5,6)(7,9); b := P!(1,8,5)(2,3,7)(4,9,6); c := P!(1,6,7,2,9,4,5); G := sub; CheckTriple(7,504,[2,3,7],G,x,y,(x*y)^(-1)); // finish UnsetLogFile();