gap-system / gap

Main development repository for GAP - Groups, Algorithms, Programming, a System for Computational Discrete Algebra
https://www.gap-system.org
GNU General Public License v2.0
813 stars 161 forks source link

problem with `ConfluentMonoidPresentationForGroup` or `IsomorphismFpGroupByChiefSeries` #5800

Open ThomasBreuer opened 1 month ago

ThomasBreuer commented 1 month ago

The following happens in GAP 4.13.1 and in the current master branch.

gap> G:= Omega( -1, 6, 3 );;
gap> ConfluentMonoidPresentationForGroup( G );
Error, List Element: <list>[73] must have an assigned value in
  img := opr( img, S.transimages[bimg[1]] )
 ; at /.../lib/ghomperm.gi:132 called from 
ImageSiftedBaseImage( S, OnTuples( BaseStabChain( S ), elm ), S.idimage, 
 OnRight ) at /.../lib/ghomperm.gi:1076 called from
ImagesRepresentative( RestrictedInverseGeneralMapping( hom ), elm 
 ) at /.../lib/ghom.gi:273 called from
PreImagesRepresentative( hom, j 
 ) at /.../lib/gpfpiso.gi:400 called from
func( C[i] ) at /.../lib/coll.gi:663 called from
List( fgens, function ( j )
      return Image( hom, PreImagesRepresentative( hom, j ) ^ i );
  end ) at /.../lib/gpfpiso.gi:400 called from
...  at *stdin*:2
type 'quit;' to quit to outer loop

In GAP 4.12.2, I get another error.

gap> G:= Omega( -1, 6, 3 );;
gap> ConfluentMonoidPresentationForGroup( G );
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `IsomorphismFpGroupByChiefSeries'
[...]

Since GAP 4.13, apparently IsomorphismFpGroupByChiefSeries has a method for the given group, but we run into the error inside this method. If we switch to an isomorphic permutation group before calling ConfluentMonoidPresentationForGroup then ConfluentMonoidPresentationForGroup( G ) succeeds in GAP 4.13.1 or newer, and I was not patient enough to wait for the answer in GAP 4.12.2.

(The problem has been originally observed by @fieker.)

hulpke commented 1 month ago

When converting to a permutation representation this works for me in the development version. It is likely not not work in 4.12, in part because it relies on pretabulated data.

In the case of calling it for a matrix group, I expect that the implementation of homomorphisms will somewhere stumble. This is a more general problem, not one specific to ConfluentMonoidPresentationForGroup. IF this is needed, the obvious solution is to add a method for it to the nice monomorphism framework.