Other Functions for Nilpotent Matrix Groups

RecogniseAbelian (G) : GrpMat -> GrpGPC, Map, Map
Given a completely reducible abelian matrix group G defined over Q or a number field, return an isomorphic polycyclic copy P, a map from G to P, and a map from P to G. It uses an algorithm of Biasse and Fieker [BF12] to work with irreducible abelian groups defined over number fields.
SylowSystem(G : parameters) : GrpMat[FldFin] -> []
    Verify: BoolElt                     Default: false
Given a nilpotent matrix group G over a finite field, this function constructs one Sylow p-subgroup for each prime p dividing |G| using the algorithm of [DF06]. If the optional parameter Verify is set to true, then we first verify that G is nilpotent.

The next two functions were developed and implemented by Tobias Rossmann.

IsIrreducibleFiniteNilpotent(G : parameters): GrpMat -> BoolElt, Any
    DecideOnly: BoolElt                 Default: false
    Verify: BoolElt                     Default: false
Let G be a finite nilpotent matrix group over K, where K is a number field or a rational function field over a number field. The function returns true if G is irreducible or false and a proper submodule of GModule(G). The construction of a submodule can be suppressed by setting DecideOnly to true. If the optional parameter Verify is set to true, then the function checks if G is nilpotent and finite. The algorithm used for irreducibility testing is described in [Ros10a].
IsPrimitiveFiniteNilpotent(G : parameters): GrpMat -> BoolElt, Any
    DecideOnly: BoolElt                 Default: false
    Verify: BoolElt                     Default: false
Let G be an irreducible finite nilpotent matrix group over K, where K is a number field or a rational function field over a number field. The function returns true if G is primitive, or false and a system of imprimitivity for G given as a sequence of subspaces of RSpace(G). The construction of a system of imprimitivity can be suppressed by setting DecideOnly to true. If the optional parameter Verify is set to true, then the function checks if G is nilpotent and finite. The algorithm used for primitivity testing is described in [Ros10b].
V2.28, 13 July 2023