// this script checks all genus 6 generating triples // setup SetLogFile("genus6check.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; // tests print "###case 1"; G := CyclicGroup(13); CheckTriple(6,13,[13,13,13],G,x,x,x^11); print "###case 2"; G := CyclicGroup(13); CheckTriple(6,13,[13,13,13],G,x,x^2,x^10); print "###case 3"; G := CyclicGroup(13); CheckTriple(6,13,[13,13,13],G,x,x^3,x^9); print "###case 4"; G := CyclicGroup(14); CheckTriple(6,14,[7,14,14],G,x^12,x,x); print "###case 5"; G := CyclicGroup(14); CheckTriple(6,14,[7,14,14],G,x^10,x,x^3); print "###case 6"; G := CyclicGroup(14); CheckTriple(6,14,[7,14,14],G,x^2,x,x^11); print "###case 7"; G := CyclicGroup(15); CheckTriple(6,15,[5,15,15],G,x^12,x^2,x); print "###case 8"; G := CyclicGroup(15); CheckTriple(6,15,[5,15,15],G,x^3,x,x^11); print "###case 9"; G := CyclicGroup(16); CheckTriple(6,16,[4,16,16],G,x^12,x3,x); print "###case 10"; G := CyclicGroup(18); CheckTriple(6,18,[3,18,18],G,x^6,x,x^11); print "###case 11"; G := CyclicGroup(20); CheckTriple(6,20,[4,5,20],G,x^5,x^4,x^11); print "###case 12"; G := CyclicGroup(21); CheckTriple(6,21,[3,7,21],G,x^7,x^3,x^11); print "###case 13"; G := CyclicGroup(24); CheckTriple(6,24,[2,24,24],G,x^12,x,x^11); print "###case 14"; G := SmallGroup(24,1); x := a; y := d; CheckTriple(6,24,[3,8,8],G,y,(x*y)^(-1),x); [Order(x),Order(y)]; [y^x,y^(-1)]; print "###case 15"; G := SmallGroup(24,4); CheckTriple(6,24,[4,4,12],G,x,x*y*z*w,y*z*w^2); print "###case 16"; G := SmallGroup(24,3); CheckTriple(6,24,[4,6,6],G,y,x*y*z*w,x^2*y*z); print "###case 17"; G := PolycyclicGroup; CheckTriple(6,24,[4,6,6],G,x*y*z,x*z*w^2,y*z*w); print "###case 18"; G := AbelianGroup([5,5]); CheckTriple(6,25,[5,5,5],G,x,y,-x-y); print "###case 19"; G := CyclicGroup(26); CheckTriple(6,26,[2,13,26],G,x^13,x^2,x^11); print "###case 20"; G := AbelianGroup([14,2]); CheckTriple(6,28,[2,14,14],G,y,-x+y,x); print "###case 21"; G := PolycyclicGroup; x := a; y := c; CheckTriple(6,28,[4,4,7],G,x,(y*x)^(-1),y); [Order(x),Order(y)]; [y^x,y^(-1)]; print "###case 22"; G := PolycyclicGroup; x := a; y := b*c; CheckTriple(6,30,[2,10,15],G,x,(y*x)^(-1),y); [Order(x),Order(y)]; [y^x,y^11]; print "###case 23"; G := SmallGroup(36,3); x := a; y := c; z := d; CheckTriple(6,36,[2,9,9],G,y,(x*y)^(-1),x); [Order(x),Order(y),Order(z)]; [y^x,z]; [z^x,y*z]; print "###case 24"; G := SmallGroup(39,1); CheckTriple(6,39,[3,3,13],G,x,(y*x)^(-1),y); print "###case 25"; G := SmallGroup(48,6); x := a; y := b*e; CheckTriple(6,48,[2,4,24],G,x,(y*x)^(-1),y); [Order(x),Order(y)]; [y^x,y^11]; print "###case 26"; G := SmallGroup(48,15); CheckTriple(6,48,[2,6,8],G,x,y*v^2,x*y*z*v^2); print "###case 27"; G := SmallGroup(48,29); CheckTriple(6,48,[2,6,8],G,x,y^2*z*w*v,x*y^2*w*v); print "###case 28"; G := SmallGroup(50,3); CheckTriple(6,50,[2,5,10],G,x,y^3*z^3,x*y^2*z^3); print "###case 29"; G := SmallGroup(56,7); CheckTriple(6,56,[2,4,14],G,x,x*y*w^2,y*w^5); print "###case 30"; G := PolycyclicGroup; x := a; y := b; z := d; w := e; CheckTriple(6,72,[2,4,9],G,x,(y*z*x)^(-1),y*z); [Order(x),Order(y),Order(z),Order(w)]; [y^x,y^(-1)]; [z^x,w]; [w^x,z]; [z^y,w]; [w^y,z*w]; print "###case 31"; G := SmallGroup(75,2); CheckTriple(6,75,[3,3,5],G,x,x^2*y^4,y); print "###case 32"; G := SymmetricGroup(5); a := G!(1, 2)(3, 4); b := G!(2, 4, 5, 3); c := (a*b)^(-1); CheckTriple(6,120,[2,4,6],G,a,b,c); print "###case 33"; G := SmallGroup(150,5); CheckTriple(6,150,[2,3,10],G,x,y^2*z^4*w^3,x*y^2*w); // finish UnsetLogFile();