[GAP Forum] What's the best way of finding the exact isomorphism type of a group?

Horvath Gabor ghorvath at science.unideb.hu
Thu Mar 23 12:24:24 GMT 2017


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
> oxeimon at gmail.com
> _______________________________________________
> Forum mailing list
> Forum at mail.gap-system.org
> http://mail.gap-system.org/mailman/listinfo/forum
>


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



More information about the Forum mailing list