[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