We shall present two packages for computing semigroups. The first one, called SEMIGROUPE, is developed by the author in C. It is based on algorithms by J.E. Pin and V. Froidure. Its specificity is to be able to deal with semigroups which are not necessarily defined as transformation semigroups. In SEMIGROUPE, one can compute semigroups of matrices with coefficients in some commutative semirings: Boolean semiring, Nmax, Nmin and (N, +, x). More can be easily implemented.
The functionalities already implemented are (given the generators of the semigroup):
and so on. The program is very fast.
The second software is a package (called MONOID) of the GAP project. GAP stands for Groups, Algorithms and Programming. GAP is a system for computational discrete algebra with particular emphasis on computational group theory. The system is distributed freely under `copyleft' conditions. The development of GAP was started at Lehrstuhl D für Mathematik, RWTH Aachen in 1986. It has been transferred in 1997 to St. Andrews (see this page).
MONOID was developed by Steve Linton, Goetz Pfeiffer, Nik Ruskuc, Edmund Robertson. It is a package of GAP functions for transformation monoids and related objects. It contains functions that deal with (finite) transformations, transformation monoids, finite binary relations, and actions of monoids on various sorts of sets. MONOID provides functions that determine the size of a transformation monoid M, can list the elements of M or decide membership of any transformation of degree n in M. Moreover, the Green class structure of M can be determined.
Finally, we shall give an overview of the GAP projects in progress in our laboratory (LIAFA).