normal_form(word_type const&)¶
-
word_type
libsemigroups::fpsemigroup::KnuthBendix::normal_form(word_type const &w)¶ Returns a normal form for a libsemigroups::word_type.
If
uandvrepresent the same element of the finitely presented semigroup represented bythis, thennormal_form(u)is guaranteed to equalnormal_form(v). No further guarantees are given, the return value of normal_form() depends on the implementation and may vary between finitely presented semigroups defined in precisely the same way.- Return
the normal form of the parameter
w, a value of type libsemigroups::word_type.- Complexity
See warning.
- Warning
The function for finding the structure of a finitely presented semigroup may be non-deterministic, or since the problem is undecidable in general, this function may never return a result.
- See
normal_form(std::string const&) and normal_form(std::initializer_list<letter_type>).
- Parameters
w: the word whose normal form we want to find. The parameterwmust be a libsemigroups::word_type consisting of indices of the generators of the finitely presented semigroup thatthisrepresents.
- Exceptions
LibsemigroupsException: ifwcontains a letter that is out of bounds, or the object has not been fully initialised.