[GAP Forum] question

Robert Heffernan bob.heffernan at gmail.com
Tue Jan 29 14:50:59 GMT 2008


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;



More information about the Forum mailing list