In this section, K is a finite degree extension of F(x1, ..., xm), where F is Q, a number field, or a finite field, and m≥0.
SolubleByFinite: BoolElt Default: false
NilpotentByFinite: BoolElt Default: false
AbelianByFinite: BoolElt Default: false
Nilpotent: BoolElt Default: false
Presentation: MonStgElt Default: "CT"
OrderLimit: RngIntElt Default: 10^{15}
Small: RngIntElt Default: 10^6
This function takes as input a finitely generated matrix group G over K, and tests whether G is completely reducible. If so, it returns true, otherwise false.The algorithm used is described in [DFO11, Section 4]. It applies only if G is soluble-by-finite, nilpotent-by-finite, or abelian-by-finite. Hence one (and only one) of the four optional arguments SolubleByFinite, NilpotentByFinite, AbelianByFinite, Nilpotent must be true. In particular, if Nilpotent is set to be true, then a more efficient algorithm (from [DF08]) is used.
In positive characteristic p, if p divides the order of the congruence image of G then currently the algorithm cannot decide complete reducibility of G.
The optional parameter Presentation is used to dictate how the presentation is constructed. If its value is "CT", then we use the presentation provided by CompositionTreeVerify. If its value is "PC" and the image is soluble, then we use a PC-presentation provided by LMGSolubleRadical. If its value is "FP" then we use the presentation provided by FPGroup or FPGroupStrong. If the order of the congruence image is less than the value of the optional argument Small, then we use FPGroup to construct the presentation; if it is less than the value of the optional argument OrderLimit, then we use FPGroupStrong to construct the presentation; otherwise we use the presentation provided by CompositionTreeVerify.
Let H be a matrix group in block lower triangular form, and let μ be the projection of H onto its diagonal blocks. If all diagonal blocks of H are completely reducible, then ker μ is the unipotent radical of H and μ(H) is a `completely reducible part' of H.G is a soluble-by-finite group defined over Q or over a number field. The function returns a completely reducible part of G and a change-of-basis matrix to exhibit this.
In positive characteristic p, if p divides the order of the congruence image of G then currently the algorithm cannot construct a completely reducible part.
This function takes as input a finitely generated matrix group G defined over an exact field F, and tests whether G is unipotent, i.e., whether it is conjugate in GL(n, F) to a group of upper unitriangular matrices. If G is unipotent then the function returns true and a change-of-basis matrix c ∈GL(n, F) such that Gc is upper unitriangular, otherwise false. See [DF06, Section 2.1] for details of the algorithm.
Let G be a finitely generated subgroup of GL(n, K). This function returns true if G is nilpotent; otherwise it returns false. If K is finite then the function is an implementation of the algorithm of [DF06]. If K is infinite then the function is similar to the algorithm in [DF08], and is based on the construction of a homomorphic image H of G via CongruenceImage.
Presentation: MonStgElt Default: "CT"
OrderLimit: RngIntElt Default: 10^{15}
Small: RngIntElt Default: 10^6
UseCongruence: BoolElt Default: false
Let G be a finitely generated subgroup of GL(n, K). This function returns true if G is soluble; otherwise it returns false. If K is infinite and has characteristic p>0, then the algorithm is applicable only for p > n. For details see [DFO11, Section 3.2].If K is Q or a number field and UseCongruence is true, then use congruence homomorphism machinery to decide; otherwise use default algorithm.
The other optional arguments are those described above for IsSolubleByFinite.
Presentation: MonStgElt Default: "CT"
OrderLimit: RngIntElt Default: 10^{15}
Small: RngIntElt Default: 10^6
This function takes as input a finite matrix group G over Z, and tests whether G is polycyclic. If so, it returns true, otherwise false.The optional arguments are those described above for IsSolubleByFinite.
UseCongruence: BoolElt Default: false
Let g be an invertible matrix defined over Z, Q, a number field, a function field, or an algebraic function field.If g has finite order, then return true and, if known, a multiplicative upper bound for the order of g; else return false.
If g is defined over Z, Q, or a number field and UseCongruence is true, then use congruence homomorphism machinery to decide; otherwise use default algorithm.