![]() |
libsemigroups
v3.0.0
C++ library for semigroups and monoids
|
Classes | |
class | const_cgp_iterator |
For iterating over the two-sided congruence generating pairs. More... | |
class | const_rcgp_iterator |
For iterating over the right congruence generating pairs. More... | |
Functions | |
template<typename Subclass> | |
Subclass & | add_excluded_pair (SimsSettings< Subclass > &sims, char const *u, char const *v) |
Helper for adding a excluded pair of words (string literals). | |
template<typename Subclass, typename Int> | |
Subclass & | add_excluded_pair (SimsSettings< Subclass > &sims, std::initializer_list< Int > const &u, std::initializer_list< Int > const &v) |
Helper for adding a excluded pair of words (std::initializer_list). | |
template<typename Subclass> | |
Subclass & | add_excluded_pair (SimsSettings< Subclass > &sims, std::string_view u, std::string_view v) |
Helper for adding a excluded pair of words (std::string_view). | |
template<typename Subclass, typename Word> | |
Subclass & | add_excluded_pair (SimsSettings< Subclass > &sims, Word const &u, Word const &v) |
Helper for adding an excluded pair of words. | |
template<typename Subclass> | |
Subclass & | add_excluded_pair_no_checks (SimsSettings< Subclass > &sims, char const *u, char const *v) |
Helper for adding a excluded pair of words (string literals). | |
template<typename Subclass, typename Int> | |
Subclass & | add_excluded_pair_no_checks (SimsSettings< Subclass > &sims, std::initializer_list< Int > const &u, std::initializer_list< Int > const &v) |
Helper for adding a excluded pair of words (std::initializer_list). | |
template<typename Subclass> | |
Subclass & | add_excluded_pair_no_checks (SimsSettings< Subclass > &sims, std::string_view u, std::string_view v) |
Helper for adding a excluded pair of words (std::string_view). | |
template<typename Subclass, typename Word> | |
Subclass & | add_excluded_pair_no_checks (SimsSettings< Subclass > &sims, Word const &u, Word const &v) |
Helper for adding an excluded pair of words. | |
template<typename Subclass> | |
Subclass & | add_included_pair (SimsSettings< Subclass > &sims, char const *u, char const *v) |
Helper for adding a included pair of words (string literals). | |
template<typename Subclass, typename Int> | |
Subclass & | add_included_pair (SimsSettings< Subclass > &sims, std::initializer_list< Int > const &u, std::initializer_list< Int > const &v) |
Helper for adding a included pair of words (std::initializer_list). | |
template<typename Subclass> | |
Subclass & | add_included_pair (SimsSettings< Subclass > &sims, std::string_view u, std::string_view v) |
Helper for adding a included pair of words (std::string_view). | |
template<typename Subclass, typename Word> | |
Subclass & | add_included_pair (SimsSettings< Subclass > &sims, Word const &u, Word const &v) |
Helper for adding an included pair of words. | |
template<typename Subclass> | |
Subclass & | add_included_pair_no_checks (SimsSettings< Subclass > &sims, char const *u, char const *v) |
Helper for adding a generating pair of words (string literals). | |
template<typename Subclass, typename Int> | |
Subclass & | add_included_pair_no_checks (SimsSettings< Subclass > &sims, std::initializer_list< Int > const &u, std::initializer_list< Int > const &v) |
Helper for adding a generating pair of words (std::initializer_list). | |
template<typename Subclass> | |
Subclass & | add_included_pair_no_checks (SimsSettings< Subclass > &sims, std::string_view u, std::string_view v) |
Helper for adding a generating pair of words (std::string_view). | |
template<typename Subclass, typename Word> | |
Subclass & | add_included_pair_no_checks (SimsSettings< Subclass > &sims, Word const &u, Word const &v) |
Helper for adding an included pair of words. | |
template<typename Node> | |
const_rcgp_iterator | cbegin_right_generating_pairs (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Get an iterator pointing to the first right congruence generating pair. | |
template<typename Node> | |
const_rcgp_iterator | cbegin_right_generating_pairs_no_checks (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Get an iterator pointing to the first right congruence generating pair (no checks). | |
template<typename Node> | |
const_cgp_iterator | cbegin_two_sided_generating_pairs (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Get an iterator pointing to the first two-sided congruence generating pair. | |
template<typename Node> | |
const_cgp_iterator | cbegin_two_sided_generating_pairs_no_checks (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Get an iterator pointing to the first two-sided congruence generating pair (no checks). | |
template<typename Node> | |
const_rcgp_iterator | cend_right_generating_pairs (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Get an iterator pointing to one after the last right congruence generating pair. | |
template<typename Node> | |
const_rcgp_iterator | cend_right_generating_pairs_no_checks (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Get an iterator pointing to one after the last right congruence generating pair (no checks). | |
template<typename Node> | |
const_cgp_iterator | cend_two_sided_generating_pairs (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Get an iterator pointing to one after the last two-sided congruence generating pair. | |
template<typename Node> | |
const_cgp_iterator | cend_two_sided_generating_pairs_no_checks (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Get an iterator pointing to one after the last two-sided congruence generating pair (no checks). | |
template<typename Iterator> | |
Dot | dot_poset (Iterator first, Iterator last) |
Construct a Dot object representing the inclusion poset of a collection of word graphs. | |
template<typename Node> | |
bool | is_maximal_right_congruence (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Check if a word graph defines a maximal right congruence on an f.p. semigroup or monoid. | |
template<typename Node> | |
bool | is_right_congruence (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Check if a word graph defines a right congruence on an f.p. semigroup or monoid. | |
template<typename Node> | |
bool | is_right_congruence_of_dual (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Check if a word graph defines a right congruence on the dual of an f.p. semigroup or monoid. | |
template<typename Node> | |
bool | is_two_sided_congruence (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Check if a word graph defines a two sided congruence on an f.p. semigroup or monoid. | |
template<typename Node> | |
bool | is_two_sided_congruence_no_checks (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Check if a word graph defines a two-sided congruence on an f.p. semigroup or monoid (no checks). | |
template<typename Iterator> | |
BMat | poset (Iterator first, Iterator last) |
Compute the inclusion poset of a collection of congruences defined by word graphs. | |
template<typename Node> | |
rx::iterator_range< const_rcgp_iterator > | right_generating_pairs (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Compute the right congruence generating pairs of a word graph on an f.p. semigroup or monoid. | |
template<typename Node> | |
rx::iterator_range< const_rcgp_iterator > | right_generating_pairs (WordGraph< Node > const &wg) |
Compute the right congruence generating pairs of a word graph on the free monoid. | |
template<typename Node> | |
rx::iterator_range< const_rcgp_iterator > | right_generating_pairs_no_checks (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Compute the right congruence generating pairs of a word graph on an f.p. semigroup or monoid (no checks). | |
template<typename Node> | |
rx::iterator_range< const_rcgp_iterator > | right_generating_pairs_no_checks (WordGraph< Node > const &wg) |
Compute the right congruence generating pairs of a word graph on the free monoid (no checks). | |
template<typename Node> | |
void | throw_if_not_right_congruence (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Throw if a word graph does not define a right congruence on a f.p. semigroup or monoid. | |
template<typename Node> | |
void | throw_if_not_two_sided_congruence (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Throw if a word graph does not define a two sided congruence on a f.p. semigroup or monoid. | |
template<typename Node> | |
rx::iterator_range< const_cgp_iterator > | two_sided_generating_pairs (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Range object containing the two-sided congruence generating pairs of a word graph on an f.p. semigroup or monoid. | |
template<typename Node> | |
rx::iterator_range< const_cgp_iterator > | two_sided_generating_pairs (WordGraph< Node > const &wg) |
Compute the two-sided congruence generating pairs of a word graph on the free monoid. | |
template<typename Node> | |
rx::iterator_range< const_cgp_iterator > | two_sided_generating_pairs_no_checks (Presentation< word_type > const &p, WordGraph< Node > const &wg) |
Compute the two-sided congruence generating pairs of a word graph on an f.p. semigroup or monoid (no checks). | |
template<typename Node> | |
rx::iterator_range< const_cgp_iterator > | two_sided_generating_pairs_no_checks (WordGraph< Node > const &wg) |
Compute the two-sided congruence generating pairs of a word graph on the free monoid (no checks). | |
Subclass & add_excluded_pair | ( | SimsSettings< Subclass > & | sims, |
char const * | u, | ||
char const * | v ) |
Subclass & add_excluded_pair | ( | SimsSettings< Subclass > & | sims, |
std::initializer_list< Int > const & | u, | ||
std::initializer_list< Int > const & | v ) |
Subclass & add_excluded_pair | ( | SimsSettings< Subclass > & | sims, |
std::string_view | u, | ||
std::string_view | v ) |
Subclass & add_excluded_pair | ( | SimsSettings< Subclass > & | sims, |
Word const & | u, | ||
Word const & | v ) |
This function can be used to add an excluded pair to sims
using the objects themselves rather than using iterators.
Subclass | the type of the first parameter. |
Word | the type of the second and third parameters. |
sims | a Sims1 or Sims2 object. |
u | the left hand side of the pair to add. |
v | the right hand side of the pair to add. |
sims
.LibsemigroupsException | if any of the values pointed at by the iterators is out of range, i.e. they do not belong to presentation().alphabet() and Presentation::validate_word throws. |
Subclass & add_excluded_pair_no_checks | ( | SimsSettings< Subclass > & | sims, |
char const * | u, | ||
char const * | v ) |
See add_excluded_pair_no_checks<Subclass, Word>(SimsSettings<Subclass>&, Word const&, Word const&) for details.
Subclass & add_excluded_pair_no_checks | ( | SimsSettings< Subclass > & | sims, |
std::initializer_list< Int > const & | u, | ||
std::initializer_list< Int > const & | v ) |
See add_excluded_pair_no_checks<Subclass, Word>(SimsSettings<Subclass>&, Word const&, Word const&) for details.
Subclass & add_excluded_pair_no_checks | ( | SimsSettings< Subclass > & | sims, |
std::string_view | u, | ||
std::string_view | v ) |
See add_excluded_pair_no_checks<Subclass, Word>(SimsSettings<Subclass>&, Word const&, Word const&) for details.
Subclass & add_excluded_pair_no_checks | ( | SimsSettings< Subclass > & | sims, |
Word const & | u, | ||
Word const & | v ) |
This function can be used to add an excluded pair to sims
using the objects themselves rather than using iterators.
Subclass | the type of the first parameter. |
Word | the type of the second and third parameters. |
sims | a Sims1 or Sims2 object. |
u | the left hand side of the pair to add. |
v | the right hand side of the pair to add. |
sims
.presentation().alphabet()
.Subclass & add_included_pair | ( | SimsSettings< Subclass > & | sims, |
char const * | u, | ||
char const * | v ) |
Subclass & add_included_pair | ( | SimsSettings< Subclass > & | sims, |
std::initializer_list< Int > const & | u, | ||
std::initializer_list< Int > const & | v ) |
Subclass & add_included_pair | ( | SimsSettings< Subclass > & | sims, |
std::string_view | u, | ||
std::string_view | v ) |
Subclass & add_included_pair | ( | SimsSettings< Subclass > & | sims, |
Word const & | u, | ||
Word const & | v ) |
This function can be used to add an included pair to sims
using the objects themselves rather than using iterators.
Subclass | the type of the first parameter. |
Word | the type of the second and third parameters. |
sims | a Sims1 or Sims2 object. |
u | the left hand side of the pair to add. |
v | the right hand side of the pair to add. |
sims
.LibsemigroupsException | if any of the values pointed at by the iterators is out of range, i.e. they do not belong to presentation().alphabet() and Presentation::validate_word throws. |
Subclass & add_included_pair_no_checks | ( | SimsSettings< Subclass > & | sims, |
char const * | u, | ||
char const * | v ) |
See add_included_pair_no_checks<Subclass, Word>(SimsSettings<Subclass>&, Word const&, Word const&) for details.
Subclass & add_included_pair_no_checks | ( | SimsSettings< Subclass > & | sims, |
std::initializer_list< Int > const & | u, | ||
std::initializer_list< Int > const & | v ) |
See add_included_pair_no_checks<Subclass, Word>(SimsSettings<Subclass>&, Word const&, Word const&) for details.
Subclass & add_included_pair_no_checks | ( | SimsSettings< Subclass > & | sims, |
std::string_view | u, | ||
std::string_view | v ) |
See add_included_pair_no_checks<Subclass, Word>(SimsSettings<Subclass>&, Word const&, Word const&) for details.
Subclass & add_included_pair_no_checks | ( | SimsSettings< Subclass > & | sims, |
Word const & | u, | ||
Word const & | v ) |
This function can be used to add an included pair to sims
using the objects themselves rather than using iterators.
Subclass | the type of the first parameter. |
Word | the type of the second and third parameters. |
sims | a Sims1 or Sims2 object. |
u | the left hand side of the pair to add. |
v | the right hand side of the pair to add. |
sims
.presentation().alphabet()
.const_rcgp_iterator cbegin_right_generating_pairs | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.LibsemigroupsException | if the argument wg does not define a right congruence on the monoid presented by p . |
const_rcgp_iterator cbegin_right_generating_pairs_no_checks | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.wg
already defines a right congruence on the semigroup or monoid defined by p
. If this is not the case, then bad things may happen. const_cgp_iterator cbegin_two_sided_generating_pairs | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.LibsemigroupsException | if the argument wg does not define a two-sided congruence on the semigroup or monoid defined by p . |
const_cgp_iterator cbegin_two_sided_generating_pairs_no_checks | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.wg
already defines a two-sided congruence on the semigroup or monoid defined by p
. If this is not the case, then bad things may happen. const_rcgp_iterator cend_right_generating_pairs | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.LibsemigroupsException | if the argument wg does not define a right congruence on the semigroup or monoid defined by p . |
const_rcgp_iterator cend_right_generating_pairs_no_checks | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.wg
already defines a right congruence on the semigroup or monoid defined by p
. If this is not the case, then bad things may happen. const_cgp_iterator cend_two_sided_generating_pairs | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.LibsemigroupsException | if the argument wg does not define a two-sided congruence on the semigroup or monoid defined by p . |
const_cgp_iterator cend_two_sided_generating_pairs_no_checks | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.wg
already defines a two-sided congruence on the semigroup or monoid defined by p
. If this is not the case, then bad things may happen. bool is_maximal_right_congruence | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
true
if the word graph wg
defines a maximal right congruence on the semigroup or monoid defined by p
and false
otherwise. bool is_right_congruence | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
true
if the word graph wg
defines a right congruence on the semigroup or monoid defined by p
and false
otherwise. bool is_right_congruence_of_dual | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
This function checks if wg
defines a right congruence over the dual of p
. This is equivalent to checking if the word graph defines a left congruence in the semigroup or monoid defined by p
.
true
if the word graph wg
defines a right congruence on the dual of the semigroup or monoid defined by p
and false
otherwise. bool is_two_sided_congruence | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
true
if the word graph wg
defines a two-sided congruence on the semigroup or monoid defined by p
and false
otherwise. bool is_two_sided_congruence_no_checks | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
true
if the word graph wg
defines a two-sided congruence on the semigroup or monoid defined by p
and false
otherwise.wg
already defines a two-sided congruence on the semigroup or monoid defined by p
. If this is not the case, then bad things may happen. BMat poset | ( | Iterator | first, |
Iterator | last ) |
This function computes a boolean matrix whose (i, j)
-th entry is 1 if and only if the congruence defined by the i
-th word graph in [first, last)
is a subrelation of the congruence defined by the j
-th word graph in [first, last)
. If [first, last)
is the collection of all congruences of a given semigroup or monoid, then this is equivalent to computing the congruence lattice of the semigroup or monoid.
[first, last)
is a complete word graph. If this is not the case, then bad things may happen. rx::iterator_range< const_rcgp_iterator > right_generating_pairs | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.LibsemigroupsException | if the argument wg does not define a right congruence on the semigroup or monoid defined by p . |
rx::iterator_range< const_rcgp_iterator > right_generating_pairs | ( | WordGraph< Node > const & | wg | ) |
wg
on the free monoid.LibsemigroupsException | if the argument wg does not define a right congruence on the free monoid. |
rx::iterator_range< const_rcgp_iterator > right_generating_pairs_no_checks | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.wg
already defines a right congruence on the semigroup or monoid defined by p
. If this is not the case, then bad things may happen. rx::iterator_range< const_rcgp_iterator > right_generating_pairs_no_checks | ( | WordGraph< Node > const & | wg | ) |
wg
on the free monoid.wg
already defines a right congruence on the free monoid. If this is not the case, then bad things may happen. rx::iterator_range< const_cgp_iterator > two_sided_generating_pairs | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.LibsemigroupsException | if the argument wg does not define a two-sided congruence on the semigroup or monoid presented by p . |
rx::iterator_range< const_cgp_iterator > two_sided_generating_pairs | ( | WordGraph< Node > const & | wg | ) |
wg
on the free monoid.LibsemigroupsException | if the argument wg does not define a two-sided congruence on the free monoid. |
rx::iterator_range< const_cgp_iterator > two_sided_generating_pairs_no_checks | ( | Presentation< word_type > const & | p, |
WordGraph< Node > const & | wg ) |
wg
on the semigroup or monoid defined by p
.wg
already defines a two-sided congruence on the semigroup or monoid defined by p
. If this is not the case, then bad things may happen. rx::iterator_range< const_cgp_iterator > two_sided_generating_pairs_no_checks | ( | WordGraph< Node > const & | wg | ) |
wg
on the free monoid.wg
already defines a two-sided congruence on the free monoid. If this is not the case, then bad things may happen.