[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
Creation of the General Linear Group and its Elements

Creation of the General Linear Group and its Elements

Subsections

Construction of the General Linear Group

GeneralLinearGroup(n, R) : RngIntElt, Rng -> GrpMat
GL(n, R) : RngIntElt, Rng -> GrpMat
Given an integer n >= 1, create the generic matrix group, i.e. the general linear group GL(n, R). Initially, only a structure table is created for GL(n, R), so that, in particular, generators are not defined. This function is normally used to provide a context for the creation of elements and subgroups of GL(n, R). If structural computation is attempted with the group created by GeneralLinearGroup(n, R), then generators will be created where possible. At present, this is only permitted in the case in which R is a finite field.

Example GrpMat_Create (H21E1)

We define the general linear group GL(3, K), where K is the finite field GF(4).

> K<w> := FiniteField(4);
> GL34 := GeneralLinearGroup(3, K);
> GL34;
GL(3, GF(2, 2))

Construction of a Matrix

Throughout this subsection we shall assume that the matrix group G is defined on the support X.

elt< G | L > : GrpMat, List(RngElt) -> GrpMatElt
Given a matrix group G defined as a subgroup of GL(n, R), and the list L of expressions a_(ij) (1 <= i, j <= n), defining elements of the ring R, construct the n x n matrix

[ a_{11} a_{12} ... a_{1n} ] [ a_{21} a_{22} ... a_{2n} ] [ ... ] [ a_{n1} a_{n2} ... a_{nn} ]

Unless G is known to be the generic matrix group of degree n, the matrix will be tested for membership of G, and if g is not an element of G, the function will fail. If g does lie in G, g will have G as its parent. Since the membership test may involve constructing a base and strong generating set for G, this constructor may occasionally be very costly. Hence a matrix g should be defined as an element of a subgroup of the generic group only when membership of G is required by subsequent operations involving g.
G ! Q : GrpMat, [ RngElt ] -> GrpMatElt
Given the sequence Q of expressions a_(ij) (1 <= i, j <= n), defining elements of the ring R, construct the n x n matrix

[ a_{11} a_{12} ... a_{1n} ] [ a_{21} a_{22} ... a_{2n} ] [ ... ] [ a_{n1} a_{n2} ... a_{nn} ]

This matrix will have G as its parent structure. As in the case of the elt-constructor, the operation will fail if g is not an element of G, and the same observations concerning the cost of membership testing apply.
Identity(G) : GrpMat -> GrpMatElt
Id(G) : GrpMat -> GrpMatElt
G ! 1 : GrpMat, RngIntElt -> GrpMatElt
Construct the identity matrix in the matrix group G.

Example GrpMat_Matrices (H21E2)

The different constructions are illustrated by the following code, which assigns to each of the variables x and y an element of GL(3, 4).

> K<w> := FiniteField(4);
> GL34 := GeneralLinearGroup(3, K);
> x := elt<GL34 | w,0,1, 0,1,0, 1,0,1 >;
> x;
[w 0 1]
[0 1 0]
[1 0 1]
> y := GL34 ! [w,0,1, 0,1,0, 1,0,1];
> y;
[w 0 1]
[0 1 0]
[1 0 1]
> GL34 ! 1;
[1 0 0]
[0 1 0]
[0 0 1]

Deconstruction of a Matrix

ElementToSequence(g) : GrpMatElt -> [ RngElt ]
Eltseq(g) : GrpMatElt -> [ RngElt ]
Given an n x n matrix g = (a_(ij)), 1 <= i, j <= n, where a_(ij) is an element of the ring R, construct the sequence

[ a_(11), ..., a_(1n), a_(21), ..., a_(2n), ... a_(n1), ..., a_(nn)]

of n^2 elements of the ring R.

[Next] [Prev] [Right] [Left] [Up] [Index] [Root]