g=<x,y! x^3=y^3,(xy)^3xy^-1xyx^-1yxy^-1>
gap> f:=FreeGroup("x","y");x:=f.1;y:=f.2; <free group on the generators [ x, y ]> x y gap> n:=[x^3/y^3,(x*y)^3*x/y*x*y/x*y*x/y]; [ x^3*y^-3, x*y*x*y*x*y*x*y^-1*x*y*x^-1*y*x*y^-1 ] gap> g:=f/n; <fp group on the generators [ x, y ]> gap> hom:=IsomorphismPermGroup(g);; gap> h:=Image(hom);; gap> Size(h); 360000
gap> NrMovedPoints(h); 360000
gap> r:=Random(h);; gap> Order(r); 120 gap> r:=Random(h);;Order(r); 60 gap> u:=Subgroup(h,[r]);; gap> v:=List(ConjugacyClassesSubgroups(u),Representative);; gap> List(v,Size); [ 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60 ] gap> v:=Filtered(v,i->Size(Core(h,i))=1); [ Group(()), <permutation group of size 5 with 1 generators> ]
gap> r:=Random(h);;Order(r); 30 gap> u:=Subgroup(h,[r]);; gap> v:=List(ConjugacyClassesSubgroups(u),Representative);; gap> v:=Filtered(v,i->Size(Core(h,i))=1);; gap> List(v,Size); [ 1, 2, 5, 10 ] gap> u:=v[4];;
gap> b:=Orbit(h,Set(Orbit(u,1)),OnSets);; gap> h1:=ActionHomomorphism(h,b,OnSets); <action homomorphism>
gap> hom:=hom*h1;; gap> h:=Image(hom);; gap> n:=NormalSubgroups(h);; gap> List(n,Size); [ 1, 3, 2, 6, 4, 12, 8, 24, 5, 15, 10, 30, 20, 60, 40, 120, 125, 375, 250, 250, 750, 750, 500, 500, 1500, 1500, 1000, 1000, 3000, 3000, 250, 750, 500, 1500, 1000, 3000, 2000, 6000, 15000, 45000, 30000, 90000, 60000, 180000, 120000, 360000 ] gap> np:=List(n,i->PreImage(hom,i));; gap> Length(np); 46
For noncyclic subgroups, we just ask GAP to compute generators (This will
compute a coset table for each subgroup and use a Modified Todd-Coxeter
algorithm).
gap> c:=Filtered([1..46],i->IsCyclic(n[i])); [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ] gap> List(np{Difference([1..46],c)},GeneratorsOfGroup); [ [ y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x, y*x^-1*y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1 ], [ y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x ], [ y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^-1*y^-1*x^-1*y*x^-1, y^2*x*y^-1*x*y*x*y^-1*x*y^-1 ], [ x^-12, y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x, x^-12 ], [ y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1 ], [ x^-1*y*x*y^-1*x*y*x^-2*y^-1*x^-1, x^-1*y^-1*x*y*x*y^-1*x*y^-2*x^-1, y*x^2*y^2*x^-1*y*x^-1*y^-1*x^-1, y^-1*x*y^-1*x*y*x*y^-1*x^-2*y^-1 ], [ x^-6, y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ x^-6, y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x ] , [ x^-1*y*x*y^-1*x*y*x^-2*y^-1*x^-1, x^-1*y*x^-1*y*x*y*x^-1*y^-2*x^-1, x^-1*y^-1*x*y*x*y^-1*x*y^-2*x^-1 ], [ x^-6, x^2*y*x^-1*y^-1*x^-1*y*x^-1*y^-1, x^2*y^-1*x^-1*y*x^-1*y^-1*x^-1*y, x*y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x, y*x^-1*y*x^-1*y^-1*x^-1*y*x^-1*y ], [ x^3, y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ x^3, y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x, y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y*x ], [ x^-6, x^2*y*x*y*x^-1*y*x*y, x^2*y*x^-1*y^-1*x^-1*y*x^-1*y^-1, x^2*y^-1*x*y^-1*x^-1*y^-1*x*y^-1 ], [ x^-1*y*x*y^-1*x^-2*y^-2*x^-2*y^-1*x^-1, x^-1*y^-1*x*y*x^-2*y^-1*x^-2*y^-2*x^-1, y*x^2*y^2*x^2*y*x^2*y^-1*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x, y*x^-1*y*x^-1*y*x^-1*y*x^-1*y*x^-1 ] , [ y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^ -1*y^-1*x^-1*y*x^-1, y^2*x*y^-1*x*y*x*y^-1*x*y^-1, x^-12 ], [ y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y*x^-1*y*x^-1*y*x^-1*y*x^-1*y*x^-1 ], [ x^-6, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^-1*y^-1*x^-1*y*x^-1, y^2*x*y^-1*x*y*x*y^-1*x*y^-1 ], [ x^-6, y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1 ], [ x^3, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^-1*y^-1*x^-1*y*x^-1, y*x^-1*y*x^-1*y^-1*x^-1*y*x^-1*y ], [ x^3, y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1 ], [ y*x*y^-1*x^-1, y*x^-1*y^-1*x, y^-1*x*y*x^-1, y^-1*x^-1*y*x ], [ y*x^-1, y^-1*x ], [ x^-4, y*x*y^-1*x^-1, y*x^-1*y^-1*x, y^-1*x*y*x^-1 ], [ y*x^-1, y^-1*x, x^-4 ], [ x^-2, y*x*y^-1*x^-1, y^-1*x*y*x^-1 ], [ x^-2, y*x^-1 ], [ x, y*x*y^-1, y^-1*x*y ], [ x, y ] ]
gap> List(n{c},i->PreImagesRepresentative(hom,GeneratorOfCyclicGroup(i))); [ <identity ...>, y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-1*y^ -1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-2*y*x^-1*y*x^-2*y^-2*x^ -1*y^-1*x^-2, y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-1*y^ -1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^ -1*x^-1, x^2*y*x*y*x*y*x*y^2*x^2*y^-1*x*y^-1*x^-1*y^-1*x*y*x*y*x^-1, y^2*x*y^2*x*y^2*x^2*y*x^2*y^2*x^8*y^-1*x^-1*y^-1*x^-1*y*x*y, x^2*y*x^2*y*x*y*x*y*x*y*x^2*y^-1*x^2*y*x*y*x^-1*y*x*y*x*y*x^-1*y, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^-1*y^-2*x^-2*y^-1*x^-1*y^-1*x^-1*y^-1*x^ -1*y^-1*x^-1*y^-1*x^-1*y^-1*x^-2*y^-1*x^-2, y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-2*y^-2*x^-2*y^-2*x^-2*y^ -2*x^-1*y^-2*x^-2*y^-1*x^-1*y^-1*x^-2, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^ -1*y^-2*x^-5*y^-1*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1*x^ -2*y^-1*x^-2, x*y*x^2*y^2*x*y^2*x^4*y^2*x*y^-1*x^-1*y^-1*x*y*x*y*x^-1, x^12, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^-1*y^-2*x^-1*y^-1*x^-1*y^-1*x^-2*y^ -2*x^-1*y^-2*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1, x^-18, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^-1*y*x^-2*y^ -1*x^-1*y^-1*x^-2*y^-1*x^-2, y^-1*x^-1*y^-1*x*y*x*y*x^-11*y^-2*x^-2*y^ -1*x^-2*y^-2*x^-1*y^-2*x^-1*y^-2, y*x^2*y^2*x*y*x*y^2*x^2*y*x*y^2*x^5*y*x^ 2*y^-1*x^-1*y^-1*x^-1*y*x*y ]