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



_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to