Chapter2.mws

Abstract Algebra with Maple
Chapter 2: Introduction to Groups

by Alec Mihailovs

2: Introduction to Groups

Cyclic and Dihedral Groups

In this section we will study two series of groups, cyclic and dihedral, represented as rotations and symmetries of regular polygons. It is convenient to enumerate all the vertices of a regular n -gon counterclockwise from 1 to n . Now, if a symmetry moves vertex 1 to a[1] , vertex 2 to a[2] , and so on, ..., vertex n to a[n] , then we can denote it [ a[1] , a[2] , ..., a[n] ]. For example, rotation of 360/ n degrees moves vertex 1 to 2, vertex 2 to 3, and so on, ..., vertex n to 1, so it can be denoted as [2, 3, ..., n , 1], which can be represented in Maple as [$2.. n ,1]. The identity (i.e. no change) will be represented as [1, 2, ..., n], or [$1..n] in Maple notation. See Maple help item on "dollar", explaining that notation. Now we can define cyclic and dihedral groups as follows:

> cyclic:=n->[seq([$i..n,$1..i-1],i=1..n)]:

> dihedral:=n->[op(cyclic(n)),seq([n+1-j$j=i..n,n+1-j$j=1..i-1],i=1..n)]:

Cyclic groups are defined for all positive integers n, but dihedral groups are defined here only for n not less than 3:

> dihedral(2);

[[1, 2], [2, 1], [2, 1], [1, 2]]

Here are correctly defined groups:

> cyclic(3);

[[1, 2, 3], [2, 3, 1], [3, 1, 2]]

> dihedral(4);

[[1, 2, 3, 4], [2, 3, 4, 1], [3, 4, 1, 2], [4, 1, 2...

In this notation, the last element of D[4] transfers vertex 1 to itself, vertex 2 to the position of vertex 4, vertex 3 to itself, and vertex 4 to the position of vertex 2, so it is the reflection across the diagonal connecting 1 and 3, see the picture below. Permutation notation introduced above, is rather long. To make notation easier, we will denote elements just by their ordinal numbers in the lists of the group elements, so the identity will always be the number 1, and the last element of D[4] will be 8.

In this new notation, to find the inverse elements, we can use the following procedure:

> inv:=proc(a,g) local i,v,b,k; k:=nops(g[a]); b:=[0$k]; for i to k do b[g[a][i]]:=i od; member(b,g,'v'); v end:

For example,

> inv(5,cyclic(12));

9

> inv(5,dihedral(4));

5

If we want to see the graphical representations of kr elements of g , starting from m , displaying k elements in each row, in r rows, we can use the following procedure:

> with(plots): with(plottools):

Warning, the name changecoords has been redefined

Warning, the name arrow has been redefined

> Grid:=proc(g,m,k,r) local ngon,ngons1,ngons2,n,a,b,i,j1,j2,p,ar,l,ngonlabels,text1,text2,textar;
n:=nops(g[1]);
ngon := (a,b) -> [seq([ a+cos(2*Pi*i/n), b+sin(2*Pi*i/n) ], i = 1..n)]:
ngons1:=seq(seq(ngon(10*j1,-4*j2),j1=1..k),j2=1..r);
ngons2:=seq(seq(ngon(10*j1+4.5,-4*j2),j1=1..k),j2=1..r);
p:=polygonplot({ngons1,ngons2},axes=NONE,scaling=CONSTRAINED,color=aquamarine):
ar:=seq(seq(arrow([10*j1+1.6,-4*j2],vector([1.2,0]),.05,.3,.3,color=blue),j1=1..k),j2=1..r):
ngonlabels:=(a,b,l)->seq([ a+1.4*cos(2*Pi*i/n), b+1.4*sin(2*Pi*i/n),l[i+1] ], i = 0..n-1):
text1:=textplot([seq(seq(ngonlabels(10*j1,-4*j2,[$1..n]),j1=1..k),j2=1..r)],color=red):
text2:=textplot([seq(seq(ngonlabels(10*j1+4.5,-4*j2,g[inv(m-1+j1+k*(j2-1),g)]),j1=1..k),j2=1..r)],color=red):
textar:=textplot([seq(seq([10*j1+2.2,-4*j2+.5,m-1+j1+k*(j2-1)],j1=1..k),j2=1..r)],color=blue):
display(p,ar,text1,text2,textar) end:

Here is the list of elements of D[4] :

> Grid(dihedral(4),1,2,4);

[Maple Plot]

Another example, the list of elements of D[10] :

> Grid(dihedral(10),1,2,5);Grid(dihedral(10),11,2,5);

[Maple Plot]

[Maple Plot]

Also, we can use this procedure to display only one element. For example, 11th element in D[20] :

> Grid(dihedral(20),11,1,1);

[Maple Plot]

If we want to see its representation as a permutation, it can be done as follows:

> dihedral(20)[11];

[11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4...

Cyclic group C[n] has n elements and dihedral group D[n] has 2*n elements. Using the nops command can test it:

> nops(cyclic(12));

12

> nops(dihedral(100));

200

Notice, that all elements of cyclic groups are rotations. The first n elements of dihedral ( n ) are rotations, the other n are reflections.

To multiply elements, we can use the following procedure:

> mult:=proc(a,b,g) local i,v; member([seq(g[a][g[b][i]],i=1..nops(g[a]))],g,'v');v end:

For example,

> mult(3,7,cyclic(12));

9

> mult(3,7,dihedral(4));

5

> mult(7,3,dihedral(4));

5

Cayley Tables

The following procedure displays the Cayley table of a group:

> cayley:=g->Matrix(nops(g),(i,j)->mult(i,j,g)):

For example,

> cayley(dihedral(4));

_rtable[12445024]

It is easy to see that the product of two reflections (i.e. numbers from 5 to 8) is a rotation, and the product of a reflection and a rotation is a rotation. Another evident thing is that reflections are inverse to themselves. Notice that the matrix is not symmetric because group D[4] is not Abelian. The following procedure is checking whether a group is Abelian:

> isAbelian:=g->IsMatrixShape(cayley(g),symmetric):

> isAbelian(dihedral(4));

false

For cyclic groups Cayley tables are very symmetric:

> cayley(cyclic(12));

_rtable[12436992]

It is a placeholder. By default, Maple shows them for matrices larger than 10x10. To work with the matrix, one should right-click on the placeholder and use the context menu. In case we want to see the matrix in the worksheet instead of that, we should increase the default size of rtable:

> interface(rtablesize=25):

> %;

_rtable[12436992]

Right-clicking still shows the same context menu.

> isAbelian(cyclic(12));

true

Operations

If we need to do a lot of calculations in some specific group, D[4] , for instance, we can define special multiplication and inverse element operations for it:

> `&*`:=(a,b)->mult(a,b,Group):

Before using it, we should specify the group:

> Group:=dihedral(4):

> 3&*4;

2

Similarly for the inverse element,

> `&-`:=a->inv(a,Group):

> &-2;

4

> 2&*5&*&-2;

7

One has to be very careful with that though, since the answers depend on the group, and for calculations in other groups we should redefine the Group .

> Group:=cyclic(12):

> 3&*4;

6

> 2&*5&*&-2;

5

>

Exercises