This is the manual for the Semigroups package for GAP version 3.4.0. Semigroups 3.4.0 is a distant descendant of the Monoid package for GAP 3 by Goetz Pfeiffer, Steve A. Linton, Edmund F. Robertson, and Nik Ruskuc.
Semigroups 3.4.0 contains efficient methods for creating semigroups, monoids, inverse semigroups and their ideals, calculating their Green's structure, size, elements, group of units, minimal ideal, and testing membership, finding the inverses of a regular element, and factorizing elements over the generators, and much more; see below for more details.
There are methods for finding: congruences of semigroups, the normalizer of a semigroup in a permutation group (using the method from [ABMN10]), the maximal subsemigroups of a finite semigroup (based on [GGR68] and described in [DMW18]), smaller degree partial permutation representations (based on [Sch92]) and the character table of an inverse semigroup. There are functions for producing pictures of the Green's structure of a semigroup (inspired by sgpviz), and for drawing graphical representations of the elements of certain semigroups.
Many standard examples of semigroups and classes of semigroups are provided; see Section 8. Semigroups also provides functions to read and write collections of elements of a semigroup to a file; see ReadGenerators
(20.1-1) and WriteGenerators
(20.1-2).
There are functions in Semigroups to define and manipulate free inverse semigroups and free bands; this part of the package was written by Julius JonuĊĦas; see Chapters 10.
From Version 3.0.0, Semigroups includes a copy of the libsemigroups C++ library which contains an implementation of the Froidure-Pin Algorithm.
Minor note of caution: Semigroups contains different methods for some GAP library functions, and so you might notice that GAP behaves differently when Semigroups is loaded. For more details about semigroups in GAP or Green's relations in particular, see Reference: Semigroups or Reference: Green's Relations.
If you find a bug or an issue with the package, please visit the issue tracker.
This manual is organised as follows:
the different types of generators that are introduced in Semigroups are described in Chapters 3, 4, and 5. These include Bipartition
(3.2-1), PBR
(4.2-1), and Matrix
(5.1-5), which supplement those already defined in the GAP library, such as Transformation
(Reference: Transformation for an image list) or PartialPerm
(Reference: PartialPerm for a domain and image).
functions and operations for creating semigroups, monoids, and their ideals, in general, and various options, are described in Chapters 6 and 7.
standard examples of semigroups, such as FullBooleanMatMonoid
(8.6-1) or UniformBlockBijectionMonoid
(8.3-8), are described in Chapter 8, and standard constructions, such as TrivialSemigroup
(9.1-1), RightZeroSemigroup
(9.1-5), are described in Chapter 9.
free objects in the categories of inverse semigroups, and bands, are described in Chapter 10, and graph inverse semigroups, which are a generalisation of polycyclic monoids, are described in Chapter 11.
the functionality of the Semigroups package for determining various structural properties of a given semigroup or monoid are described in Chapters 13, 14, and 15. Attributes and properties specific to inverse semigroups are described in Chapter 16.
methods for creating and manipulating congruences and homomorphisms are described by Chapters 17 and 18.
functions for reading and writing semigroups and their elements, and for visualising semigroups, and some of their elements, can be found in Chapters 19 and 20.
generated by GAPDoc2HTML