[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
Construction of a General Group

Construction of a General Group

Subsections

The General Group Constructors

The chapters on the individual group categories describe several methods for constructing groups; this section indicates one approach only.

PermutationGroup< X | L > : Set, List -> GrpPerm, Hom
PermutationGroup< n | L > : RngIntElt, List -> GrpPerm, Hom
MatrixGroup< n, R | L > : RngIntElt, Rng, List -> GrpMat, Hom
These expressions construct, respectively: a permutation group G acting on the set X; a permutation group G acting on the set X={ 1, ..., n }; or a matrix group G of degree n over the ring R. The generic group U of which G is a subgroup will be Sym(X) in the permutation case or GL(n, R) in the matrix case. There are two return values: G, and the inclusion homomorphism from G to U.

The generators of G are defined by the list L. Each term of 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 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 (unless G is trivial).

The PermutationGroup constructor is shorthand for the two statements:

U := SymmetricGroup(X);

G := sub< U | L >;

and the MatrixGroup constructor is shorthand for the two statements:

U := GeneralLinearGroup(n, R);

G := sub< U | L >;

where sub< ... > is the subgroup constructor described in the next subsection.

Group< X | R > : List(Identifiers), List(GrpFPRel) -> GrpFP, Hom(Grp)
PolycyclicGroup< X | R > : List(Identifiers), List(GrpFPRel) -> GrpPC, Hom
AbelianGroup< X | R > : List(Identifiers), List(GrpAbRel) -> GrpAb, Hom(GrpAb)
These expressions construct, respectively, a finitely presented group, a polycyclic group, and an abelian group, in the categories GrpFP, GrpPC, and GrpAb. Given a list X of identifier names x_1, ..., x_r, and a list of relations R over them, first construct the free group F (in GrpFP or GrpAb) on the generators x_1, ..., x_r, and then construct the quotient G of F corresponding to the normal subgroup of F defined by the relations R. There are two return values: G, and the natural homomorphism from F to G.

The relations of G are defined by the list R. Each term of R must be an object of one of the following types:

Within R, the identity element of F may be represented by the digit 1 for finitely presented or polycyclic groups, and 0 for abelian groups.

The construct x_1, ..., x_n defines names for the generators of G that are local to the constructor, i.e., they are used when writing down the relations to the right of the bar. However, no assignment of values to these identifiers is made. If the user wants to refer to the generators by these (or other) names, then the generators assignment construct must be used on the left hand side of an assignment statement.

In the case of polycyclic groups, R must define a power-conjugate presentation. G will belong to the category GrpPC, but F will belong to GrpFP. For the parameters available in this case, see the chapter on pc-groups.


Example Grp_GroupConstructors (H15E3)

> G := PermutationGroup< 8 |                                                   
>     (1, 7, 2, 8)(3, 6, 4, 5), (1, 4, 2, 3)(5, 7, 6, 8) >;
> G;
Permutation group G acting on a set of cardinality 8
    (1, 7, 2, 8)(3, 6, 4, 5)
    (1, 4, 2, 3)(5, 7, 6, 8)
> K<w> := GF(9);
> M := MatrixGroup< 2, K | [w,w,1,2*w], [0,2*w,1,1], [1,0,1,2] >;
> M;
MatrixGroup(2, GF(3^2))
Generators:
    [  w   w]
    [  1 w^5]

[ 0 w^5] [ 1 1]

[ 1 0] [ 1 2] > Order(M); 5760

> Q<s,t,u>, h := Group< s, t, u |
>     t^2, u^17, s^2 = t^s = t, u^s = u^16, u^t = u >;
> Q;
Finitely presented group Q on 3 generators
Relations
    t^2 = Id(Q)
    u^17 = Id(Q)
    s^2 = t
    t^s = t
    u^s = u^16
    u^t = u
> Domain(h);  
Finitely presented group on 3 generators (free)
> G<a,b,c> := PolycyclicGroup< a, b, c | a^2 = b, b^5 = c, c^7 >;
> G; 
GrpPC : G of order 70 = 2 * 5 * 7
PC-Relations:
a^2 = b, 
b^5 = c, 
c^7 = Id(G)
> G := AbelianGroup< h, i, j, k | 5*h, 4*i, 7*j, 2*k - h >;   
> G;                                                 
Abelian Group isomorphic to Z/2 + Z/140
Defined on 4 generators
Relations:
    G.1 + 8*G.4 = 0
    4*G.2 = 0
    7*G.3 = 0
    10*G.4 = 0
> Order(G);
280

Construction of Subgroups

sub<G | L> : Grp, List -> Grp
Given the 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 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 (unless H is trivial).

ncl<G | L> : Grp, List -> Grp
Given the 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 Grp_Subgroup (H15E4)

> Q<s,t,u>, h := Group< s, t, u |
>     t^2, u^17, s^2 = t^s = t, u^s = u^16, u^t = u >;
> S := sub< Q | t*s^2, u^4 >;
> S;
Finitely presented group S on 2 generators
Generators as words
    S.1 = $.2 * $.1^2
    S.2 = $.3^4

Construction of Quotient Groups

quo<G | L> : Grp, List -> Grp
Given the 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 group. The function returns Arbitrary quotients may be readily constructed in the case of finitely-presented, abelian and polycyclic groups. However, in the case of permutation and matrix groups, currently 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 at most a million.
G / N : Grp, Grp -> Grp
Given a normal subgroup N of the group G, construct the quotient of G by N. If G is a permutation or matrix group, 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 at most a million.

Example Grp_Quotient (H15E5)

> G<[x]>, f := AbelianGroup< h, i, j, k | 8*h, 4*i, 6*j, 2*k - h >;   
> T, n := quo< G | x[1] + 2*x[2] + 24*x[3], 16*x[3] >;
> T;
Aelian Group isomorphic to Z/2 + Z/16
Defined on 2 generators
Relations:
    4*T.1 = 0
    16*T.2 = 0
> n(x);
[
    2*T.1,
    T.1 + 12*T.2,
    T.2
]
> n(sub< G | x[1] + x[2] + x[3] >);
Abelian Group isomorphic to Z/16
Defined on 1 generator in supergroup T:
    $.1 = 3*T.1 + T.2
Relations:
    16*$.1 = 0

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