Both RecogniseMatrixGroup and ApproximateKernel return a record whose
components tell us information about the group and the various kernels
which we compute.
Each layer of the record contains basic information about its
corresponding group; the field over which it is written, its identity,
its dimension and its generators. These are stored in components
.field, .identity, .dimension and .generators respectively.
Each layer also has components .layer-Number, .type, .size and
.printLevel. .layer-Number is an integer telling us which layer of
the record we are in. The top layer is layer 1, .kernel is layer 2,
etc.
The component .type is one of the following strings: "Unknown",
"Perm", "SL", "Imprimitive", "Trivial" and "PGroup". If .type
is "Unknown" then we have not yet computed .quotient. If .type is
"Perm" then we have computed .quotient; if .quotient does not
contain SL then we compute a permutation representation for it. If
.quotient contains SL then .type is "SL". If .quotient is
imprimitive then .type is "Imprimitive". If .quotient is trivial
then .type is "Trivial". If we are in the last layer then .type is
"PGroup".
The component .size is the size of the group generated by
.generators; .printLevel is the current print level (see
DisplayMatRecord).
All layers except the last have components .sizeQuotient,
.dimQuotient, .basis-Sub-module and .basis. Here .sizeQuotient
is the size of .quotient. If we have a permutation representation for
.quotient which is not faithful, then .sizeQuotient is the size of
the permutation group. We compute the kernel of the action in the next
layer and thus obtain the correct size of .quotient. .dimQuotient is
the dimension of .quotient. The component .basisSubmodule is a
matrix consisting of standard basis vectors for the quotient module. We
use it to check that the .quotient block structure is preserved.
.basis is the basis-change matrix returned when we split the group.
The .quotient record may have .permDomain, .permGroupP, .fpGroup,
.abstract-Gen-erat-ors, .fpHomomorphism and .isFaithful as
components. If we have a permutation representation on the group
.quotient, then .permDomain is either a list of vectors or subspaces
on which the group acts to provide a permutation group. .permGroupP is
the permutation group. .fpGroup is a free group on the number of
generators of .quotient. .abstractGenerators is the generators of
.fpGroup. .fpHomomorphism is a mapping from .permGroupP to
.fpGroup. .isFaithful tells us whether we have learned that the
representation is not faithful.
The .pGroup record has components .field, .size, .prime,
.dimension, .identity, .layers and .layersVec. Here .field is
the field over which the group is written; .size is the size of the
group; .prime is the characteristic of the field; .dimension is the
dimension of the group; .identity is the identity for the group;
.layers and .layersVec are lists of lists of matrices and vectors
respectively which we use to compute the exponents of relations to get
the size of the p-group.
GAP 3.4.4