# Groups

Somewhere back in school we learned that 5 * 6 can be equivalent to 4, which was the first time we started to question the rules of calculus we learned so far. It was hard to interpret a piece of information like this. What does this mean? When could something so controversial be useful?

When it comes to a group, it may be more helpful to think of its elements as operations that we can perform sequentially, so that each one is responsible for changing one known state into another. If we are able to enumerate the states and we know their intrinsic properties, then we can see which transformations need to happen in which order to switch from one state to another.

The sequence ab means that operation a is followed by operation b. If ab = ba, then the order in which the operations are performed doesn't matter as they result in the same state. If ab = b and bc = d, then abc = d. This allows us to treat complex sequences of operations as if they were a single state.

If we had abcd = a, then we have discovered a way to return back to where we started. This, for instance, can be used to create an infinite animation that goes between various states just to return to its starting point. Many web designers have already used this technique, but probably never thought about it as something subjected to the rules of a group.

If we consider a rectangle having vertices numbered from 1 to 4, we can keep track of their position and orientation during transformations as we flip the rectangle vertically (around its bottom side), then horizontally (around its right side), then once again vertically (around its top side) and once again horizontally (around its left side). We have successfully reached our initial position, so the operations we performed might have been elements of a group.

Thinking in terms of groups is beneficial in other situations as well. Sometimes we look for symmetry or shape similarity. Sometimes we need to distribute operations across machines and unite their result at the end. Sometimes we need to reach milestones in a particular order to achieve an end goal, where a pending operation might cause a delay in the execution of subsequent ones. Sometimes we need to see how the actions interact with each other. In all these cases, knowing about groups can be valuable.