This function takes as input a finitely generated
matrix group G defined over Q or a number field,
and determines if it has finite Hirsch number and Prüfer rank. If so, it
returns true, else false.
This function takes as input a finitely generated finite rank
matrix group G defined over Q or a number field,
and returns its Hirsch number.
If the subgroup H has finite index in the
soluble-by-finite matrix group G defined over Q or a number field,
then this function returns true, else it returns false.
It decides this by checking whether G and H have identical Hirsch numbers.
This function takes as input a finitely generated finite rank
matrix group G defined over Q or a number field,
and returns an upper bound to its Prüfer rank.
V2.28, 13 July 2023