The component .reducible is set to true if module is known to be
reducible, and to false if it is known not to be. This component is
set by IsIrreducible which may also set the components .subbasis,
.algEl, .algElMat, .algElCharPol, .algElCharPolFac,
.algElNullspaceVec and .algElNullspaceDim. If module has been
proved reducible, .subbasis is a basis for a submodule. Alternatively,
if module has been proved to be irreducible, .algEl is set to the
random element el of the group algebra which has been successfully used
by the algorithm to prove irreducibility, represented abstractly,
essentially as a sum of words in the generators, and .algElMat to the
actual matrix X that represents that element. The component
.algElCharPol is set to the characteristic polynomial p of X and
.algElCharPolFac to the factor f of X used by the algorithm.
(Essentially irreducibility is proved by applying Norton's
irreducibility criterion to the matrix f(X); see [5] for further
details.) The component .algElNullspaceVec is set to an arbitrary
vector of the nullspace N of f(X), and .algElNullspaceDim to the
dimension of N.
The component .absolutelyReducible is set to false if module is
known to be absolutely irreducible, and to true if it is known not to
be. It is set by IsAbsolutelyIrreducible, which also sets the
components .degreeFieldExt, .centMat, .centMatMinPoly if module
is not absolutely irreducible. In that case, .degreeFieldExt is set to
the dimension e of the centralising field of module. The component
.centMat is set to a matrix C, which both centralises each of the
matrices in module.generators generating the group action of module
and has minimal polynomial f of degree e. The component
.centMatMinPoly is set equal to f.
The component .semiLinear is set to true in SemiLinearDecomposition
if G acts absolutely irreducibly on module but embeds in a group of
semilinear automorphisms over an extension field of degree e over the
field F. Otherwise it is not set. At the same time, .degreeFieldExt
is set to e, .linearPart is set to a list of matrices S which are
normal subgroup generators for the intersection of G with the general
linear group in dimension d/e over GF(q^e), and .centMat is set to
a matrix C which commutes with each of those matrices. Here, C
corresponds to scalar multiplication in the module by an element of the
extension field GF(q^e). The component .frobeniusAutomorphisms is
set to a list of integers i, one corresponding to each of the
generating matrices g for G in the list .generators, such that Cg
= gC^{q^{i(g)}}. Thus the generator g acts on the field GF(q^e) as
the Frobenius automorphism x rightarrow x^{q^{i(g)}}.
The component .tensorProduct is set to true in
TensorProductDecomposition if module can be written as a tensor
product of two G-modules with respect to an appropriate basis.
Otherwise it is not set. At the same time, .tensorBasis is set to the
appropriate basis of that space, and .tensorFactors to the pair of
G-modules whose tensor product is isomorphic to module written with
respect to that basis.
The component .symTensorProduct is set to true in
SymTensorProductDecomposition if module can be written as a symmetric
tensor product whose factors are permuted by the action of G.
Otherwise it is not set. At the same time, .symTensorBasis is set to
the basis with respect to which this decomposition can be found,
.symTensorFactors to the list of tensor factors, and .symTensorPerm
to the list of permutations corresponding to the action of each of the
generators of G on those tensor factors.
The component .extraSpecial is set to true in the function
ExtraSpecialDecomposition if G has been shown to have a normal
subgroup H which is an extraspecial r-group for an odd prime r or a
2-group of symplectic type, modulo scalars. Otherwise it is not set. At
the same time, .extraSpecialGroup is set to the subgroup H, and
.extraSpecialPrime is set to r.
The component .imprimitive is set to true if G has been shown to
act imprimitively and to false if G is primitive. Otherwise it is
not set. This component is set in IsPrimitive. If G has been shown
to act imprimitively, then module has a component .blockSystem which
has the structure described in BlockSystemFlag.
GAP 3.4.4