libsemigroups - Version 2.0.2¶
C++ library for semigroups and monoids¶
libsemigroups is a C++14 library containing implementations of several
algorithms for computing finite and finitely presented semigroups.
the Todd-Coxeter algorithm for finitely presented semigroups and monoids;
the Knuth-Bendix algorithm for finitely presented semigroups and monoids;
the Schreier-Sims algorithm for permutation groups;
an implementation of the algorithm for solving the word problem for small overlap monoids, and for computing normal forms in such monoids; see Kambites [Kam09b], Kambites [Kam09a], and Mitchell-Tsalakou [MT21].
The main classes in
libsemigroups are named after the algorithms they
implement; see, for example,
libsemigroups uses: HPCombi which uses the SSE and AVX instruction sets
for very fast manipulation of transformations, partial permutations,
permutations, and boolean matrices of small size; catch for tests;
fmt for reporting; and eigen for some linear algebra computations.
How to use it¶
See the installation instructions:
libsemigroups is used in the Semigroups package for GAP, and the
development version is available on github. There were python bindings
(for Python 2 and 3) for earlier versions of
libsemigroups, and there will
be in the future too, but presently they don’t work.
For the authors, contributors, and acknowledgements and a comparison with Semigroupe by Jean-Eric Pin see below.