|
|
GL(n, R) : RngIntElt, Rng -> GrpMat
Given an integer n ≥1 and a ring R, 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 cases in which R is a
finite field.
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))
Throughout this subsection we shall assume that the matrix group G
is defined over the ring R.
Given a matrix group G defined as a subgroup of GL(n, R), and
the list L of expressions aij (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.
Given the sequence Q of expressions aij (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.
Eltseq(g) : GrpMatElt -> [ RngElt ]
Given an n x n matrix g = (aij), 1 ≤i, j ≤n, where
aij is an element of the ring R, construct the sequence
[ a11, ..., a1n, a21, ..., a2n, ... an1, ..., ann]
of n2 elements of the ring R.
Id(G) : GrpMat -> GrpMatElt
G ! 1 : GrpMat, RngIntElt -> GrpMatElt
Construct the identity matrix in the matrix group G.
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]
Construct the matrix group G of degree n over the ring R generated
by the matrices defined by the list L. A term of the list L must be
an object of one of the following types:
- (a)
- A sequence of n2 elements of R defining a matrix of GL(n, R);
- (b)
- A set or sequence of sequences of type (a);
- (c)
- An element of GL(n, R);
- (d)
- A set or sequence of elements of GL(n, R);
- (e)
- A subgroup of GL(n, R);
- (f)
- A set or sequence of subgroups of GL(n, R).
Each element or group specified by the list must belong to the
same generic matrix group. The group G will
be constructed as a subgroup of some group which contains each
of the elements and groups specified in the list.
The generators of G consist of the elements specified by the
terms of the list L together with the stored generators for
groups specified by terms of the list. Repetitions of an element
and occurrences of the identity element are removed.
The MatrixGroup constructor is shorthand for the two statements:
GL := GeneralLinearGroup(n, R);
G := sub< GL | L >;
where sub< ... > is the subgroup constructor described in
the next subsection.
We use the MatrixGroup constructor to define a small
subgroup of GL(3, 4).
> K<w> := FiniteField(4);
> H := MatrixGroup< 3, K | [1,w,0, 0,1,0, 1,w^2,1], [w,0,0, 0,1,0, 0,0,w] >;
> H;
MatrixGroup(3, GF(2, 2))
Generators:
[ 1 w 0]
[ 0 1 0]
[ 1 w^2 1]
[w 0 0]
[0 1 0]
[0 0 w]
> Order(H);
96
We present a function which will construct the Sylow p-subgroup
of GL(n, K), where K is a finite field of characteristic p.
> GLSyl := function(n, K)
> R := MatrixRing(K, n);
> e := func< i, j | MatrixUnit(R, i, j) >;
> return MatrixGroup< n, K | { R!1 + a*e(i,j) : a in K, j in [i+1],
> i in [1 .. n - 1] | a ne 0 } >;
> end function;
> T := GLSyl(3, GF(8));
> FactoredOrder(T);
[ <2, 9> ]
> FactoredOrder(GL(3, GF(8)));
[ <2, 9>, <3, 2>, <7, 3>, <73, 1> ]
Given a matrix group G with base ring R, construct a new matrix group
H with base ring S derived from G by coercing entries of the
generators of G from R into S.
Given a matrix group G with base ring R, construct a new matrix group H
with base ring S derived from G by applying f to the entries of the
generators of G.
Given a matrix group G with base ring K, a finite field, and S a
subfield of K, construct the matrix group H with base ring S obtained
by restricting the scalars of the components of elements of G into S,
together with the restriction map from G onto H.
Given a matrix group G with base ring K, a finite field, and L an
extension of K, construct the matrix group H with base ring L obtained
by lifting the components of elements of G into L, together with the
inclusion homomorphism from G into H.
A square non-singular matrix may be defined as an element of any of the
following structures:
 - A subring of the complete matrix ring Mn(R);
 - A subgroup of the general linear group GL(n, R);
 - A submodule of the matrix module M(m x n)(R).
The coercion operator may be used to transfer matrices between any two
of these three structures.
Transfer the matrix g from a group into a matrix ring R.
Transfer the matrix r from a ring into a matrix group G.
Transfer the matrix g from a group into a matrix module M.
Transfer the matrix m from a module into a matrix group G.
For a square matrix g with elements inside a localization R(p) of a ring R
(so all denominators are prime to p),
given a projection map π : R to R/p,
returns the image of g under the map induced by π.
The functions in this group provide access to basic information stored for a
matrix group G.
The i-th defining generator for the matrix group G. A negative subscript indicates
that the inverse of the generator is to be created.
The 0th generator G.0 is Identity(G).
The degree of the matrix group G.
A set containing the defining generators for the matrix group G.
Ngens(G) : GrpMat -> RngIntElt
The number of defining generators for the matrix group G.
BaseRing(G) : GrpMat -> Rng
The coefficient ring for the matrix group G.
Given a matrix group G of degree n defined over a ring R,
return the space R(n), where the action is multiplication
by elements of R, i.e. scalar action.
Given a matrix group G of degree n defined over a field K,
return the space K(n), where the action is multiplication
by elements of K, i.e. scalar action.
The natural R[G]-module for the matrix group G.
The generic group containing the matrix group G, i.e. the general linear group in
which G is naturally embedded.
The power structure for the group G (the set consisting
of all matrix groups).
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|
|