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 0c68ad5 commit b7080c8
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 b7080c8

Please sign in to comment.