Dear Will,

There will be more commands available for you in GAP 4.9, but even in GAP 4.8 you can do the following:

gap> G := SmallGroup(96,202);
<pc group of size 96 with 6 generators>
gap> StructureDescription(G);
"(C2 x SL(2,3)) : C2"
gap> index2subgroups := [];; for N in NormalSubgroups(G) do if Index(G,N)=2 then AddSet(index2subgroups, N); fi; od;
gap> index2subgroups;
[ Group([ f1, f3, f4, f5, f6 ]), Group([ f2, f3, f4, f5, f6 ]),
  Group([ f1*f2*f6, f3, f4, f5, f6 ]) ]

This contains all index 2 normal subgroups. Now, the first two are isomorphic to C2xSL(2,3):

gap> List(index2subgroups, StructureDescription);
[ "C2 x SL(2,3)", "C2 x SL(2,3)", "SL(2,3) : C2" ]

Take the first one for example, it decomposes into direct product the following way:

gap> A := index2subgroups[1];;
gap> DirectFactorsOfGroup(A);
[ Group([ f1 ]), Group([ f3, f4, f5, f6 ]) ]
gap> Order(A.1);
2

That is, the first generator gives the C2 part, the other four generators give SL(2,3).

Let us find a complement to A:

gap> comp := ComplementClassesRepresentatives(G,A);;
gap> if comp <>[] then B := comp[1]; fi;
gap> B;
<pc group with 1 generators>

For the action you can take e.g. the image of B in the automorphism group of A:

gap> AutA := AutomorphismGroup(A);
<group of size 48 with 4 generators>
gap> GofA := GeneratorsOfGroup(A);
[ f1, f3, f4, f5, f6 ]
gap> H := Subgroup(AutA, List(B, g ->>
GroupHomomorphismByImages(A, A, GofA, List(GofA, pnt -> pnt^g))));
<group with 2 generators>
gap> Size(H);
2
gap> H.1;
[ f1, f3, f4, f5, f6 ] -> [ f1, f3, f4, f5, f6 ]
gap> H.2;
[ f1, f3, f4, f5, f6 ] -> [ f1*f6, f3, f4, f5, f6 ]
gap> Order(H.2);
2
gap> A.1^H.2;
f1*f6

Thus, H.1 is the identity automorphism, but H.2 gives an order two automorphism that moves f1 to f1*f6.


Hope this helps.

Best,
Gabor


On Wed, 22 Mar 2017, Will Chen wrote:

Given a group G represented in GAP, the StructureDescription(G) tells you a
nice description of it, but of course it doesn't give you all the
information when G is a semidirect product or a nonsplit extension.

In these cases, if it's for example a semidirect product, is there a
built-in method of extracting the action of the quotient on the kernel?

For example, SmallGroup(96,202) has description "(C2 x SL(2,3)) : C2"

Its abelianization is C6 x C2. Is there an efficient way to determine which
of its C2 quotients gives the semidirect product decomposition, and to
determine the action of C2 on (C2 x SL(2,3))?

I mean I could always iterate over all the possible quotients and the
possible actions of C2 on the kernel and check to see which of them gives a
group isomorphic to the original one, but this seems kind of annoying to do
if I want to do this for many different groups.

--

William Chen
Member, School of Mathematics
Institute for Advanced Study,
Princeton, NJ, 08540
oxei...@gmail.com
_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum



                                                Horvath Gabor
-------------------------------------------------------------------------------
e-mail: ghorv...@science.unideb.hu
phone: +36 52 512900 / 22798
web: http://www.math.unideb.hu/horvath-gabor

_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to