Daer Gap Forum members,
In a Forum mail answering a question of Igor Schein, I had written:
There is no special function in GAP which would directly answer the
question if a given group contains a subgroup isomorphic to the
quaternion group, or that would just find such a subgroup.
I want to thank Stefan Kohl for correcting me in a private letter with
respect to this statement. As he pointed out, in chapter 37 of the
reference manual the following operation is described::
---------------------------------------------------------------------- > IsomorphicSubgroups( <G>, <H> )
computes all monomorphisms from <H> into <G> up to <G>-conjugacy of
the image groups. This classifies all <G>-classes of subgroups of <G>
which are isomorphic to <H>.
With the existing methods the amount of time needed grows with the
size of a generating system of <G>. (Thus in particular for $p$-groups
calculations can be slow.)
If the `findall' option is set to `false', the algorithm will stop
once one homomorphism has been found (this can be faster and might be
sufficient if not all homomorphisms are needed).
gap> g:=Group((1,2,3,4),(1,2)); Group([ (1,2,3,4), (1,2) ]) gap> h:=Group((3,4),(1,2));; gap> emb:=IsomorphicSubgroups(g,h); [ [ (3,4), (1,2) ] -> [ (3,4), (1,2) ], [ (3,4), (1,2) ] -> [ (1,3)(2,4), (1,2)(3,4) ] ] ----------------------------------------------------------------------
While likely, if one wants to look for quaternion groups in a large
number of groups, a small program along the suggestions in my last
letter will be faster, this operation certainly can be used.
Thanks again to Stefan for carefully reading the Forum messages.
Joachim Neubueser