> < ^ Date: Fri, 25 Jan 2002 15:54:56 -0500
> < ^ From: Igor Schein <igor@txc.com >
< ^ Subject: Re: Subgroup question (fwd)

Dear Gap Forum,

On Fri, Jan 25, 2002 at 12:11:32PM +0100, Joachim Neubueser wrote:
> 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

Thanks a lot, that's exactly what I needed. Now I can answer my original
question:

gap> IsomorphicSubgroups(SmallGroup(32,29),SmallGroup(8,4));
[ [ f1, f2 ] -> [ f1, f2 ], [ f1, f2 ] -> [ f1*f5, f1*f2 ] ]

So SmallGroup(32,29) indeed contains a quaterunion subgroup.

I don't understand this though:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
gap> IsomorphicSubgroups(SmallGroup(32,29),SmallGroup(4,1));
List Element: <list>[1] must have an assigned value at
return i[1];
func( elm ) called from
List( pows, function ( i )
      return i[1];
  end ) called from
MorClassLoop( G, bi, params, 11 ) called from
<function>( <arguments> ) called from read-eval-loop
Entering break read-eval-print loop, you can 'quit;' to quit to outer loop,
or you can return after assigning a value to continue
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Why error?

Thanks

Igor


> < [top]