Nathan Carter at Bentley University in Waltham, Massachusetts has written and published Group Explorer software for Windows, Macintosh, and Linux. The download URL is

http://sourceforge.net/projects/groupexplorer/

Group Explorer provides a listing of the smallest groups, their names, their multiplication tables, Cayley diagrams, Cayley graphs and generators in an attractive, interactive format.

GAP, on the other hand, is the authoritative reference for small groups (rank less than 1024), but makes no pretense about being casual user friendly. (Of course, after the software has you trained, you will find it very user friendly!)

As an example, the set of coefficients for the cubic equation are

x^{3} + Ax^{2} + Bx
+ C = (x - r_{1})*(x - r_{2})*(x - r_{3})
= 0

A = -(r_{1} + r_{2} + r_{3})

B = (r_{1}*r_{2} + r_{2}*r_{3} + r_{3}*r_{1})

C = -r_{1}*r_{2}*r_{3}

A = -(r

B = (r

C = -r

Swapping r

Permutations feature:

- an identity element, which is no permutation at all,
- an inverse for each element, which undoes the previous permutation,
- closure, where the result of two cascaded permutations is another permutation, and
- associativity, where the result of three cascaded operations is insensitive to the ordering of parenthesis creating binary operations. (A.B).C = A.(B.C)

As we generalized from permutations to groups, the four properties above carried forth.

The common naming convention uses a letter S, to indicate
Symmetric, followed by a number, which gives the set size of the
object being permuted. The number of permutations of a set of n
elements is n!, so each permutation group has a size, or order, of
n! permutations. S2 has two members, S3 has six members, S4 has 24
members, S5 has 120 members, and so on. Other notation I've seen
includes Sym for symmetric, as well as P for permutation.

We now are going to walk through the smallest groups, introducing topics along the way.

This smallest of sets has two members. On the left is the GAP multiplication table, where the numbers 1 and 2 can be used as indices into a table of letters. To the right, is a generic multiplication

table, using A and B as representations of group members.

GAP Multiplication Table S2/C2/Z2 - ASCII Multiplication TableYou notice that the first row matches the top heading, and the left column matches the left heading. This identifies A as the identity element. Traditionally, the letters E or I are used for this element. Traditionally, we start the standard form of a group multiplication table with the identity top and left.

(Prefactor left column, Postfactor top row)

_|_A_B _|_I_A __|_+1_-1_

[ [ 1, 2 ], A| A B I| I A +1| +1 -1

[ 2, 1 ] ] B| B A A| A I -1| -1 +1

Next, we notice the same table, this time using I for the unit, and A for the other element (which used to be B). Finally, we have a faithful representation of this group, using multiplication for the group action, and +1 and -1 as group elements. As this is a cyclical group of order 2, we see we are dealing with square roots of 1. Alternatively, we can call out A = e

Group Explorer show a colored multiplication table without headings, but includes the generators in the table cells. The definition to the right of Z

a

Z

Returning to the ASCII multiplication table, we see that this particular table is organized with a unit diagonal from top right to lower left. This implies that the left column is the inverse of the top row. We can obtain a faithful matrix representation of the group elements when we have such an arrangement as shown below. We replace all instances of the desired group member with a 1, and zero out all other cells. Using standard matrix multiplication, we verify A*A = I, I*A = A*I = I.

_|_I_AAs we look at the multiplication table, we see it is symmetric around the descending diagonal. Consequently, this group is commutative as well as associative. To help lower comprehension, rather than call out a group as commutative, which clearly identifies the property of interest, we instead call commutative groups Abelian, after Niels Henrik Abel (5 August 1802 – 6 April 1829).

I| I A I => 1 0 A => 0 1

A| A I 0 1 1 0

MultiplicationTable(SmallGroup(3,1));The definition for this group uses one generator, a, with <a:a

_|_I_A_B

[ [ 1, 2, 3 ], I| I A B

[ 2, 3, 1 ], A| A B I

[ 3, 1, 2 ] ] B| B I A

From Group Explorer, we have

Using the knowledge that a

A = e

B = A

I = A*B = A

How about a matrix representation for the group elements? We will need to re-arrange our multiplication table to have a descending unit diagonal, (from which we can easily read inverse elements), and then we can read off the matrix representation as done for C2/Z2/S2 above.

_|_I_A_B Our original table. Notice A^2 = B. B^2 = A.

I| I A B Also notice A^3 = 1. B^3 = 1.

A| A B I

B| B I A

_|_I_A_B We see A and B are inverse to each other.

I| I A B 1/A = B, and 1/B = A

B| B I A

A| A B I

1 0 0 0 1 0 0 0 1

I = 0 1 0 A = 0 0 1 B = 1 0 0

0 0 1 1 0 0 0 1 0

gap> StructureDescription(SmallGroup(4,1));From Group Explorer, we have the generator relationship <a:a

"C4"

gap> MultiplicationTable(SmallGroup(4,1));

_|_I_A_B_C

[ [ 1, 2, 3, 4 ], I| I A B C

[ 2, 3, 4, 1 ], A| A B C I

[ 3, 4, 1, 2 ], B| B C I A

[ 4, 1, 2, 3 ] ] C| C I A B

_|_I_A_B_C A = 1^(1/4) = i

I| I A B C B = A^2 = 1^(1/2) = i^2 = -1 A| A B C I C = AB = BA = 1^(3/4) = -i B| B C I A

C| C I A B

_|_I_A_B_C We see 1/A = C, !/B = B and 1/C = A

I| I A B C

C| C I A B

B| B C I A

A| A B C I

Matrix Representation

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

I = 0 1 0 0 A = 0 0 1 0 B = 0 0 0 1 C = 1 0 0 0

0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0

0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0

gap> StructureDescription(SmallGroup(4,2));From Group Explorer, we have the generators <a,b:a

"C2 x C2"

gap> MultiplicationTable(SmallGroup(4,2));

_|_I_A_B_C

[ [ 1, 2, 3, 4 ], I| I A B C

[ 2, 1, 4, 3 ], A| A I C B

[ 3, 4, 1, 2 ], B| B C I A

[ 4, 3, 2, 1 ] ] C| C B A I

_|_I_A_B_C We see A^2 = B^2 = C^2 = 1

I| I A B C AB = BA = C

A| A I C B AC = CA = B

B| B C I A BC = CB = A

C| C B A I

We are already in the unit diagonal format, so

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

I = 0 1 0 0 A = 1 0 0 0 B = 0 0 0 1 C = 0 0 1 0

0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0

0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0

As we look at this table, we see the choice of letters is h = horizontal flip and v = vertical flip.

This is our first group to include subgroups. Look at the re-organized tables below. Notice how the upper left hand corner can be a self-contained group? These are the three subgroups of V4, being (I,A) , (I,B) and (I,C).

Subgroups of V4 - Klein four-group

_|_I_A__B_C _|_I_B__C_A _|_I_C__A_B

I| I A B C I| I B C A I| I C A B

A| A I C B B| B I A C C| C I B A

B| B C I A C| C A I B A| A B I C

C| C B A I A| A C B I B| B A C I

MultiplicationTable(SmallGroup(5,1));No subgroups are present. We have just one generator. <a:a

_|_I_A_B_C_D

[ [ 1, 2, 3, 4, 5 ], I| I A B C D

[ 2, 3, 4, 5, 1 ], A| A B C D I

[ 3, 4, 5, 1, 2 ], B| B C D I A

[ 4, 5, 1, 2, 3 ], C| C D I A B

[ 5, 1, 2, 3, 4 ] ] D| D I A B C

From Group Explorer, the colored multiplication table is

The inverse map for C5, and the matrix representation are shown below.

_|_I_A_B_C_D

I| I A B C D AD = I

D| D I A B C BC = I

C| C D I A B

B| B C D I A

A| A B C D I

1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1

0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0

I = 0 0 1 0 0 A = 0 0 0 1 0 B = 0 0 0 0 1 C = 1 0 0 0 0 D = 0 1 0 0 0

0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0

0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0

gap> StructureDescription(SmallGroup(6,2));The colored multiplication from Group Explorer is

"C6"

gap> MultiplicationTable(SmallGroup(6,2));

_|_I_A_B_C_D_E

[ [ 1, 2, 3, 4, 5, 6 ], I| I A B C D E

[ 2, 1, 4, 3, 6, 5 ], A| A B C D E I

[ 3, 4, 5, 6, 1, 2 ], B| B C D E I A

[ 4, 3, 6, 5, 2, 1 ], C| C D E I A B

[ 5, 6, 1, 2, 3, 4 ], D| D E I A B C

[ 6, 5, 2, 1, 4, 3 ] ] E| E I A B C D

Subgroup and cosets (I C) Subgroup and cosets (B D I)

_|_I_C__B_E__D_A _|_I_B_D__C_E_A

I| I C B E D A I| I B D C E A

C| C I E B A D B| B D I E A C

D| D I B A C E

B| B E D A I C

E| E B A D C I C| C E A I B D

E| E A C B D I

D| D A I C B E A| A C E D I B

A| A D C I E B

The inverse and basis matrices are

_|_I_A_B_C_D_E

I| I A B C D E

E| E I A B C D AE = I

D| D E I A B C BD = I

C| C D E I A B C^2 = I

B| B C D E I A

A| A B C D E I

1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0

0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0

I = 0 0 1 0 0 0 A = 0 0 0 1 0 0 B = 0 0 0 0 1 0

0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1

0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0

0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0

0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1

0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0

C = 0 0 0 0 0 1 D = 1 0 0 0 0 0 E = 0 1 0 0 0 0

1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0

0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0

0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0

The default table from GAP is

gap> StructureDescription(SmallGroup(6,1));From Group Explorer, we have the generator set <a,b:a

"S3"

gap> MultiplicationTable(SmallGroup(6,1));

_|_I_A_B_C_D_E

[ [ 1, 2, 3, 4, 5, 6 ], I| I A B C D E

[ 2, 1, 4, 3, 6, 5 ], A| A I C B E D

[ 3, 6, 5, 2, 1, 4 ], B| B E D A I C

[ 4, 5, 6, 1, 2, 3 ], C| C D E I A B

[ 5, 4, 1, 6, 3, 2 ], D| D C I E B A

[ 6, 3, 2, 5, 4, 1 ] ] E| E B A D C I

In the multiplication table from Group Explorer, we see letters r for rotate and f for flip.

These tables below have been organized by subgroup, with cosets.

Inverse elements and powers

Matrix Representations

_|_I_A_B_C_D_E

I| I A B C D E A^2 = I 1/A = I

A| A I C B E D B^2 = D B^3 = I 1/B = D

D| D C I E B A C^2 = I 1/C = C

C| C D E I A B D^2 = B D^3 = I 1/D = B

B| B E D A I C E^2 = I 1/E = E

E| E B A D C I

1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0

0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0

I = 0 0 1 0 0 0 A = 0 0 0 0 0 1 B = 0 0 0 0 1 0

0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1

0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0

0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0

0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1

0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0

C = 0 1 0 0 0 0 D = 1 0 0 0 0 0 E = 0 0 0 1 0 0

1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0

0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0

0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0