A Microworld for Elementary Group Theory

Kenneth M. Levasseur
(LEVASSEUK@ASPEN.UML.EDU)
Department of Mathematical Sciences
University of Massachusetts Lowell
Lowell, MA  01854

Mathematica in Education
Vol. 3 No.4
Copyright 1994
TELOS/Springer-Verlag

Abstract

A microworld for  elementary group theory can be used by students to explore the various groups that are introduced in class and to make solid connections with the theoretical aspects of their course.  The microworld is contained in a {\it Mathematica \/} package.

Introduction

In Mindstorms  [Papert  1980] microworlds are described as "incubators for knowledge."  A microworld is a set of tools that lets the user explore a subject in order to get the kind of intuition that is not provided by passive listening or reading on the s
ubject.  The user initiates the explorations and can proceed in endless directions.  In this paper, a microworld for elementary group theory is described and some of the possible paths are traveled.

Most texts in introductory abstract algebra introduce the student to group theory and include numerous examples.  The microworld described herein proposes to augment such a text with the microworld experience.  I should stress here that microworld time is
 a supplement to and not a substitute for class time.  I rarely use this package in the classroom and when I do, it is in situations where the computer can be used to the class' advantage.  One such example is in the exploration of a nonabelian group.  An
other is  in the discussion of how the groups of units modulo n, $U_n$, can be classified.  These activities are described below.

In order to use the group microworld, all that you must do is load the package Group.m.  The package prints a list objects it contains.  In what follows, some of their capabilities will be discussed.  This package was developed using Version 2.1.

SetDirectory["/Zeppo/MathInEd/Volumes/Vol3/Vol.3_No.4/Levasseur"]

<<Group`

Groupoids and Groups

Groupoids

The study of abstract algebra includes group theory.    The entities from which groups are drawn are commonly called groupoids.  A groupoid consists of a set, D, and a binary operation on D.  If the operation is denoted by  *, and a and b take on values f
rom D it is necessary that a*b is also in D. The set  D is called the domain of the groupoid.  The microworld described here is one of finite groupoids; i. e., finite domains.

An example of a groupoid is the set {-1, 0, 1} with multiplication.  Notice that the same set with addition is not a groupoid since 1 + 1 not in the set.   In the terminology of algebra, {-1,0, 1} is closed under multiplication and not closed under additi
on.

D is closed under * if and only if  a*b is in D for all a, b in D.

The Cayley Table for an operation on a finite set is a square array that summarizes the outcome of operating on every pair of values from the domain.  For example,the Cayley Table for multiplication on {-1, 0, 1} is

In general, the entry in the row labeled a and column labeled b is a*b.

I've implemented a groupoid data structure simply by defining a groupoid to be an expession of the form  groupoid[D,T] where D is a list that represents the domain of the groupoid and T is a two dimensional list that contains the Cayley table of the opera
tion on D.  For example, the groupoid above is

To make groupoid definition easier, the function MakeGroupoid is provided.  The expession above is the output from MakeGroupoid[{-1,0,1},Times].  MakeGroupoid does check for closure and indicates when a groupoid is not produced.  For example,

MakeGroupoid[{-1,0,1},Plus]

Many standard groupoids have been defined in terms of MakeGroupoid.  For examples the integers modulo n with mod n addition is created by referencing Z[n].

?Z

Z[3]

The domain and Cayley table of a groupoid can be viewed seperately

Domain[Z[3]]

ShowCayley[Z[3]]

Groups

As every student of abstract algebra knows, a group is a groupoid with domain G and operation * having the following properties.
(1)  For all values of a, b, c in the domain G,  (a * b) * c  = a * (b * c),
(2)  There exists an identity element, e, in G such that  a * e = e * a = a for all a in G.
(3)  Every element of G has an inverse in G; i. e., if a is in G, there exists a' in G such that
								a * a' = a' * a = e. 
								
The package Group.m does not explicitly classify groupoids as groups or nongroups, but the package can perform the needed tests with the exception of associativity, which only works in some cases.

G1=MakeGroupoid[{-1,1},Times]

AssociativeQ prints the operation of the groupoid first and then indicates, if possible, whether the operation of the groupoid is associative.  In order to efficiently check associativity, the Light Test [Lidl 1988] can be can be used, but the test has no
t been implemented in the current version of the package.  For this reason, AssociativeQ will not always give an answer.

AssociativeQ[G1]

IdentityQ[G1]

identity[G1]

Map[{#,GroupInverse[#,G1]}&, Domain[G1]]

AbelianQ[G1]

Therefore, G1 is an abelian group.  

Some operations like modular addition are well know to be associative and I have toyed with the idea of adding this fact into the package.  I've rejected this idea because I feel that the microworld would turn into a group theory data base.

AssociativeQ[Z[3]]

Demonstrations

Visualization

One of the original objectives of this package is to provide students with some visual aids in studying groups.  This is provided by the function DensityTable.

?MixedDivisors

G2=MixedDivisors[30]; Domain[G2]
ShowCayley[G2]

Although the Cayley Table provides us with a visualization of this groupoid, a density table is even more striking.  The function DensityTable assigns each element of the domain a gray level and displays the body of the groupoid's Cayley Table using these
 shades of gray.

DensityTable[G2]

This group is isomorphic to the more familiar group Z23  which can be created using DirectProduct. A comparison of density tables hints at that fact.

G3=DirectProduct[DirectProduct[Z[2],Z[2]],Z[2]];
DensityTable[G3]

These two density tables are different in their structure and do not prove that the groups are isomorphic.  Can you see how they are different?

Subgroups

In order for a nonempty subset of a finite group to be a subgroup, it is necessary and sufficient for the set to be closed with respect to the operation of the group .  The function ClosedQ tests closure.

ClosedQ[{0,1,2},Z[6]]

ClosedQ[{0,2,4},Z[6]]

The  cyclic subgoup generated by an element of a group can be identified using Powers.

?Powers

Powers[8,Z[12]]

Recall that in an additive group, such as the integers mod 12, powers really mean multiples.  An alternate approach is to use GenerateGroupoid.

GenerateGroupoid[{8},operation[Z[12]]]//Domain

GenerateGroupoid can be used in a more general way to generate groupoids with only a set and an operation.

?GenerateGroupoid

G4=GenerateGroupoid[{10,18},Mod[#1+#2,40]&];
Domain[G4]

A comparison of Cayley tables of this groupoid and that of Z[20] using DensityTable shows that the two are isomorphic.

An in-class session: dihedral groups

Goal: to explore a nonabelian group.  The Dihedral groups  would have been introduced prior to this session. For n $n \geq 3$, $D_n$ is the group of symmetries of the regular n-gon.  Therefore, D4  is the group of symmetries of the square.

G5=Dihedral[4]; Domain[G5]

Assuming the corners of a square are numbered clockwise from 1 to 4, each list in the domain corresponds to a permutation of the corners.  For example, the list  {2, 3, 4, 1} corresponds to a 90° rotation and  {3, 2, 1, 4} corresponds to a reflection alon
g the line through corners 2 and 4.

ShowCayley[G5]

It's difficult to read this table.  If we index the elements in the domain of Dihedral[4] in the order that they appear in the domain, you get a simpler table to read.  It must be emphasized that each number listed below represents a permutation.

ShowCayley[G5d=Digitize[G5,#&]]

AbelianQ[G5d]

Staying with permutations in G is better for illustrating individual results:

GroupInverse[{2,3,4,1},G5]

Let's generate a subgroup.

H=Domain[GenerateGroupoid[{{2,1,4,3}},operation[G5]]]

A left coset of subgroup H of G is a set of the form a*H = {a*h | h is in H}.  Right cosets are defined similarly.  For example, H = {0, 10} is a subgroup of the integers mod 20.  The left coset 12 + H adds 12 to each element of H.

?LeftCoset

LeftCoset[12,{0,10},Z[20]]

Notice that 2 + H = 12 + H.

LeftCoset[12,{0,10},Z[20]]==LeftCoset[2,{0,10},Z[20]]

A subgroup is normal if every left coset is also a right coset.  We now return to the subroup H of $D_5$, which is G5.  In this case, H is not normal

r=LeftCosets[H,G5]

l=RightCosets[H,G5]

r==l

The group Dihedral[4] does have a normal subgroup with two elements.

K=Domain[GenerateGroupoid[{{3,4,1,2}},operation[G5]]]

LeftCosets[K,G5]==RightCosets[K,G5]

Recall that the significance of normality it that if K is a normal subgroup of G, then the set of cosets (left or right) of K form a group, "G mod K," using the underlying operation on G.  FactorGroup will create such a factor group.   It is somewhat diff
icult to display some factor groups, but some are quite effective.  For example here is the factor group Z[16] mod {0,4,8,12}.  For the Cayley table, the cosets are displayed in column form, as opposed to the usual set notation.

G6=FactorGroup[Z[16],{0,4,8,12}];
Domain[G6]

ShowCayley[G6]

An in-class session: groups of units mod n

The goal in this classroom session is to classify the groups $U_n$, $n \geq 2$.  This class would occur at a point in the semester when the concept of isomorphic groups has already been discussed and the groups $Z_4$ and $Z_2 \times Z_2$ have been compare
d.  The students know that this exhausts the possible groups of order four.  Not  much else has been done cataloging the finite groups of other orders.  The Fundamental Theorem of Finitely Generated Abelian Groups has not been stated yet.   Finally, they 
have seen the EulerPhi function, and know that U[n] contains EulerPhi[n] elements.

ShowCayley[U[5]]

What group is U[4] isomorphic to?  How about U[10]?

ShowCayley[U[10]]

Conjecture?  The students are set up for a surprise:

ShowCayley[U[8]]

What's going on?  The students are now asked to classify U[n] according to the value of n.   The following  Mathematica  function comes in handy.  For small positive integers n, it identifies those integers k for which EulerPhi[k] is equal to n.  The uppe
r range of 200 may have to be changed .

PhiIsN[n_]:=
      Select[Range[1,200],(n==EulerPhi[#])&]

PhiIsN[4]

PhiIsN[8]

A second question that can be posed at this point is whether there is a formula for EulerPhi.

Conclusion

For the most part, the standard introductory course in abstract algebra can be conducted in the traditional classroom, but in a few well-chosen points in the curriculum Mathematica  can liven up a presentation and also give students a useful tool for expe
rimentation.

One of the difficult aspects to designing this package was to know when to stop adding functions.  The intention was to avoid requiring that the students learn how to program in Mathematica.   However, it is hoped that when the programs capabilites are di
splayed though this package, further independent study would follow.  This has been the case for several of my students.

References

Papert, Seymour, 1980, Mindstorms, Basic Books.

Lidl, R., and G. Pilz, 1988, Applied Abstract Algebra, Springer-Verlag.

Biography

Ken Levasseur obained a Ph. D. in 1980 from the University of Rhode Island in approximation theory.  Since that time he has been at the University of Massachusetts Lowell.  His main research interests are currently discrete mathematics and applied algebra