[GAP Forum] question

Sven Reichard reichard at maths.uwa.edu.au
Wed Jan 30 00:25:47 GMT 2008

```Bob,

according to your definition you need to find two group isomorphisms which satisfy certain
properties in relation to each other. For both phi1 and phi2, there may be several
candidates. GAP normally uses random methods for certain tasks, so IsomorphismGroups is
not guaranteed to return the same isomorphism each time it is called.

If for a certain choice of phi1 and phi2 your properties are fulfilled you can be sure the
groups are isoclinic. However, if for one choice they are not fulfilled it does not mean
they are not isoclinic; we might just have picked the wrong set of isomorphisms. You need
to somehow show that for any choice of phi1 and phi2, a) and b) do not necessarily imply c).

Hope this helps.
Sven.

Robert Heffernan wrote:
> Hi,
>
> I've written a (very naive) function to test if two groups are
> isoclinic.  However, it will sometimes return true and sometimes false
> for the same two groups & I'm not sure why this is happening.
>
> The code is below.  I would be very grateful for any suggestions,
>
> thank you,
> Bob Heffernan
>
> # Code to test if two groups G and H are isoclinic.
> # we want:
> #   i) an isomorphism phi1 from G/Z(G) -> H/Z(H)
> #  ii) an isomorphism phi2 from G' -> H'
> # st. if
> #  a) (g1Z(G))phi1=h1Z(H); and
> #  b) (g2Z(G))phi1=h2Z(H)
> # then
> #  c) ([g1,g2])phi2 = [h1,h2]
>
> # returns true if G~H
> IsIsoclinic := function(G,H)
>   local DG,DH,ZG,ZH,GZG,HZH,phi1,phi2,elG,piG,piH,g1,g2,g1p,g2p,h1,h2;
>   G:=Image(IsomorphismPcGroup(G));
>   H:=Image(IsomorphismPcGroup(H));
>
>   DG:=DerivedSubgroup(G);
>   DH:=DerivedSubgroup(H);
>   ZG:=Centre(G);
>   ZH:=Centre(H);
>
>   GZG:=FactorGroup(G,ZG);
>   HZH:=FactorGroup(H,ZH);
>
>   phi1:=IsomorphismGroups(GZG,HZH);
>   if phi1=fail then return false; fi;
>   phi2:=IsomorphismGroups(DG,DH);
>   if phi2=fail then return false; fi;
>
>   elG:=Elements(G);
>
>   piG:=NaturalHomomorphismByNormalSubgroup(G,ZG);
>   piH:=NaturalHomomorphismByNormalSubgroup(H,ZH);
>
>   for g1 in elG do
>     for g2 in elG do
>       g1p:=Image(phi1, Image(piG, g1));
>       g2p:=Image(phi1, Image(piG, g2));
>       h1:=PreImagesRepresentative(piH, g1p);
>       h2:=PreImagesRepresentative(piH, g2p);
>       if not(Image(phi2, Comm(g1,g2))=Comm(h1,h2)) then return false; fi;
>     od;
>   od;
>   return true;
> end;

--
Sven Reichard
School of Mathematics and Statistics
The University of Western Australia
35 Stirling Highway
Crawley 6009
Western Australia

>

```