# Introduction

## Introduction to Matrix Groups

A matrix group $G$ may be defined over any ring $R$ for which Magma has a method for computing the inverse of a matrix. However, the availability of machinery for determining structural information is dependent upon the properties of the base ring $R$.

We distinguish several different cases.

**(i)**
If the ring $R$ is a finite field then the group must be finite. If the group has moderate degree and it is possible to find a low dimensional subspace of the natural vector space for $G$ whose orbit under $G$ has length bounded by a million or so, then it is possible to construct a stabilizer chain representation for the group similar to that used for permutation groups (the *BSGS representation* [[Butler, 1976](../../references.md#cite-butler-schreier-matrix)]). In order to increase the chances of finding a short orbit the Murray–O’Brien [[Murray and O'Brien, 1995](../../references.md#cite-murray-obrien)] strategy for selecting base points is used. The availability of a BSGS representation allows the structure of the group to be investigated in detail.

**(ii)**
If the coefficient ring $R$ is a finite field but the degree and size of the group are such that it is not possible to construct a useful BSGS representation then the group may be investigated using techniques based on a theorem of Aschbacher that classifies the maximal subgroups of ${\operatorname{GL}}(n, q)$. This approach is under intensive development by Leedham-Green, O’Brien and others. Code implementing some parts is documented in Chapter [Matrix Groups over Finite Fields](../MatrixGroupsOverFiniteFields/index-matrix-groups-over-finite-fields.md#chapgrpmatff).

**(iii)**
If the ring $R$ is the Euclidean Ring ${\mathbb{Z}}/m{\mathbb{Z}}$, then the group must be finite. If the group has moderate degree and it is possible to find a vector in the natural $R$-module for $G$ whose orbit has length bounded by a million or so, then again it is possible to compute structural information using the BSGS representation.

**(iv)**
If the ring $R$ has infinite cardinality and satisfies certain properties, Magma can sometimes determine whether the group is finite or infinite. In particular, this can be done when $R$ is the ring of integers, the field of rational numbers, or an algebraic number field (including cyclotomic and quadratic fields). If $G$ is infinite, and has not been created as a Lie group, then Magma currently provides little beyond basic arithmetic on elements.

**(v)**
If the ring $R$ has infinite cardinality but the group $G$ is finite and $R$ is either a field or an Euclidean Domain then it may be possible to construct a *BSGS representation* as above and thereby undertake structural computation.

**(vi)**
If an (infinite) matrix group can be created as a Lie group then machinery based on Lie Theory may be used to analyse the group. The facilities for Lie groups are described in Chapter [Groups of Lie Type](../../LieTheory/ChevalleyGroups/index-chevalley-groups.md#chapgrplie).

Matrix groups over rings of infinite cardinality may be created regardless as to whether they are finite or not. If the coefficient ring $R$ is either the ring of integers, the rational field, a quadratic field, a cyclotomic field, or a number field a matrix group may then be tested for finiteness by use of the function `IsFinite`. However, most functions that determine structural properties of a group apply only to finite groups.

## The Support

Matrix groups may be defined over any ring for which Magma has a method for computing matrix inverses. However, the structure algorithms assume that the group is finite and is defined over either a field, an Euclidean Domain or the Euclidean Ring ${\mathbb{Z}}/m{\mathbb{Z}}$.

## The Category of Matrix Groups

The family of matrix groups over a particular ring $R$ forms a category where the objects are the matrix groups and the morphisms are group homomorphisms. The collection of all matrix groups forms a family of categories indexed by the category of rings. The Magma designation for this family of categories of matrix groups is `GrpMat`.

## The Construction of a Matrix Group

A group of $n \times n$ matrices defined over the ring $R$ is created as a subgroup of the general linear group ${\operatorname{GL}}(n, R)$. Thus the construction of a general matrix group is a two step process:

**(i)**
The appropriate general linear group, ${\operatorname{GL}}(n, R)$, is constructed;

**(ii)**
The required group $G$ is then defined as a subgroup of ${\operatorname{GL}}(n, R)$.

For convenience, a constructor `MatrixGroup< ... >`, which combines these two steps, is provided.
