[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