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; _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum