Skip to content

Commit c4a13f4

Browse files
authored
Fix Comm for group automorphisms (#5906)
This used to run into a coset enumeration. We increase the rank of certain methods for composite maps to resolve the issue and possibly others.
1 parent abb8103 commit c4a13f4

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

lib/mapprep.gi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ InstallMethod( CompositionMapping2,
153153
InstallMethod( IsInjective,
154154
"for a composition mapping",
155155
true,
156-
[ IsCompositionMappingRep ], 0,
156+
[ IsCompositionMappingRep ], SUM_FLAGS,
157157
function( com )
158158
if IsInjective( com!.map1 ) and IsInjective( com!.map2 ) then
159159
return true;
@@ -176,7 +176,7 @@ InstallMethod( IsInjective,
176176
InstallMethod( IsSingleValued,
177177
"for a composition mapping",
178178
true,
179-
[ IsCompositionMappingRep ], 0,
179+
[ IsCompositionMappingRep ], SUM_FLAGS,
180180
function( com )
181181
if IsSingleValued( com!.map1 ) and IsSingleValued( com!.map2 ) then
182182
return true;
@@ -199,7 +199,7 @@ InstallMethod( IsSingleValued,
199199
InstallMethod( IsSurjective,
200200
"for a composition mapping",
201201
true,
202-
[ IsCompositionMappingRep ], 0,
202+
[ IsCompositionMappingRep ], SUM_FLAGS,
203203
function( com )
204204
if not IsSurjective( com!.map2 ) then
205205
return false;
@@ -218,7 +218,7 @@ InstallMethod( IsSurjective,
218218
InstallMethod( IsTotal,
219219
"for a composition mapping",
220220
true,
221-
[ IsCompositionMappingRep ], 0,
221+
[ IsCompositionMappingRep ], SUM_FLAGS,
222222
function( com )
223223
if not IsTotal( com!.map1 ) then
224224
return false;
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#@local F,x1,x2,x3,x4,A,u,v,hom
2+
# The 'IsBijective' and 'Comm's call below used to trigger coset enumeration.
3+
# See issue https://github.com/gap-system/gap/issues/3898 and also
4+
# https://github.com/gap-system/gap/issues/5910
5+
gap> F:=FreeGroup("x1","x2","x3","x4");;
6+
gap> x1:=F.1;;x2:=F.2;;x3:=F.3;;x4:=F.4;;
7+
gap> A:=GroupHomomorphismByImages(F,F,[x1,x2,x3,x4],[x1,x2,x2*x3^-1*x2,x4]);;
8+
gap> u:=(A*A)^A;;
9+
gap> v:=(A*A)^A;;
10+
gap> IsBijective(u*v); # used to hang
11+
true
12+
gap> (u*v)(x1); # verify that computing images works
13+
x1
14+
gap> hom:=Comm(u,v);; # used to hang
15+
gap> IsGroupHomomorphism(hom);
16+
true
17+
gap> hom(x1); # verify that computing images works
18+
x1

0 commit comments

Comments
 (0)