FpSemigroup¶
-
class FpSemigroup : public libsemigroups::FpSemigroupInterface¶
Defined in
fpsemi.hpp
.This is a class for representing finitely presented semigroups and monoids.
On this page we describe the functionality relating to the FpSemigroup class. This class can be used for computing a finitely presented semigroup or monoid by running every applicable algorithm from libsemigroups (and possibly some variants of the same algorithm) in parallel. This class is provided for convenience, at present it is not very customisable, and lacks some of the fine grained control offered by the classes implementing individual algorithms, such as fpsemigroup::ToddCoxeter and fpsemigroup::KnuthBendix.
- Example
FpSemigroup S; S.set_alphabet(3); S.set_identity(0); S.add_rule({1, 2}, {0}); S.is_obviously_infinite(); // false
Type Aliases¶
Deleted constructors¶
Validation¶
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
- alphabet(size_t) const
- identity
- inverses
- nr_rules
- set_alphabet(size_t)
- set_alphabet(std::string const&)
- set_identity(letter_type)
- set_identity(std::string const&)
- set_inverses