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