SemigroupViz

Visualization Tools for Semigroups

Version 1.0.0
Released 2019-03-21

This project is maintained by Nathan Carter

The Semigroup Visualization Package

Purpose

This package adds visualization tools for semigroups. It is built on the JupyterViz package, which means that the visualizations it creates can be used either in Jupyter notebooks or from the GAP REPL.

Supported Visualizations

There are two supported visualization of a semigroup:

  1. Egg-box diagrams
  2. Cayley graphs

Egg-box Diagrams

Let S be a semigroup and make the following definitions, which introduce Green’s Relations, each of which is an equivalence relation on S.

Thus Green’s relations are the L, R, J, D, and H. They give us the following situation:

Hence the name “egg box” (or “egg carton”) which is also a grid of cells.

An egg-carton

For example, if S is the semigroup of non-invertible transformations generated by the six idempotents of degree 3 and rank 2 (the details of which are not important here), then its egg-box diagram looks like the following.

Example egg-box diagram

It has the following properties.

Example egg-box diagram with components labeled

This package produces diagrams like the one shown above (without the colorful explanations). Since semigroups can be very large, it also permits you to show just a portion of the diagram, and expand/contract certain portions as needed for inspection.

Cayley graphs

A semigroup acts on itself by right multiplication if we associate with any element s in the semigroup a function that maps any t to ts (right multiplication). If the semigroup is a group, such functions are permutations, but in general they are not.

Such functions can be graphed by defining a binary relation R from such a function so that aRb if and only if as=b. The vertices of the graph will be the elements of the semigroup and its edges will be given by R.

We can define such an R for each of the generators of a semigroup and graph each as a set of edges with a different color, to distinguish them, all on the same graph. This tends to be quite cluttered, so we might choose some subset of the generators, just enough to make the graph connected.

Here are some example results.

Example Cayley graph 21 vertices

Example Cayley graph 15 vertices

Example Cayley graph 27 vertices

Usage

The package does not need to be compiled.

See the manual on the package website, which contains other usage examples and full documentation.

Maintainer

This GAP package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.