Konieczny

template<typename TElementType, typename TTraits = KoniecznyTraits<TElementType>>
class Konieczny : public libsemigroups::Runner, private libsemigroups::detail::BruidhinnTraits<TElementType>

Defined in konieczny.hpp.

The class template Konieczny implements Konieczny’s algorithm as described in the article ‘Green’s equivalences in finite semigroups of binary relations’ by Janusz Konieczny; see here for more details. This algorithm is similar to that of Lallement and McFadden; see this paper for more details. It differs in being applicable to subsemigroups of a non-regular semigroup, though is essentially the same algorithm for elements which happen to be regular.

A Konieczny instance is defined by a generating set, and the main member function is Konieczny::run, which implements Konieczny’s Algorithm. If Konieczny::run is invoked and Konieczny::finished returns true, then the size, partial order of \(\mathscr{D}\)-classes, and complete frames for each \(\mathscr{D}\)-class are known.

See

KoniecznyTraits and DClass

Template Parameters
  • TElementType: the type of the elements of the semigroup.

  • TTraits: the type of a traits class with the requirements of libsemigroups::KoniecznyTraits.

Stateless public types