Sims1

template<typename T>
class Sims1

Defined in sims1.hpp.

On this page we describe the functionality relating to the small index congruence algorithm. The algorithm implemented by this class template is essentially the low index subgroup algorithm for finitely presented groups described in Section 5.6 of Computation with Finitely Presented Groups by C. Sims. The low index subgroups algorithm was adapted for semigroups and monoids by J. D. Mitchell and M. Tsalakou.

The purpose of this class is to provide the functions cbegin and cend, which permit iterating through the one-sided congruences of a semigroup or monoid defined by a presentation containing (a possibly empty) set of pairs and with at most a given number of classes. An iterator returned by cbegin points at an ActionDigraph instance containing the action of the semigroup or monoid on the classes of a congruence.

Member types

digraph_type

The type of the associated ActionDigraph objects.

letter_type

Type for letters in the underlying presentation.

node_type

Type for the nodes in the associated ActionDigraph objects.

size_type

The size_type of the associated ActionDigraph objects.

Constructors

Sims1() = delete

Default constructor - deleted!

Sims1(Sims1 const&) = default

Default copy constructor.

Sims1(Sims1&&) = default

Default move constructor.

Sims1(congruence_kind, P const&)

Construct from congruence_kind and Presentation .

Sims1(congruence_kind, P const&, P const&)

Construct from congruence_kind and two Presentation objects.

Sims1(congruence_kind, Presentation<word_type> const&)

Construct from congruence_kind and Presentation .

Sims1(congruence_kind, Presentation<word_type> const&, Presentation<word_type> const&)

Construct from congruence_kind and two Presentation objects.

operator=(Sims1 const&) = default

Default copy assignment operator.

operator=(Sims1&&) = default

Default move assignment operator.

Member functions

cbegin(size_type) const

Returns a forward iterator pointing at the first congruence.

cend(size_type) const

Returns a forward iterator pointing one beyond the last congruence.

extra() const noexcept

Returns a const reference to the additional defining pairs.

number_of_congruences(size_type) const

Returns the number of one-sided congruences with up to a given number of classes.

presentation() const noexcept

Returns a const reference to the defining presentation.

split_at(size_type)

Only apply certain relations when an otherwise compatible ActionDigraph is found.