### Tinygroups Package in Maple

14Aug08

One of the staples of the mathematics undergrad curriculum is “abstract algebra,” where you talk about things at a high level of generality with the hopes of applying them to a lot of different types of objects. The fundamental example of this is the notion of a group. Roughly speaking, a group consists of a set G and binary operation (which I will write as *) that combines two elements of G into a single element satisfying

1. for any three elements a, b, c of G, (a*b)*c is the same as a*(b*c)
2. for any elements a, b of G there is an element c of G such that a*c = b
3. there is a special element e such that for all elements a of G, we have a*e = a = e*a

The number of elements of G is called its order. One example of a group is the set of “symmetries of a hexagon” under the composition operator. There are 12 such symmetries: six reflections, five rotations, and the “trivial” symmetry which maps each vertex of the hexagon back to itself, which is the special element e. For example, if a denoted the symmetry “rotate clockwise by 120 degrees,” then a*a would be “rotate clockwise by 240 degrees,” a*a*a would be the trivial symmetry, and a*a*a*a would be equal to a.

Today I made a small package for the Maple computer algebra system, called tinygroups, which lists all of the different groups of order at most 60. I made it in order to try to find some “extreme examples” for some of my research on Steiner trees and linear programming. Capabilities far exceeding this package are available for other computer algebra systems (SAGE, GAP, MAGMA) but not for Maple. Since I use Maple for the linear programming research, and since as a Canadian attending the University of Waterloo I have an irrational affection for Maple, it made sense to create the package.

The definition of a group, via the three properties above, is axiomatic (it specifies rules but doesn’t tell you anything explicit about how you could contstruct a group). A natural question is then, is there some construction mechanism for groups? If you are a bit more precise, this question actually leads to one of the most onerous theorems ever proven, the classification theorem of finite simple groups. Its proof is gigantic, consisting of a patchwork of articles and unpublished work by many mathematicians, with an estimated total length of thousands of pages. Another astounding number is that in this proof, a particular group of order 808017424794512875886459904961710757005754368000000000 plays a central role. I’m tempted to close with a cheesy remark like “you can count on it!” but instead, I think I will go for a swim…