Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

1 The Semigroups package
 1.1 Introduction
 1.2 Overview

1 The Semigroups package

1.1 Introduction

This is the manual for the Semigroups package for GAP version 3.0.8. Semigroups 3.0.8 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.0.8 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 [DMW16]), 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 (19.1-1) and WriteGenerators (19.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, then report this using the issue tracker.

1.2 Overview

This manual is organised as follows:

Part I: generators

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).

Part II: semigroups and ideals

functions and operations for creating semigroups, monoids, and their ideals, in general, and various options, are described in Chapters 6 and 7.

Part III: standard examples and constructions

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.

Part IV: further classes of semigroups and monoids

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.

Part V: the structure of a semigroup or monoid

the functionality of the Semigroups package for determining various structural properties of a given semigroup or monoid are described in Chapters 12, 13, and 14. Attributes and properties specific to inverse semigroups are described in Chapter 15.

Part VI: congruences, quotients, and homomorphisms

methods for creating and manipulating congruences and homomorphisms are described by Chapters 16 and 17.

Part VII: utilities and helper functions

functions for reading and writing semigroups and their elements, and for visualising semigroups, and some of their elements, can be found in Chapters 18 and 19.

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Bib Ind

generated by GAPDoc2HTML