A package for semigroups and monoids

Version 5.3.7
Released 2024-03-11

This project is maintained by James Mitchell

GAP Package Semigroups

The Semigroups package is a GAP package for semigroups, and monoids. There are particularly efficient methods for finitely presented semigroups and monoids, and for semigroups and monoids consisting of transformations, partial permutations, bipartitions, partitioned binary relations, subsemigroups of regular Rees 0-matrix semigroups, and matrices of various semirings including boolean matrices, matrices over finite fields, and certain tropical matrices.

Semigroups contains efficient methods for creating semigroups, monoids, and inverse semigroups and monoids, calculating their Green’s structure, ideals, size, elements, group of units, small generating sets, testing membership, finding the inverses of a regular element, factorizing elements over the generators, and so on. It is possible to test if a semigroup satisfies a particular property, such as if it is regular, simple, inverse, completely regular, and a large number of further properties.

There are methods for finding presentations for a semigroup, the congruences of a semigroup, the maximal subsemigroups of a finite semigroup, smaller degree partial permutation representations, and the character tables of inverse semigroups. There are functions for producing pictures of the Green’s structure of a semigroup, and for drawing graphical representations of certain types of elements.

The current version of this package is version 5.3.7, released on 2024-03-11. For more information, please refer to the package manual. There is also a and a file.


This package requires GAP version >=4.12.0

The following other GAP packages are needed:

The following additional GAP packages are not required, but suggested:


James Mitchell, Marina Anagnostopoulou-Merkouri, Thomas Breuer, Stuart Burrell, Reinis Cirpons, Tom Conti-Leslie, Joseph Edwards, Attila Egri-Nagy, Luke Elliott, Fernando Flores Brito, Nick Ham, Robert Hancock, Max Horn, Christopher Jefferson, Julius Jonusas, Chinmaya Nagpal, Olexandr Konovalov, Artemis Konstantinidi, Dima V. Pasechnik, Markus Pfeiffer, Christopher Russell, Jack Schmidt, Sergio Siccha, Finn Smith, Ben Spiers, Nicolas Thiéry, Maria Tsalakou, Chris Wensley, Murray Whyte, Wilf A. Wilson, Michael Young, Fabian Zickgraf.


For bug reports, feature requests and suggestions, please use the issue tracker.

How to cite Semigroups

If you are using BibTeX, you can use the following BibTeX entry for the current version of Semigroups:

@manual{ Mitchell2024aa,
         Author = { Mitchell, J. D. and others },
         Month  = { Mar },
         Title  = { Semigroups - GAP package, Version 5.3.7 },
         Doi    = { 10.5281/zenodo.592893 },
         Url    = { },
         Year   = { 2024 }