FpSemigroupInterface

class FpSemigroupInterface : public libsemigroups::Runner

Defined in fpsemi-intf.hpp.

Every class for representing a finitely presented semigroup or monoid in libsemigroups is derived from FpSemigroupInterface, which holds the member functions that are common to all its derived classes. FpSemigroupInterface is an abstract class.

Subclassed by libsemigroups::CongruenceWrapper< CongruenceByPairs< TFroidurePinType > >, libsemigroups::CongruenceWrapper< congruence::ToddCoxeter >, libsemigroups::fpsemigroup::Kambites< std::string >, libsemigroups::CongruenceWrapper< T >, libsemigroups::FpSemigroup, libsemigroups::fpsemigroup::Kambites< T >, libsemigroups::fpsemigroup::KnuthBendix

Member types

char_type

Type for characters.

const_iterator

Type for const iterators to the defining rules.

rule_type

Type for rules.

string_type

Type for strings.

Constructors

FpSemigroupInterface()

FpSemigroupInterface(FpSemigroupInterface const&) = default

Default copy constructor.

FpSemigroupInterface(FpSemigroupInterface&&) = default

Deleted.

Deleted constructors

operator=(FpSemigroupInterface const&) = delete

Deleted.

operator=(FpSemigroupInterface&&) = delete

Deleted.

Pure virtual member functions

equal_to(std::string const&, std::string const&) = 0

normal_form(std::string const&) = 0

size() = 0

Validation

validate_letter(char) const

validate_letter(letter_type) const

validate_word(std::string const&) const

validate_word(word_type const&) const

Initialization

add_rule(relation_type)

add_rule(rule_type)

add_rule(std::initializer_list<size_t>, std::initializer_list<size_t>)

add_rule(std::string const&, std::string const&)

add_rule(word_type const&, word_type const&)

add_rules(FroidurePinBase&)

add_rules(std::vector<rule_type> const&)

alphabet() const noexcept

alphabet(size_t) const

has_identity() const noexcept

identity() const

inverses() const

number_of_rules() const noexcept

set_alphabet(size_t)

set_alphabet(std::string const&)

set_identity(letter_type)

set_identity(std::string const&)

set_inverses(std::string const&)

Normal forms and equality testing

equal_to(std::initializer_list<letter_type>, std::initializer_list<letter_type>)

equal_to(word_type const&, word_type const&)

normal_form(std::initializer_list<letter_type>)

normal_form(word_type const&)

Words to strings and vice versa

char_to_uint(char) const

string_to_word(std::string const&) const

uint_to_char(letter_type) const

word_to_string(word_type const&) const

Size

is_obviously_finite()

is_obviously_infinite()

Iterators

cbegin_rules() const noexcept

cend_rules() const noexcept

Miscellanea

to_gap_string()

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