Finite Groups - A Package for Maple
Version 1.0
December 2006
Vahid Dabbaghian and Greg Fee
The Centre for Experimental and Constructive Mathematics (CECM)
Department of Mathematics, Simon Fraser University
Email:vdabbagh@sfu.ca
This worksheet provides a library of finite groups in Maple. This library contains:
1) A finite presentation of all non isomorphic small groups of order up to 200.
2) A permutation representation of classical matrix groups of moderate size.
3) Finite simple groups including alternating groups, classical and exceptional groups of Lie type, and sporadic groups.
4) Functions for creating groups of some particular classes such as: cyclic, symmetric, alternating, dihedral, dicyclic and metacyclic.
| > | with(FiniteGroups); |
| (1) |
Preliminaries:
The following are the standard maple functions for creating finite groups using permutations , and generators and relations.
represents a permutation group of degree deg and a set of generators gens. The first argument is the degree of the group, and should be an integer. The second argument is a set of group generators. Each generator is represented in disjoint cycle notation.
Examples:
| > | permgroup(5, {[[1, 2], [4, 5]], [[5, 4, 3, 2, 1]]}); |
| (1.1) |
represents a finitely presented group by generators gens and a set of relations rels.
The first argument is a set of Maple names which stand for the generators of the group. The second argument is a set of words in the generators. A word is a list of generators and/or inverses of generators representing a product. The inverse of a generator g is represented by 1/g. An empty list represents the identity element. The words
,
, ...,
in rels are such that the relations
=
= ... =
= 1 define the group.
Examples:
| > | grelgroup({a, b}, {[a, a, a], [b, b], [a, b, 1/a, 1/b]}); |
| (1.2) |
Thus in this example
and
are generators and
=
=
= 1 are relations.
represents a subgroup of a finitely presented group grelgrp with a set of equations gens designating the generators of the subgroup.
The first argument is a set of equations. The left side of each equation is the name of a subgroup generator; the right side is a word in the group generators (see grelgroup) representing the subgroup generator.
Examples:
| > | subgrel({x = ([a, b, 1/a])}, grelgroup({a, b}, {[a, a, a], [b, b]})); |
| (1.3) |
Thus if
is grelgroup with relations
=
then subgrel({
},
) is the trivial subgroup of
for each
.
is a function of the group package and finds a permutation representation of a subgroup sbgrl of a group given by generators and relations (i.e. a subgrel).
This function finds all the right cosets of the given subgroup in the given group, assigns integers consecutively to these cosets, constructs a permutation on these coset numbers for each group generator, and returns the permutation group generated by these permutations. Thus the permutation group will be a homomorphic image of (but not necessarily isomorphic to) the original group.
Examples:
| > | g := grelgroup({a, b}, {[a, a, a], [b, b], [a, b, 1/a, 1/b]}); sg := subgrel({y = [b]}, g); group:-permrep(sg); |
| (1.4) |
Permutation representation of a finitely presented group:
If
is grelgroup with relations
then
:=subgrel({
},
) is the identity subgroup of
. Since permrep(
) is a permutation representation of a homomorphic image of
by
, thus it is a permutation group isomorphic to
.
Examples:
| > | g := grelgroup({a, b}, {[a, a, a], [b, b], [a, b, 1/a, 1/b]}); sg := subgrel({y = ([b, b])}, g); group:-permrep(sg); |
| (1.1.1) |
Small Groups:
The small groups library contains all groups of small orders up to 200. The groups are sorted by their orders and they are listed up to isomorphism; that is, for each of the available orders a complete and irredundant list of isomorphism type representatives of groups is given. These groups are available as permutation groups and finitely presented groups.
This function returns the number of non isomorphic small groups of size
. If
then it returns fail.
Example:
| > | NumSmallGroups(192); |
| (2.1) |
This function returns the
small group of size
in the library, if exists. Otherwise it returns fail.
Example:
| > | SmallGroup(4, 2); |
| (2.2) |
| > | SmallGroup(4, 2, style=permgroup); |
| (2.3) |
This function returns all small groups of size
. If
then it returns fail.
Example:
| > | AllSmallGroups(9); |
| (2.4) |
| > | AllSmallGroups(9, style=permgroup); |
| (2.5) |
Permutation Representation of Classic Matrix Groups:
In this section we introduce the following functions:
GeneralLinearGroup
GeneralLinearGroupOrder
ProjectiveGeneralLinearGroup
ProjectiveGeneralLinearGroupOrder
GeneralUnirtaryGroup
GeneralUnirtaryGroupOrder
ProjectiveGeneralUnitaryGroup
ProjectiveGeneralUnitaryGroupOrder
SpecialLinearGroup
SpecialLinearGroupOrder
SpecialUnitaryGroup
SpecialUnitaryGroupOrder
SymplecticGroup
SymplecticGroupOrder
GeneralOrthogonalGroup
GeneralOrthogonalGroupOrder
SpecialOrthogonalGroup
SpecialOrthogonalGroupOrder
From now on suppose
is a finite field of order
where
is a power of a prime
General Linear Groups:
The general linear group GL(n,q) is a set of all n×n invertible matrices with entries in
This function returns a permutation representation of the general linear group GL(n,q) where
100 for n = 2,
20 for
= 3,
10 for
= 4,
for
= 5 and
= 2 for
= 6, 7, 8, 9, 10.
Example:
| > | GeneralLinearGroup(3, 3); |
| (3.1.1) |
| > | GeneralLinearGroupOrder(3, 3); |
| (3.1.2) |
Projective General Linear Groups:
If G = GL(n,q) then the projective general linear group PGL(n,q) is a group isomorphic to the factor group G/Z(G).
This function returns a permutation representation of the projective general linear group PGL(n,q) where
100 for n = 2,
20 for
= 3,
10 for
= 4,
for
= 5 and
= 2 for
= 6, 7, 8, 9, 10.
Example:
| > | ProjectiveGeneralLinearGroup(4, 3); |
| (3.2.1) |
| > | ProjectiveGeneralLinearGroupOrder(4, 3); |
| (3.2.2) |
General Unitary Groups:
A square matrix U is called unitary if U
U
where U
is the conjugate transpose of the matrix U. The general unitary group GU(n,q) is the set of all n×n unitary matrices with entries in
.
This function returns a permutation representation of the general linear group GU(n,q) where
20 for n = 2,
5 for
= 3,
4 for
= 4 and
= 2 for
= 5, 6.
Example:
| > | GeneralUnitaryGroup(3, 2); |
| (3.3.1) |
| > | GeneralUnitaryGroupOrder(3, 2); |
| (3.3.2) |
Projective General Unitary Groups:
If G = GU(n,q) then the projective general linear group PGU(n,q) is a group isomorphic to the factor group G/Z(G).
This function returns a permutation representation of the general unitary group PGU(n,q) where
100 for n = 2,
5 for
= 3,
4 for
= 4 and
= 2 for
= 5, 6.
Example:
| > | ProjectiveGeneralUnitaryGroup(5, 2); |
| (3.4.1) |
| > | ProjectiveGeneralUnitaryGroupOrder(5, 2); |
| (3.4.2) |
Special Linear Groups:
The special linear group SL(n,q) is a set of all n×n invertible matrices with entries in
and determinant 1.
This function returns a permutation representation of the special linear group SL(n,q) where
100 for n = 2,
20 for
= 3,
10 for
= 4,
for
= 5 and
= 2 for
= 6, 7, 8, 9, 10.
Example:
| > | SpecialLinearGroup(2, 11); |
| (3.5.1) |
| > | SpecialLinearGroupOrder(2, 11); |
| (3.5.2) |
Special Unitary Groups:
The special unitary group SU(n,q) is the set of all n×n unitary matrices with entries in F and determinant 1.
This function returns a permutation representation of the special unitary group SU(n,q) where
100 for n = 2,
10 for
= 3,
4 for
= 4,
for
= 5 and
= 2 for
= 6, 7.
Example:
| > | SpecialUnitaryGroup(4, 4); |
| (3.6.1) |
| > | SpecialUnitaryGroupOrder(4, 4); |
| (3.6.2) |
Symplectic Groups:
For an even number n the symplectic group Sp(n,q) is the set of all n×n matrices with entries in
which preserve a nondegenerate antisymmetric bilinear form.
This function returns a permutation representation of the symplectic group Sp(n,q) where
100 for n = 2,
10 for
= 4,
for
= 6 and
= 2 for
= 8, 10.
Example:
| > | SymplecticGroup(4, 3); |
| (3.7.1) |
| > | SymplecticGroupOrder(4, 3); |
| (3.7.2) |
General Orthogonal Groups:
A square matrix Q is called orthogonal if Q
Q
. The general orthogonal group GO(d,n,q) is the group of n×n orthogonal matrices with entries from F. This is a subgroup of the general linear group GL(n,q). This is the group of the matrices which preserves a non-singular quadratic form over F. If the dimension n is even then d = ±1 and if n is odd then d = 0.
This function returns a permutation representation of the general orthogonal group GO(d,n,q) where
100 for n = 2,
20 for
= 3,
10 for
= 4,
for
= 5,
for n = 6, 7, 8 and
= 2 for
= 9, 10, 11.
Example:
| > | GeneralOrthogonalGroup(0, 3, 11); |
| (3.8.1) |
| > | GeneralOrthogonalGroupOrder(0, 3, 11); |
| (3.8.2) |
Special Orthogonal Groups:
The special orthogonal group SO(d,n,q) is a subgroup of GO(d,n,q) of matrices with determinant 1.
This function returns a permutation representation of the special orthogonal group SO(d,n,q) where
100 for n = 2,
20 for
= 3,
10 for
= 4,
for
= 5,
for n = 6, 7, 8 and
= 2 for
= 9, 10, 11.
Example:
| > | SpecialOrthogonalGroup(-1, 6, 3); |
| (3.9.1) |
| > | SpecialOrthogonalGroupOrder(-1, 6, 3); |
| (3.9.2) |
Simple Groups:
A subgroup H of G is called normal if
H
H for all
∈G. A group is called simple if it has no non trivial normal subgroups.
Every finite simple group to be one of the following types:
Alternating Groups:
An alternating group is the group of even permutations of a finite set. The alternating group on the set {1, ... ,n} is called the alternating group of degree n.
This function returns the alternating group of degree n.
Example:
| > | AlternatingGroup(7); |
| (4.1.1) |
Classical Groups:
In this section we introduce the following functions:
ProjectiveSpecialLinearGroup
ProjectiveSpecialLinearGroupOrder
ProjectiveSpecialUnitaryGroup
ProjectiveSpecialUnitaryGroupOrder
ProjectiveSymplecticGroup
ProjectiveSymplecticGroupOrder
OrthogonalGroup
OrthogonalGroupOrder
Projective Special Linear Groups:
If G = SL(n,q) then the projective special linear group PSL(n,q) is a group isomorphic to the factor group G/Z(G).
This function returns a permutation representation of the projective special linear group PSL(n,q) where
241 for n = 2,
20 for
= 3,
10 for
= 4,
for
= 5 and
= 2 for
= 6, 7, 8, 9, 10.
Example:
| > | ProjectiveSpecialLinearGroup(2, 11); |
| (4.2.1.1) |
| > | ProjectiveSpecialLinearGroupOrder(2, 11); |
| (4.2.1.2) |
Projective Special Unitary Groups:
If G = SU(n,q) then the projective special unitary linear group PSU(n,q) is a group isomorphic to the factor group G/Z(G).
This function returns a permutation representation of the projective special unitary group PSU(n,q) where
241 for n = 2,
16 for
= 3,
5 for
= 4,
for
= 5,
3 for n = 6 and
= 2 for
= 6, 7, 8, 9, 10.
Example:
| > | ProjectiveSpecialUnitaryGroup(3, 8); |
| (4.2.2.1) |
| > | ProjectiveSpecialUnitaryGroupOrder(3, 8); |
| (4.2.2.2) |
Projective Symplectic Groups:
If G = Sp(n,q) then the projective symplectic group PSp(n,q) is a group isomorphic to the factor group G/Z(G).
This function returns a permutation representation of the projective symplectic group PSp(n,q) where
241 for n = 2,
20 for
= 4,
5 for
= 6,
for
= 8 and
= 2 for
= 10.
Example:
| > | ProjectiveSymplecticGroup(6, 2); |
| (4.2.3.1) |
| > | ProjectiveSymplecticGroupOrder(6, 2); |
| (4.2.3.2) |
Orthogonal Groups:
returns the projective orthogonal group name where name is in {O7(3), O8-(2), O8+(2), O8-(3), O8+(3), O10-(2), O10+(2)}.
Example:
| > | OrthogonalGroup(`O8+(2)`); |
| (4.2.4.1) |
| > | OrthogonalGroupOrder(`O8+(2)`); |
| (4.2.4.2) |
Exceptional Groups:
These are finite groups of Lie type. These are divided to two subclasses:
1) Untwisted groups which contains
and
2) Twisted groups which contains Ree groups
Suzuki groups
and the Tits group
This function returns the exceptional group name of Lie type where name is one of the groups G2(2), G2(3), G2(4), G2(5), R(3), R(27), Sz(8), Sz(32) and 3D4(2).
Example:
| > | ExceptionalGroup(`Sz(8)`); |
| (4.3.1) |
| > | ExceptionalGroupOrder(`Sz(8)`); |
Sporadic Groups:
The sporadic groups are the 26 finite simple groups that do not fit into any of the infinite families of finite simple groups.
SporadicGroup(`name`)
SporadicGroupOrder(`name`)
returns the sporadic simple group name where name is in {J1, J2, J3, M11, M12, M22, M23, M24, HS, McL, HE, Co1, Co2, Co3, Suz, Fi22, Fi23, Fi24, O'N, Ru}, where these group are
M11, M12, M22, M23, M24 Mathieu groups
J1, J2, J3 Janko groups
HS Higman-Sims group
McL McLaughlin group
HE Held group
Co1, Co2, Co3 Conway groups
Suz Suzuki group
Fi22, Fi23, Fi24' Fischer groups
O'N O'nan group
Ru Rudvalis group
T Tits group
Example:
| > | SporadicGroup(`Co3`); |
| (4.4.1) |
| > | SporadicGroupOrder(`Co3`); |
| (4.4.2) |
Mathieu Groups:
Mathieu groups are 8 permutation groups of degrees 9, 10, 11, 12, 21, 22, 23, 24 where those of the degrees 11, 12, 22, 23 and 24 are in the class of sporadic simple groups.
returns the Mathieu group of degree n, where degree n must be in {9, 10, 11, 12, 21, 22, 23, 24}.
Example:
| > | MathieuGroup(11); |
| (4.4.1.1) |
| > | MathieuGroupOrder(11); |
| (4.4.1.2) |
Other Finite Groups:
In this section we introduce some function for creating cyclic, symmetric, dihedral, dicyclic and metacyclic groups.
Cyclic Groups:
A cyclic group is a group that can be generated by a single element.
returns a cyclic group of order n.
Example:
| > | CyclicGroup(19); |
| (5.1.1) |
| > | CyclicGroup(11, style=permgroup); |
| (5.1.2) |
Symmetric Groups:
A symmetric group is the group of all permutations of a finite set. The symmetric group on the set {1, ... , n} is called the symmetric group of degree n.
This function returns the symmetric group of degree n.
Example:
| > | SymmetricGroup(14); |
| (5.2.1) |
Dihedral Groups:
The dihedral group Dn of order 2n is the symmetry group of an n-sided regular polygon for n > 1.
returns a dihedral group of order 2n.
Example:
| > | DihedralGroup(7); |
| (5.3.1) |
| > | DihedralGroup(4, style=permgroup); |
| (5.3.2) |
Dicyclic Groups:
For each n > 1, the dicyclic group G is a non-abelian group of order 4n which contains a cyclic normal subgroup of size 2n.
returns a dicyclic group of order 4n.
Example:
| > | DicyclicGroup(7); |
| (5.4.1) |
| > | DicyclicGroup(4, style=permgroup); |
| (5.4.2) |
Metacyclic Groups:
A group G is metacyclic if it has a cyclic normal subgroup L such that the quotient group G/L is also cyclic. The metacyclic groups are all generated by two elements which are subject to three relations depending on several numerical parameters. As a special, consider the groups generated by two elements a and b such that
, where
(mod n).
returns a metacyclic group with parameters n, m and p defined above.
Example:
| > | MetacyclicGroup(3,2,2); |
| (5.5.1) |
| > | MetacyclicGroup(3,3,2, style=permgroup); |
| (5.5.2) |
References:
The GAP Group, GAP -- Groups, Algorithms, and Programming, Version 4.4; 2006. (http://www.gap-system.org)
Robert Wilson et al., ATLAS of Finite Group Representations - Version 3; 2006 (http://brauer.maths.qmul.ac.uk/Atlas/v3/)
H.U. Besche, B. Eick and E. O'Brien, The Small Groups library, 2002 (http://www-public.tu-bs.de:8080/~beick/soft/small/small.html)