Skip to content

Commit

Permalink
ENHANCE: Isomorphism test can deal with fp groups etc.
Browse files Browse the repository at this point in the history
  • Loading branch information
hulpke committed Nov 28, 2016
1 parent e53a388 commit 94b1e9a
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 1 deletion.
24 changes: 23 additions & 1 deletion lib/autsr.gi
Original file line number Diff line number Diff line change
Expand Up @@ -787,7 +787,7 @@ end);
# pathetic isomorphism test, based on the automorphism group of GxH. This is
# only of use as long as we don't yet have a Cannon/Holt version of
# isomorphism available and there are many generators
BindGlobal("PatheticIsomorphism",function(G,H)
InstallGlobalFunction(PatheticIsomorphism,function(G,H)
local d,a,map,possibly,cG,cH,nG,nH,i,j,sel,u,v,asAutomorphism,K,L,conj,e1,e2,
iso,api,good,gens,pre;
possibly:=function(a,b)
Expand All @@ -807,6 +807,28 @@ local d,a,map,possibly,cG,cH,nG,nH,i,j,sel,u,v,asAutomorphism,K,L,conj,e1,e2,
return Image(hom,sub);
end;

# TODO: use matgrp package
if not (IsPermGroup(G) or IsPcGroup(G)) then
i:=IsomorphismPermGroup(G);
iso:=PatheticIsomorphism(Image(i,G),H);
if iso=fail then
return iso;
else
return i*iso;
fi;
fi;

# TODO: use matgrp package
if not (IsPermGroup(H) or IsPcGroup(H)) then
i:=IsomorphismPermGroup(H);
iso:=PatheticIsomorphism(G,Image(i,H));
if iso=fail then
return iso;
else
return iso*InverseGeneralMapping(i);
fi;
fi;

# go through factors of characteristic series to keep orbits short.
AutomorphismGroup(G:someCharacteristics:=fail);
AutomorphismGroup(H:someCharacteristics:=fail);
Expand Down
1 change: 1 addition & 0 deletions lib/morpheus.gd
Original file line number Diff line number Diff line change
Expand Up @@ -560,6 +560,7 @@ DeclareOperation("GQuotients",[IsGroup,IsGroup]);
##
DeclareOperation("IsomorphicSubgroups",[IsGroup,IsGroup]);

DeclareGlobalFunction("PatheticIsomorphism");

#############################################################################
##
Expand Down
9 changes: 9 additions & 0 deletions lib/morpheus.gi
Original file line number Diff line number Diff line change
Expand Up @@ -2011,6 +2011,15 @@ InstallMethod( InnerAutomorphismsAutomorphismGroup,
InstallGlobalFunction(IsomorphismGroups,function(G,H)
local m;

if not HasIsFinite(G) or not HasIsFinite(H) then
Info(InfoWarning,1,"Forcing finiteness test");
IsFinite(G);
IsFinite(H);
fi;
if not IsFinite(G) and IsFinite(H) then
Error("cannot test isomorphism of infinite groups");
fi;

#AH: Spezielle Methoden ?
if Size(G)=1 then
if Size(H)<>1 then
Expand Down

0 comments on commit 94b1e9a

Please sign in to comment.