Dear Alexander, This is brilliant - thank you - it gives me a great number of new methods to think about. I should perhaps also mention that another forum member very helpfully pointed out some functions which are not in the manual I have (but which are accessible in the source code apparently), namely
SemidirectFactorsOfGroup and DirectFactorsOfGroup which I was able to harness to give me what would appear to be complete lists of these (normal,complement) pairings in the cases I am studying. Many thanks and kind regards Gary. On Sat, Sep 1, 2012 at 4:28 PM, Alexander Hulpke <hul...@me.com> wrote: > Dear Gary McConnell, > > On Aug 22, 2012, at 12:14 PM, Gary McConnell <garymako...@googlemail.com> > wrote: > > is there an easy way to access the generators of the normal > subgroup and the "action" homomorphism from Ck to the automorphism group of > Cm x Cn, or some splitting homomorphism, or equivalent > > > There is no built in function, but you can easily check for > decompositions. Lets first try direct products. We need two normal > subgroups that intersect trivially and generate the whole group. First get > nontrivial normal subgroups. For convenience we sort by group order: > > > > > gap> g:=SmallGroup(48,9); > <pc group of size 48 with 5 generators> > gap> n:=Filtered(NormalSubgroups(g),x->Size(x)>1 and Size(x)<Size(g));; > gap> Sort(n,function(a,b) return Size(a)<Size(b);end); > > Now check pairs (Combinations counts x,y as y,x, so no duplicates) for > direct product candidates. > Instead of generation it is cheaper to use orders. > > gap> d:=Filtered(Combinations(n,2),x->Size(Intersection(x[1],x[2]))=1 > > and Size(x[1])*Size(x[2])=Size(g)); > [ [ Group([ f2 ]), Group([ f1, f3, f4, f5 ]) ], > [ Group([ f2 ]), Group([ f1*f2, f3, f4, f5 ]) ], > [ Group([ f1, f3, f4, f5 ]), Group([ f2*f4 ]) ], > [ Group([ f1*f2, f3, f4, f5 ]), Group([ f2*f4 ]) ] ] > gap> List(d,x->List(x,Size)); > [ [ 2, 24 ], [ 2, 24 ], [ 24, 2 ], [ 24, 2 ] ] > > So here its always 2 x something. Lets just try the first and investigate > the second factor. > gap> h:=d[1][2]; > Group([ f1, f3, f4, f5 ]) > > gap> n:=Filtered(NormalSubgroups(h),x->Size(x)>1 and Size(x)<Size(h)); > gap> Sort(n,function(a,b) return Size(a)<Size(b);end); > gap> d:=Filtered(Combinations(n,2),x->Size(Intersection(x[1],x[2]))=1 > > and Size(x[1])*Size(x[2])=Size(h)); > [ ] > > So no direct product here. For semidirect products we test for > complements. (This can be done if either N or G/N is solvable): > gap> c:=List(n,x->Complementclasses(h,x)); > [ [ ], [ Group([ f1, f3, f4 ]) ], [ ], [ ], [ ] ] > > So only the second normal subgroup has complements. (If there are several > classes we can just pick one.) > > gap> Size(n[2]); > 3 > > clearly cyclic or order 3. This is the first factor Look at the complement: > > gap> c:=c[2][1]; > Group([ f1, f3, f4 ]) > gap> Size(c); > 8 > gap> IsAbelian(c); > true > gap> AbelianInvariants(c); > [ 8 ] > > So we have a C3 : C8. In this case there is only one nontrivial > homomorphism, but for the sake of example lets build it: > > gap> au:=AutomorphismGroup(n[2]); > <group with 1 generators> > gap> hom:=GroupHomomorphismByImages(c,au,GeneratorsOfGroup(c), > > List(GeneratorsOfGroup(c), > > x->ConjugatorAutomorphism(n[2],x))); > [ f1, f3, f4 ] -> [ ^f1, ^<identity> of ..., ^<identity> of ... ] > > So now we have all the constituents so we could build the group as > product. First the semidirect bit: > > gap> s:=SemidirectProduct(c,hom,n[2]); > <pc group of size 24 with 4 generators> > > and now the direct product with C2: > > gap> c2:=CyclicGroup(2);; > gap> a:=DirectProduct(s,c2); > <pc group of size 48 with 5 generators> > > Lets check that they are indeed isomorphic: > gap> IsomorphismGroups(g,a); > [ f1, f2, f3, f4, f5 ] -> [ f1, f5, f2, f3, f4 ] > > > So everything went fine. > > Hope this helps, > > Alexander Hulpke > > -- Colorado State University, Department of Mathematics, > Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA > email: hul...@math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > > _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum