Skip to content

Commit

Permalink
FIX: Permrep for Automorphism group
Browse files Browse the repository at this point in the history
In rare cases, class representatives might all lie in existing group, but
other elts are outside. Cover this situation.
This fixes #5708
  • Loading branch information
hulpke committed May 6, 2024
1 parent a16c6b1 commit 234513c
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
6 changes: 6 additions & 0 deletions lib/morpheus.gi
Original file line number Diff line number Diff line change
Expand Up @@ -535,6 +535,12 @@ local hom, gens, c, ran, r, cen, img, u, orbs,
while Size(u)<Size(g) do
if Size(u)>1 then SortBy(c,Size);fi; # once an outside class is known, sort
of:=First(c,x->not Representative(x) in u);

if of=fail then
# rarely reps are in u
of:=First(c,
x->ForAny(GeneratorsOfGroup(g),y->not Representative(x)^y in u));
fi;
if MemoryUsage(Representative(of))*Size(of)
# if a single class only requires
<10000
Expand Down
7 changes: 7 additions & 0 deletions tst/testbugfix/2024-05-06-Isom.tst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Fix #5708
gap> G:=Group([ (2,11,20)(3,10,19)(4,9,12)(5,8,13)(6,15,17)(7,14,18),
> (2,20)(3,4)(5,7)(8,18)(9,19)(10,12)(13,14)(15,17),
> (1,2)(3,20)(6,18)(7,19)(8,12)(9,11)(13,15)(16,17) ]);;
gap> H:=Group([ (1,2,3,4,5), (3,4,5), (6,7) ]);;
gap> IsomorphismGroups(G,H)<>fail;
true

0 comments on commit 234513c

Please sign in to comment.