3.1. Groups by generators

Every finite group is isomorphic to some subgroup of a symmetric group of permutations (Cayley theorem). Hence, provided we can find a permutation representation, working with groups of permutations is generic.

Groups of permutations can be extremely large. The order (number of elements) of the group S_n of permutations of n points is n!. In general we will be interested in (still very large) subgroups of a given S_n. For example, the number of permutations of the 48 moving squares of a Rubik's cube is

In[67]:=

48 !//N

Out[67]=

1.24139*10^61

On the other hand, the number of allowed permutations of a "clean" cube (forming a subgroup) turns out to be, as we will see below,

In[68]:=

43252003274489856000//N

Out[68]=

4.3252*10^19

However we can describe the whole subgroup with just six permutations, corresponding to each rotation of the six faces of the cube. The subgroup can be constructed by repeated multiplication of the six "generators". We shall describe groups using generating sets, expressions with head GenSet where the elements are the generators. By convention, the identity permutation never belongs to a generating set. For example the group S_4can be generated with just 2 permutations using Diminos's algorithm:

In[69]:=

Dimino[GenSet[Perm[{2, 1, 3, 4}], Perm[{4, 1, 2, 3}]]]

Out[69]=

And actually any S_n can be generated with just 2 permutations. For example S_6:

In[70]:=

Length[Dimino[GenSet[Cycles[{1, 2}], Cycles[{1, 2, 3, 4, 5, 6}]]]]

Out[70]=

720

A group generated by a single permutation is called a cyclic group:

In[71]:=

group = Dimino[GenSet[Images[{2, 3, 4, 5, 1}]]]

Out[71]=

Group[Images[{1, 2, 3, 4, 5}], Images[{2, 3, 4, 5, 1}], Images[{3, 4, 5, 1, 2}], Images[{4, 5, 1, 2, 3}], Images[{5, 1, 2, 3, 4}]]

We can form left and right cosets:

In[72]:=

leftcoset = Permute[Images[{1, 3, 2, 5, 4}], group]

Out[72]=

Coset[Images[{1, 3, 2, 5, 4}], Images[{2, 4, 3, 1, 5}], Images[{3, 5, 4, 2, 1}], Images[{4, 1, 5, 3, 2}], Images[{5, 2, 1, 4, 3}]]

In[73]:=

rightcoset = Permute[group, Images[{1, 3, 2, 5, 4}]]

Out[73]=

Coset[Images[{1, 3, 2, 5, 4}], Images[{3, 2, 5, 4, 1}], Images[{2, 5, 4, 1, 3}], Images[{5, 4, 1, 3, 2}], Images[{4, 1, 3, 2, 5}]]

If the permutation already belongs to the group, the coset is actually the original group:

In[74]:=

Permute[Images[{4, 5, 1, 2, 3}], group]

Out[74]=

Group[Images[{1, 2, 3, 4, 5}], Images[{2, 3, 4, 5, 1}], Images[{3, 4, 5, 1, 2}], Images[{4, 5, 1, 2, 3}], Images[{5, 1, 2, 3, 4}]]

GenSet                Head for a generating set
Group                
Head for a group of permutations
Coset                Head for a coset
Dimino                
Algorithm to construct a group of permutations from one of its generating sets

Generating Sets.


Created by Mathematica  (May 16, 2008) Valid XHTML 1.1!