In this chapter we provide algorithms for computing with a group G given by a finite set S = { g1, ..., gr } of invertible n x n matrices over an infinite field K. The algorithms are based on special techniques developed for computing in this class of groups ([DF08], [DF09], [DFO09], [DEF11], [DFO11], [DFO13a], [DFO13b]), which rely on properties of finitely generated linear groups.
The group G is defined over the subring R of K generated by the entries of the matrices gi, (gi) - 1 , 1 ≤i ≤r. If ρ is an ideal of R, then it induces a congruence homomorphism from GL(n, R) onto GL(n, R/ρ), which replaces every entry of an element in S by its image in R/ρ. Our techniques depend on the construction of a congruence homomorphism with the property that all torsion elements of its kernel Gρ (called a congruence subgroup) are unipotent. The existence of a normal subgroup of finite index in G with such a property was proved by Selberg and Wehrfritz. One advantage of the congruence homomorphism techniques is that they replace the ground domain by a domain that is more convenient for computing. In particular, if the ideal ρ is maximal, then we get a reduction to a finite field R/ρ. For more details on the method see [DF08, Section 3].
In this chapter we provide four sets of functions based on the above techniques.
(a) Functions which test finiteness of matrix groups over a wide range of infinite domains. These functions are implementations of algorithms developed in [DF09], [DFO09], [DFO13b]. Together with other currently available algorithms for deciding finiteness, they enable testing finiteness of a finitely generated linear group over an arbitrary field (subject to special representation of input data). Additionally, if a group is found to be finite, then we can construct an isomorphic copy over a finite field, and use that for further structural investigation of the group.
(b) Functions for testing various properties of infinite matrix groups. These functions test whether G is soluble-by-finite or soluble, nilpotent-by-finite or nilpotent, abelian-by-finite, or central-by-finite. In effect, they provide access to the first publicly available implementations of algorithms to decide the "Tits alternative" for a linear group. If G is soluble-by-finite we can test whether it is completely reducible. These functions are implementations of algorithms developed in [DFO11].
(c) Functions to decide whether a soluble-by finite group G defined over Q or a number field has finite rank, to determine its Hirsch number, and to decide if a subgroup of G has finite index. These functions are implementations of algorithms developed in [DFO13a].
(d) Functions for testing nilpotency and computing with nilpotent matrix groups. These functions are implementation of algorithms developed in [DF08], which in turn are based on algorithms in [DF06] for computing with nilpotent matrix groups over finite fields. The functions may also be used for investigating the structure of nilpotent matrix groups. In particular, special algorithms have been developed for deciding finiteness of nilpotent matrix groups. Functions are also available to decide irreducibility and primitivity for finite nilpotent matrix groups over number fields and function fields in zero characteristic; these algorithms, developed and implemented by Tobias Rossmann, are described in [Ros10], [Ros11].
Since G is finitely generated, it is defined over a finitely generated subfield of K. Hence, the main fields to be considered are finite degree extensions of F(x1, ..., xm), where the x1, ..., xm are algebraically independent indeterminates, m ≥0, and the coefficient field F is an number field or a finite field.
For a recent survey of work in the area of computing with matrix groups over infinite fields, we refer to [DEF11].
Verbose output for these functions can be obtained with SetVerbose ("Infinite", 1);