Stephen

class Stephen : public libsemigroups::Runner

Defined in stephen.hpp.

On this page we describe the functionality in libsemigroups relating to Stephen’s procedure for finitely presented semigroups. This class implements Stephen’s procedure for (possibly) constructing the word graph (ActionDigraph) corresponding to the left factors of a word in a finitely presented semigroup. The algorithm implemented in this class is closely related to the Todd-Coxeter algorithm (as implemented in congruence::ToddCoxeter) and originates in Applications of automata theory to presentations of monoids and inverse monoids by J. B. Stephen.

Member types

digraph_type

The return type of the function word_graph .

node_type

The type of the nodes of a digraph_type .

Constructor

Stephen()

Stephen(P &&)

Stephen(Stephen &&) = default

Default move constructor.

Stephen(Stephen const &) = default

Default copy constructor.

operator=(Stephen &&) = default

Default move assignment operator.

operator=(Stephen const &) = default

Default copy assignment operator.

Initialization

init(P &&)

set_word(word_type &&)

set_word(word_type const &)

Defining data

presentation() const noexcept

word() const noexcept

Results of the algorithm

accept_state()

word_graph() const noexcept

Member functions inherited from Runner

dead() const noexcept

finished() const

kill() noexcept

report() const

report_every() const noexcept

report_every(TIntType)

report_every(std::chrono::nanoseconds)

report_why_we_stopped() const

run()

run_for(TIntType)

run_for(std::chrono::nanoseconds)

run_until(T&&)

run_until(bool(*)())

running() const noexcept

running_for() const noexcept

running_until() const noexcept

started() const

stopped() const

stopped_by_predicate() const

timed_out() const