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);
 

[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
[AllSmallGroups, AlternatingGroup, CyclicGroup, DicyclicGroup, DihedralGroup, ExceptionalGroup, ExceptionalGroupOrder, ExceptionalGroups, FixedPoints, GeneralLinearGroup, GeneralLinearGroupOrder, Gene...
(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]]});
 

permgroup(5, {[[5, 4, 3, 2, 1]], [[1, 2], [4, 5]]}) (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 w[1], w[2], ..., w[n] in rels are such that the relations w[1] = w[2] = ... = w[n] = 1 define the group.  

Examples: 

> grelgroup({a, b}, {[a, a, a], [b, b], [a, b, 1/a, 1/b]});
 

grelgroup({a, b}, {[a, a, a], [b, b], [a, b, 1/a, 1/b]}) (1.2)
 

Thus in this example a and b are generators and a^3 = b^2 = 1/(aba*b)= 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]}));
 

subgrel({x = ([a, b, 1/a])}, grelgroup({a, b}, {[a, a, a], [b, b]})) (1.3)
 

Thus if g is grelgroup with relations w[1] = Typesetting:-mrow(Typesetting:-mi( then subgrel({x = w[i]}, g) is the trivial subgroup of g for each i. 

 

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);
 

grelgroup({a, b}, {[a, a, a], [b, b], [a, b, 1/a, 1/b]}) 

subgrel({y = [b]}, grelgroup({a, b}, {[a, a, a], [b, b], [a, b, 1/a, 1/b]})) 

permgroup(3, {a = ([[1, 2, 3]]), b = []}) (1.4)
 

Permutation representation of a finitely presented group: 

If g is grelgroup with relations Typesetting:-mrow(Typesetting:-mi( then sg:=subgrel({x = w[i]}, g) is the identity subgroup of g. Since permrep(sg) is a permutation representation of a homomorphic image of g by sg, thus it is a permutation group isomorphic to g. 

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);
 

grelgroup({a, b}, {[a, a, a], [b, b], [a, b, 1/a, 1/b]}) 

subgrel({y = ([b, b])}, grelgroup({a, b}, {[a, a, a], [b, b], [a, b, 1/a, 1/b]})) 

permgroup(6, {a = ([[1, 3, 4], [2, 5, 6]]), b = ([[1, 2], [3, 5], [4, 6]])}) (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 n. If 200 < nthen it returns fail. 

Example: 

> NumSmallGroups(192);
 

1543 (2.1)
 

 

 

This function returns the d^th small group of size n in the library, if exists. Otherwise it returns fail.  

Example: 

> SmallGroup(4, 2);
 

grelgroup({_a2, _a1}, {[_a1, _a1], [1/_a2, 1/_a1, _a2, _a1], [_a2, _a2]}) (2.2)
 

> SmallGroup(4, 2, style=permgroup);
 

permgroup(4, {_a2 = ([[1, 3], [2, 4]]), _a1 = ([[1, 2], [3, 4]])}) (2.3)
 

 

 

This function returns all small groups of size n. If 200 < nthen it returns fail.  

Example: 

> AllSmallGroups(9);
 

[grelgroup({_a2, _a1}, {[1/_a2, 1/_a1, _a2, _a1], [_a2, _a2, _a2], [_a1, _a1, _a1, 1/_a2]}), grelgroup({_a2, _a1}, {[_a1, _a1, _a1], [1/_a2, 1/_a1, _a2, _a1], [_a2, _a2, _a2]})]
[grelgroup({_a2, _a1}, {[1/_a2, 1/_a1, _a2, _a1], [_a2, _a2, _a2], [_a1, _a1, _a1, 1/_a2]}), grelgroup({_a2, _a1}, {[_a1, _a1, _a1], [1/_a2, 1/_a1, _a2, _a1], [_a2, _a2, _a2]})]
(2.4)
 

> AllSmallGroups(9, style=permgroup);
 

[permgroup(9, {_a2 = ([[1, 5, 2], [3, 4, 7], [6, 9, 8]]), _a1 = ([[1, 6, 7, 5, 9, 3, 2, 8, 4]])}), permgroup(9, {_a2 = ([[1, 6, 4], [2, 8, 7], [3, 9, 5]]), _a1 = ([[1, 2, 3], [4, 7, 5], [6, 8, 9]])})]
[permgroup(9, {_a2 = ([[1, 5, 2], [3, 4, 7], [6, 9, 8]]), _a1 = ([[1, 6, 7, 5, 9, 3, 2, 8, 4]])}), permgroup(9, {_a2 = ([[1, 6, 4], [2, 8, 7], [3, 9, 5]]), _a1 = ([[1, 2, 3], [4, 7, 5], [6, 8, 9]])})]
(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 Fis a finite field of order q where q is a power of a prime p 

General Linear Groups: 

The general linear group GL(n,q) is a set of all n×n invertible matrices with entries in Typesetting:-mrow(Typesetting:-mi( 

  • GeneralLinearGroup(n,q)
 

  • GeneralLinearGroupOrder(n,q)
 

This function returns a permutation representation of the general linear group GL(n,q) where Typesetting:-mrow(Typesetting:-mi(100 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(20 for n = 3, Typesetting:-mrow(Typesetting:-mi(10 for n = 4, q <= 5 for n= 5 and q= 2 for n = 6, 7, 8, 9, 10.  

Example: 

> GeneralLinearGroup(3, 3);
 

(Typesetting:-mprintslash)([`permgroup of degree 26 with 2 generators`], [permgroup(26, {[[1, 2], [3, 5], [4, 7], [6, 10], [8, 13], [9, 15], [12, 16], [17, 21], [18, 22]], [[1, 3, 6, 11, 17, 7, 12, 13... (3.1.1)
 

> GeneralLinearGroupOrder(3, 3);
 

11232 (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). 

  • ProjectiveGeneralLinearGroup(n,q)
 

  • ProjectiveGeneralLinearGroupOrder(n,q)
 

This function returns a permutation representation of the projective general linear group PGL(n,q) where Typesetting:-mrow(Typesetting:-mi(100 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(20 for n = 3, Typesetting:-mrow(Typesetting:-mi(10 for n = 4, q <= 5 for n = 5 and q = 2 for n= 6, 7, 8, 9, 10.  

Example: 

> ProjectiveGeneralLinearGroup(4, 3);
 

(Typesetting:-mprintslash)([`permgroup of degree 40 with 2 generators`], [permgroup(40, {[[15, 16], [17, 20], [18, 22], [19, 21], [23, 32], [24, 34], [25, 33], [26, 38], [27, 40], [28, 39], [29, 35], ... (3.2.1)
 

> ProjectiveGeneralLinearGroupOrder(4, 3);
 

12130560 (3.2.2)
 

General Unitary Groups: 

A square matrix U is called unitary if UTypesetting:-mrow(Typesetting:-mi(UTypesetting:-mrow(Typesetting:-mi( where UTypesetting:-mrow(Typesetting:-mi( 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 F.  

  • GeneralUnitaryGroup(n,q)
 

  • GeneralUnitaryGroupOrder(n,q)
 

This function returns a permutation representation of the general linear group GU(n,q) where Typesetting:-mrow(Typesetting:-mi(20 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(5 for n= 3, Typesetting:-mrow(Typesetting:-mi(4 for n = 4 and q = 2 for n= 5, 6.  

Example: 

> GeneralUnitaryGroup(3, 2);
 

(Typesetting:-mprintslash)([`permgroup of degree 36 with 2 generators`], [permgroup(36, {[[1, 2, 4], [3, 6, 9], [5, 8, 12], [7, 11, 16], [10, 14, 20], [13, 18, 25], [15, 22, 28], [17, 23, 29], [19, 27... (3.3.1)
 

> GeneralUnitaryGroupOrder(3, 2);
 

648 (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). 

  • ProjectiveGeneralUnitaryGroup(n,q)
 

  • ProjectiveGeneralUnitaryGroupOrder(n,q)
 

This function returns a permutation representation of the general unitary group PGU(n,q) where Typesetting:-mrow(Typesetting:-mi(100 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(5 for n = 3, Typesetting:-mrow(Typesetting:-mi(4 for n = 4 and q = 2 for n= 5, 6.  

Example: 

> ProjectiveGeneralUnitaryGroup(5, 2);
 

(Typesetting:-mprintslash)([`permgroup of degree 341 with 2 generators`], [permgroup(341, {[[3, 5, 4], [10, 14, 18], [11, 15, 19], [12, 16, 20], [13, 17, 21], [23, 25, 24], [27, 29, 28], [31, 33, 32],... (3.4.1)
 

> ProjectiveGeneralUnitaryGroupOrder(5, 2);
 

13685760 (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 Fand determinant 1. 

  • SpecialLinearGroup(n,q)
 

  • SpecialLinearGroupOrder(n,q)
 

This function returns a permutation representation of the special linear group SL(n,q) where Typesetting:-mrow(Typesetting:-mi(100 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(20 for n = 3, Typesetting:-mrow(Typesetting:-mi(10 for n = 4, q <= 5 for n = 5 and q = 2 for n= 6, 7, 8, 9, 10.  

Example: 

> SpecialLinearGroup(2, 11);
 

(Typesetting:-mprintslash)([`permgroup of degree 120 with 2 generators`], [permgroup(120, {[[1, 2, 4, 8, 14, 24, 39, 50, 33, 21], [3, 6, 11, 18, 30, 40, 25, 15, 9, 5], [7, 13, 22, 35, 45, 58, 78, 101,... (3.5.1)
 

> SpecialLinearGroupOrder(2, 11);
 

1320 (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. 

  • SpecialUnitaryGroup(n,q)
 

  • SpecialUnitaryGroupOrder(n,q)
 

This function returns a permutation representation of the special unitary group SU(n,q) where Typesetting:-mrow(Typesetting:-mi(100 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(10 for n= 3, Typesetting:-mrow(Typesetting:-mi(4 for n = 4, q <= 3 for n= 5 and q = 2 for n= 6, 7.  

Example: 

> SpecialUnitaryGroup(4, 4);
 

(Typesetting:-mprintslash)([`permgroup of degree 1105 with 2 generators`], [permgroup(1105, {[[1, 2, 4], [3, 6, 11, 21, 36, 60], [5, 9, 17, 31, 51, 83], [7, 13, 24, 41, 69, 116], [8, 15, 27, 47, 75, 1... (3.6.1)
 

> SpecialUnitaryGroupOrder(4, 4);
 

1018368000 (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 F which preserve a nondegenerate antisymmetric bilinear form.  

  • SymplecticGroup(n,q)
 

  • SymplecticGroupOrder(n,q)
 

This function returns a permutation representation of the symplectic group Sp(n,q) where Typesetting:-mrow(Typesetting:-mi(100 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(10 for n= 4, q <= 4 for n = 6 and q = 2 for n= 8, 10.  

Example: 

> SymplecticGroup(4, 3);
 

(Typesetting:-mprintslash)([`permgroup of degree 80 with 2 generators`], [permgroup(80, {[[1, 2], [3, 5], [4, 7], [6, 10], [8, 13], [9, 15], [11, 18], [12, 20], [14, 19], [16, 24], [17, 26], [21, 31],... (3.7.1)
 

> SymplecticGroupOrder(4, 3);
 

51840 (3.7.2)
 

General Orthogonal Groups: 

A square matrix Q is called orthogonal if QTypesetting:-mrow(Typesetting:-mi(QTypesetting:-mrow(Typesetting:-mi( . 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. 

  • GeneralOrthogonalGroup(d,n,q)
 

  • GeneralOrthogonalGroupOrder(d,n,q)
 

This function returns a permutation representation of the general orthogonal group GO(d,n,q) where Typesetting:-mrow(Typesetting:-mi(100 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(20 for n = 3, Typesetting:-mrow(Typesetting:-mi(10 for n = 4, q <= 5 for n = 5, q <= 3for n = 6, 7, 8 and q = 2 for n= 9, 10, 11.  

Example: 

> GeneralOrthogonalGroup(0, 3, 11);
 

(Typesetting:-mprintslash)([`permgroup of degree 132 with 2 generators`], [permgroup(132, {[[2, 3, 5, 9, 16, 28, 46, 73, 104, 128], [4, 7, 13, 23, 31, 51, 19, 34, 49, 12], [6, 11, 20, 36, 58, 40, 64, ... (3.8.1)
 

> GeneralOrthogonalGroupOrder(0, 3, 11);
 

2640 (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. 

  • SpecialOrthogonalGroup(d,n,q)
 

  • SpecialOrthogonalGroupOrder(d,n,q)
 

This function returns a permutation representation of the special orthogonal group SO(d,n,q) where Typesetting:-mrow(Typesetting:-mi(100 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(20 for n = 3, Typesetting:-mrow(Typesetting:-mi(10 for n = 4, q <= 5 for n= 5, q <= 3for n = 6, 7, 8 and q = 2 for n = 9, 10, 11.  

Example: 

> SpecialOrthogonalGroup(-1, 6, 3);
 

(Typesetting:-mprintslash)([`permgroup of degree 224 with 3 generators`], [permgroup(224, {[[1, 3, 7, 19, 50, 119], [2, 4, 10, 28, 70, 148], [5, 13, 36, 71, 150, 199], [6, 16, 42, 94, 144, 216], [8, 2... (3.9.1)
 

> SpecialOrthogonalGroupOrder(-1, 6, 3);
 

13063680 (3.9.2)
 

Simple Groups: 

A subgroup H of G is called normal if 1/xHTypesetting:-mrow(Typesetting:-mi(H for all x∈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. 

  • AlternatingGroup(n)
 

This function returns the alternating group of degree n. 

Example: 

> AlternatingGroup(7);
 

permgroup(7, {[[1, 2, 3, 4, 5, 6, 7]], [[5, 6, 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). 

  • ProjectiveSpecialLinearGroup(n,q)
 

  • ProjectiveSpecialLinearGroupOrder(n,q)
 

This function returns a permutation representation of the projective special linear group PSL(n,q) where Typesetting:-mrow(Typesetting:-mi(241 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(20 for n = 3, Typesetting:-mrow(Typesetting:-mi(10 for n= 4,  q <= 5 for n= 5 and q = 2 for n = 6, 7, 8, 9, 10.  

Example: 

> ProjectiveSpecialLinearGroup(2, 11);
 

permgroup(12, {[[1, 2, 8], [3, 7, 9], [4, 10, 5], [6, 12, 11]], [[3, 11, 9, 7, 5], [4, 12, 10, 8, 6]]})
permgroup(12, {[[1, 2, 8], [3, 7, 9], [4, 10, 5], [6, 12, 11]], [[3, 11, 9, 7, 5], [4, 12, 10, 8, 6]]})
(4.2.1.1)
 

> ProjectiveSpecialLinearGroupOrder(2, 11);
 

660 (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). 

  • ProjectiveSpecialUnitaryGroup(n,q)
 

  • ProjectiveSpecialUnitaryGroupOrder(n,q)
 

This function returns a permutation representation of the projective special unitary group PSU(n,q) where Typesetting:-mrow(Typesetting:-mi(241 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(16 for n = 3, Typesetting:-mrow(Typesetting:-mi(5 for n = 4, q <= 4 for n= 5,  Typesetting:-mrow(Typesetting:-mi(3 for n = 6 and q = 2 for n = 6, 7, 8, 9, 10.  

Example: 

> ProjectiveSpecialUnitaryGroup(3, 8);
 

(Typesetting:-mprintslash)([`permgroup of degree 513 with 2 generators`], [permgroup(513, {[[1, 17], [2, 431], [3, 133], [4, 147], [5, 33], [6, 402], [7, 127], [8, 79], [9, 508], [10, 153], [11, 223],... (4.2.2.1)
 

> ProjectiveSpecialUnitaryGroupOrder(3, 8);
 

5515776 (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). 

  • ProjectiveSymplecticGroup(n,q)
 

  • ProjectiveSymplecticGroupOrder(n,q)
 

This function returns a permutation representation of the projective symplectic group PSp(n,q) where Typesetting:-mrow(Typesetting:-mi(241 for n = 2, 

Typesetting:-mrow(Typesetting:-mi(20 for n = 4, Typesetting:-mrow(Typesetting:-mi(5 for n = 6, q <= 3 for n = 8 and q = 2 for n = 10.  

Example: 

> ProjectiveSymplecticGroup(6, 2);
 

(Typesetting:-mprintslash)([`permgroup of degree 63 with 2 generators`], [permgroup(63, {[[1, 8, 16, 32, 4, 2], [3, 9, 24, 48, 36, 6], [5, 10, 17, 40, 20, 34], [7, 11, 25, 56, 52, 38], [12, 18, 33], [... (4.2.3.1)
 

> ProjectiveSymplecticGroupOrder(6, 2);
 

1451520 (4.2.3.2)
 

Orthogonal Groups: 

  • OrthogonalGroup(`name`)
 

  • OrthogonalGroupOrder(`name`)
 

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)`);
 

(Typesetting:-mprintslash)([`permgroup of degree 120 with 2 generators`], [permgroup(120, {[[2, 3, 5, 8, 13], [4, 6, 10, 16, 25], [7, 11, 18, 27, 40], [9, 14, 22, 33, 17], [12, 19, 29, 42, 55], [15, 2... (4.2.4.1)
 

> OrthogonalGroupOrder(`O8+(2)`);
 

174182400 (4.2.4.2)
 

Exceptional Groups: 

These are finite groups of Lie type. These are divided to two subclasses: 

1) Untwisted groups which contains Chevalley*groups*G[2](q), F[4](q), E[6](q), E[7](q)and Typesetting:-mrow(Typesetting:-mi( 

2) Twisted groups which contains Ree groups Typesetting:-mrow(Typesetting:-mi(Suzuki groups Typesetting:-mrow(Typesetting:-mi( 

and the Tits group Typesetting:-mrow(Typesetting:-mi( 

  • ExceptionalGroup(`name`)
 

  • ExceptionalGroupOrder(`name`)
 

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)`);
 

(Typesetting:-mprintslash)([`permgroup of degree 65 with 2 generators`], [permgroup(65, {[[1, 2], [3, 4], [5, 7], [6, 9], [8, 12], [10, 13], [11, 15], [14, 19], [16, 21], [17, 23], [18, 25], [20, 28],... (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`);
 

(Typesetting:-mprintslash)([`permgroup of degree 276 with 2 generators`], [permgroup(276, {[[1, 245, 185], [2, 42, 87], [3, 112, 266], [4, 15, 22], [5, 131, 30], [6, 7, 188], [8, 75, 111], [9, 132, 82... (4.4.1)
 

> SporadicGroupOrder(`Co3`);
 

495766656000 (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. 

  • MathieuGroup(n)
 

  • MathieuGroupOrder(n)
 

returns the Mathieu group of degree n, where degree n must be in {9, 10, 11, 12, 21, 22, 23, 24}. 

Example: 

> MathieuGroup(11);
 

permgroup(11, {[[3, 7, 11, 8], [4, 10, 5, 6]], [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]]}) (4.4.1.1)
 

> MathieuGroupOrder(11);
 

7920 (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.  

  • CyclicGroup(n)
 

  • CyclicGroup(n, style=permgroup)
 

returns a cyclic group of order n. 

Example: 

> CyclicGroup(19);
 

grelgroup({a}, {[a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a]}) (5.1.1)
 

> CyclicGroup(11, style=permgroup);
 

permgroup(11, {a = ([[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]])}) (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. 

  • SymmetricGroup(n)
 

This function returns the symmetric group of degree n. 

Example: 

> SymmetricGroup(14);
 

permgroup(14, {[[1, 2]], [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 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. 

  • DihedralGroup(n)
 

  • DihedralGroup(n, style=permgroup)
 

returns a dihedral group of order 2n. 

Example: 

> DihedralGroup(7);
 

grelgroup({a, b}, {[b, b], [a, b, a, b], [a, a, a, a, a, a, a]}) (5.3.1)
 

> DihedralGroup(4, style=permgroup);
 

permgroup(4, {[[1, 2, 3, 4]], [[1, 3]]}) (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. 

  • DicyclicGroup(n)
 

  • DicyclicGroup(n, style=permgroup)
 

returns a dicyclic group of order 4n. 

Example: 

> DicyclicGroup(7);
 

grelgroup({a, b}, {[1/b, a, b, a], [a, a, a, a, a, a, a, a, a, a, a, a, a, a], [a, a, a, a, a, a, a, b, b]}) (5.4.1)
 

> DicyclicGroup(4, style=permgroup);
 

(Typesetting:-mprintslash)([`permgroup of degree 16 with 2 generators`], [permgroup(16, {b = ([[1, 2, 3, 4], [5, 6, 13, 9], [7, 12, 10, 15], [8, 16, 11, 14]]), a = ([[1, 7, 8, 9, 3, 10, 11, 6], [2, 13... (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 

a^n = 1, b^m = 1, ab/b = a^p, where p^m = 1 (mod n). 

  • MetacyclicGroup(n, m, p)
 

  • MetacyclicGroup(n, m, p, style=permgroup)
 

returns a metacyclic group with parameters n, m and p defined above. 

Example: 

> MetacyclicGroup(3,2,2);
 

grelgroup({a, b}, {[b, b], [a, a, a], [1/b, a, b, a, a]}) (5.5.1)
 

> MetacyclicGroup(3,3,2, style=permgroup);
 

permgroup(9, {a = ([[1, 4, 5], [2, 7, 8], [3, 6, 9]]), b = ([[1, 2, 3], [4, 7, 6], [5, 8, 9]])}) (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)