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

General Constructions

Subsections

The General Matrix Group Constructor

MatrixGroup< n, R | L > : RngIntElt, Rng, List -> GrpMat
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:

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.


Example GrpMat_Constructor (H21E5)

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


Example GrpMat_GLSylow (H21E6)

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> ]

Construction of Subgroups

sub<G | L> : GrpMat, List -> GrpMat
Given the matrix group G, construct the subgroup H of G generated by the elements specified by the list L, where L is a list of one or more items of the following types: Each element or group specified by the list must belong to the same generic matrix group. The subgroup H will be constructed as a subgroup of some group which contains each of the elements and groups specified in the list.

The generators of H 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.

ncl<G | L> : GrpMat, List -> GrpMat
Given the matrix group G, construct the subgroup H of G that is the normal closure of the subgroup H generated by the elements specified by the list L, where the possibilities for L are the same as for the sub-constructor.

Example GrpMat_Subgroups (H21E7)

We define O^(-)(4, 2) as a subgroup of GL(4, 2). Recall that O^(-)(4, 2) is isomorphic to S_5. We then locate a subset of its generators that lie within the subgroup isomorphic to A_5.

> GL42 := GeneralLinearGroup(4, GF(2));
> Ominus42 := sub< GL42 | [1,0,0,0, 1,1,0,1, 1,0,1,0, 0,0,0,1 ],
>                               [0,1,0,0, 1,0,0,0, 0,0,1,0, 0,0,0,1 ],
>                               [0,1,0,0, 1,0,0,0, 0,0,1,0, 0,0,1,1 ] >;
> Order(Ominus42);
120
> H := sub< Ominus42 | $.1, $.3 >;
print Order(H);
10
> N := ncl< Ominus42 | $.1, $.3 >;
> Order(N);
60

Construction of Quotient Groups

quo<G | L> : GrpMat, List -> GrpPerm, Map
Given the matrix group G, construct the quotient group Q = G/N, where N is the normal closure of the subgroup of G generated by the elements specified by L. The clause L is a list of one or more items of the following types: Each element or group specified by the list must belong to the same generic matrix group. The function returns Currently in Magma, the quotient group is constructed in its regular representation, so that the application of this operator is restricted to the case where the index of N in G is a few thousand.
G / N : GrpMat, GrpMat -> GrpMat
Given a normal subgroup N of the matrix group G, construct the quotient of G by N. Currently in Magma, the quotient group is constructed in its regular representation, so that the application of this operator is restricted to the case where the index of N in G is a few thousand.

Example GrpMat_Quotient (H21E8)

We determine the structure of a quotient in a soluble subgroup of GL(3, 5).

> G := MatrixGroup< 3, GF(5) | [0,1,0, 1,0,0, 0,0,1], [0,1,0, 0,0,1, 1,0,0 ],
>                                       [2,0,0, 0,1,0, 0,0,1] >;
> Order(G);
384
> Q, f := quo< G | G.2 >;
> Q;
Permutation group Q of degree 8
Order = 8 = 2^3
    (1, 2)(3, 4)(5, 6)(7, 8)
    (1, 3, 5, 7)(2, 4, 6, 8)
> IsAbelian(Q);
true
> AbelianInvariants(Q);
[ 4, 2 ]

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