This page contains documentation related to the implementation of Konieczny's algorithm [40] in libsemigroups
; this is similar to the algorithm of Lallement-McFadden [42] .
The purpose of Konieczny's algorithm is to determine the elements and structure of a semigroup or monoid generated by a set of generators from a finite over-monoid which acts on sets on the left and on the right in an appropriate way. The prototypical example, as described by Konieczny, is the monoid of boolean matrices. Adapters for Konieczny are included for BMat8, BMat, Transf, and PPerm. These final three types currently have a maximum degree of 64 when used in Konieczny.
BMat8({{0, 1, 0, 0}, {1, 0, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}}),
BMat8({{0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}, {1, 0, 0, 0}}),
BMat8({{1, 0, 0, 0}, {1, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}}),
BMat8({{0, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}})});
S.size();
S.number_of_idempotents();
Fast boolean matrices of dimension up to 8 x 8.
Definition bmat8.hpp:74
enable_if_is_same< Return, Blocks > make(Container const &cont)
Check the arguments, construct a Blocks object, and check it.
Definition bipart.hpp:798
Namespace for everything in the libsemigroups library.
Definition action.hpp:44