This page contains the documentation of the various member functions of the Kambites class that can be used to access the state of an instance.
Those functions with the prefix current_ do not perform any further enumeration.
template<typename Word = detail::MultiView<std::string>>
| size_t small_overlap_class |
( |
| ) |
|
|
nodiscard |
If \(S\) is a finitely presented semigroup with generating set \(A\), then a word \(w\) over \(A\) is a piece if \(w\) occurs as a factor in at least two of the relations defining \(S\) or if it occurs as a factor of one relation in two different positions (possibly overlapping).
A finitely presented semigroup \(S\) satisfies the condition \(C(n)\), for a positive integer \(n\) if the minimum number of pieces in any factorisation of a word occurring as the left or right hand side of a relation of \(S\) is at least \(n\).
- Returns
- The greatest positive integer \(n\) such that the finitely semigroup represented by
this satisfies the condition \(C(n)\); or POSITIVE_INFINITY if no word occurring in a relation can be written as a product of pieces.
- Exceptions
- This function guarantees not to throw a LibsemigroupsException.
- Complexity
- The current implementation has complexity no worse than \(O(m ^
3)\) where \(m\) is the sum of the lengths of the words occurring in the relations of the semigroup.
- Warning
- The member functions contains and reduce only work if the return value of this function is at least \(4\).