The problem described in gap-packages/recog#472 is as follows:
The PreImagesRepresentative method from #6232 tries to construct a matrix (object) with Matrix( elm, Grep ) where elm is a list that describes the entries of the result, and Grep is a representative of the Source of the homomorphism in question.
The idea is that the BaseDomain and ConstructingFilter of the result are given by Grep. This is fine as long as Grep is not a list-of-list matrix. However, if Grep is a list of lists and for example the identity element of the group then BaseDomain( Grep ) is too small and we get an error. (There are quite a few tests for this situation, apparently it is not easy to run into this problem.)
The lesson is:
If we want to have common PreImagesRepresentative code for homomorphisms from matrix groups that consist of proper matrix objects of list-of-list matrices then we cannot use Matrix( elm, Grep ).
We have to prescribe the right ConstructingFilter (for that, Grep is o.k.) and the right BaseDomain. The latter is the common BaseDomain of the matrix group. In the case of groups of list-of-list matrices, we can take FieldOfMatrixGroup instead of using Grep, but in the case of proper matrix objects, FieldOfMatrixGroup may be too small, see #6359.
The problem described in gap-packages/recog#472 is as follows:
The
PreImagesRepresentativemethod from #6232 tries to construct a matrix (object) withMatrix( elm, Grep )whereelmis a list that describes the entries of the result, andGrepis a representative of theSourceof the homomorphism in question.The idea is that the
BaseDomainandConstructingFilterof the result are given byGrep. This is fine as long asGrepis not a list-of-list matrix. However, ifGrepis a list of lists and for example the identity element of the group thenBaseDomain( Grep )is too small and we get an error. (There are quite a few tests for this situation, apparently it is not easy to run into this problem.)The lesson is:
If we want to have common
PreImagesRepresentativecode for homomorphisms from matrix groups that consist of proper matrix objects of list-of-list matrices then we cannot useMatrix( elm, Grep ).We have to prescribe the right
ConstructingFilter(for that,Grepis o.k.) and the rightBaseDomain. The latter is the commonBaseDomainof the matrix group. In the case of groups of list-of-list matrices, we can takeFieldOfMatrixGroupinstead of usingGrep, but in the case of proper matrix objects,FieldOfMatrixGroupmay be too small, see #6359.