MatrixObj: conceptual problem with `FieldOfMatrixGroup`
kind: bug: wrong result
For a group `G` whose elements are in `IsMatrixObj`, we want that all elements have the same `BaseDomain` value.
This is larger than or equal to `FieldOfMatrixGroup( G )`, according to the definition of `FieldOfMatrixGroup` (the smallest field that contains all entries of all matrices in `G`).
For example, `FieldOfMatrixGroup( T )`, for `T = TrivialSubgroup( G )`, is always a prime field, whereas the common `BaseDomain` of the elements in `T` shall be equal to that of the elements in `G`.
Apparently `FieldOfMatrixGroup` is not what one wants to know about a group of `MatrixObj`s, the common `BaseDomain` is important.
Still the code for matrix groups calls `FieldOfMatrixGroup` and `DefaultFieldOfMatrixGroup` in many places.
Currently the behaviour of GAP is inconsistent in this respect, due to an ugly hack which I had introduced in https://github.com/gap-packages/forms/pull/80.
Namely, `FieldOfMatrixGroup` for a group of `MatrixObj`s returns the common `BaseDomain`.
In order to fix this, I propose to introduce `BaseDomain` for matrix groups, which is defined as the common `BaseDomain` of the generators in the case of groups of `MatrixObj`s, and as the `FieldOfMatrixGroup` for groups of list-of-lists matrices.
Then we can replace the relevant `FieldOfMatrixGroup` calls in the GAP library, i.e., those where one in fact does not want the smallest field but "the natural field implied by the generators".
1 条评论