Thank you David, Bill, Jim and everyone in the MSRI program for your help.
Many of the ideas for this project come from Abstract Algebra by John B. Fraleigh.
There are eight possible permutations of vertices of the square; four rotations, two mirror images, and two diagonal flips:

These eight form a group under permutation multiplication. Let's give each one a color:

![]() |
| RotateSquare.java |
You can permute the square in the eight possible ways and perform permutation multiplication by clicking on successive buttons to see which element results. Note: this group is not abelian, clicking is not commutative.
Consider the subgroup {R0, R1, R2, R3}, and its only cosets {R0, R1, R2, R3} and {M1, M2, D1, D2} (which are easily computed using the Rotate Square Applet). The multiplication table reveals that this subgroup is normal.

Consider the subgroup {R0, M2}, and its left cosets {R0, M2}, {R1, D2}, {R2, M1}, {R3, D1}. If we rearrange the multiplication table grouping elements of the same coset we get:

Now if we give each of the four cosets a particular color, we see that the subgroup {R0, M2} is not normal. If it were, this multiplication table would reveal a group structure.

Consider the subgroup {R0, R2}, and its left cosets {R0, R2}, {R1, R3}, {M1, M2}, {D1, D2}. Rearranging the multiplication table by grouping elements of the same coset we get the following. Does it look normal?

The subgroup {R0, R2} is normal. Coloring according to coset further reveals group structure with each coset an element of the group.
