“Computing with semigroups in GAP” by Wilf Wilson
“GAP in Algebraic Research” summer school
19th to 22nd November 2018
https://github.com/wilfwilson/semigroups-in-algebraic-research
A semigroup is a set with an associative binary operation. Every group is a semigroup, but there are many other kinds of semigroups that are not groups.
In this course I will:
- introduce you to some introductory information about semigroups,
- explain the main ideas behind computation with semigroups,
- describe some of the packages and functionality in GAP for semigroups, and
- set some exercises for you to explore these topics in GAP.
The material for this mini-course is presented via several Jupyter notebooks. This is made possible by the JupyterKernel package for GAP, created by Markus Pfeiffer, which provides the interface between a Jupyter notebook and GAP.
GitHub provides the ability to view pre-rendered Jupyter notebooks in the browser. All of the Jupyter notebooks in this mini-course are contained in this GitHub repository. By clicking the relevant link, you can view a pre-rendered version of the corresponding notebook, right here on GitHub:
- An introduction to computational semigroup theory
- The NumericalSgps package for GAP
- The Smallsemi package for GAP
- The Semigroups package for GAP
The relevant exercises are contained at the bottom of each Jupyter notebook.
It is also possible to run an interactive version of each of these Jupyter notebook in the browser, by using Binder. This will let you edit, execute, and extend the code in each notebook..
This is particularly useful if you are using GAP in Windows, since in this case, unfortunately you will not be able to use the newest version of the Semigroups package for GAP, which contains many new features. However, the downsides of this are that Binder is much slower than your own computer, and this option requires that you become familiar with Jupyter notebooks.
You can load Binder by clicking the badge at the top of any notebook, or by clicking the following link: