As you read in the program overview the Group tab is for selecting the group (or structure) you intend on working with. Although this tab has quite a few options and facilities, most of them are for user-defined structures, which most people will not be using at the beginning. We will first discuss the built-in group structures and then worry about the user-defined ones.
When selecting a group structure first select the class of group using
the drop-down menu at the top of the tab.
The supported group structures are
There is really no restriction on n. Theoretically, you can work with S10 or even S100 for that matter. From a programming point of view n (and m) are long integers in Java so they must be less than 263-1. Of course, as the values of n and m grow the program will consume more and more memory. Possibly to the point where all of the computer's memory is used. So from a practical point of view the values of n and m should be reasonable.
The only groups that do not need an associated number are the Quaternions (Q), User-Defined structures and the Advanced Mode. The Quaternions are the noncommutative group of order 8 consisting of {1, -1, i, -i, j, -j, k, -k} with the group operation, i*j = k, j*i = -k, j*k = i, k*j = -i, ... User-defined structures use the operation table that is currently being displayed and the Advanced Mode uses a textual input of the group. We will discuss the syntax of the Advanced Mode later on this page.
User-Defined structures are given by an operation table. User-defined
structures need not be groups. In fact, they need not have any group properties
at all. It seems that these automata are not widely studied but they can
create some very interesting and beautiful images. For example, one small
alteration to the operation table of Z5 produces.
To use a User-Defined structure select the Gn (User-Defined Group)
from the drop-down box and then create the operation table for the
structure at the bottom of the tab.
To change the group's order simply use the Order spinner. User-Defined structures
can up to 200 elements. The structure must also have a name. The name is not
used in any calculation it is simply to help organize the structures. The name
can contain spaces and special characters, except for the comma.
The elements can be any strings that contain letters,
numbers or an underscore. You may not use spaces or special characters. Also,
the names are not case sensitive. That is a and A produce the same element.
The first column of the table represents the elements. As you input the entries
in this first column you will see them appear along the top of the table as well.
For example, the following table is also a representation of Z2.
Note that as you change the name of the structure it also changes in the User-Defined drop-down box as well. You use this drop-down selector to switch between user-defined structures. The group tab can contain any number of user-defined structures. Remember that if you have the Gn (User-Defined Group) selected the structure that is used is the one currently being viewed.
The toolbar contains several facilities to make constructing your table
a little easier.
Advanced Mode allows you to use arbitrary Cartesian products and quotients
of any of the supported groups. To use advanced mode simply select Advanced
from the group drop-down box and type in the group you want to work with. For
example, in the screen shot below we will be using the group Z2.
The syntax for the group structure is fairly easy. We will start with the supported group structures. The Supported Structures & Syntax page will get into more detail on the element syntax of these structures. The only change between the advanced input and the drop-down is that the integers mod n under multiplication is represented by Un. Be a little careful here. In some abstract algebra texts Un is the set of all integers between 1 and n-1 that are relatively prime to n, and the operation is multiplication mod n. The program does not restrict the numbers to be relatively prime to n.
The syntax for these structures is simple, it is the letter followed by the number desired for n. For example,
The program is not case sensitive so z5 and Z5 are identical.
The program can also take arbitrary products and quotients of the supported groups. Products are represented by "X" and quotients are represented by either "/" or "%". The "/" will use left cosets for the calculations and "%" will use right cosets. For example,
Another thing to note is that spaces are ignored, so Z3 X D23 X S7 X Q produces the same group as Z3XD23XS7XQ. When modding out by a subgroup you need to enclose the subgroup generators in < >. When using more than one group generator separate the generators with a single comma. For example,