libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
Obviously infinite

This page collects the documentation for the functionality in libsemigroups for checking if a finitely presented semigroup or monoid is obviously infinite.

Classes

class  IsObviouslyInfinite
 Class for checking if a finitely presented semigroup or monoid is obviously infinite. More...
 

Functions

template<typename Word>
bool is_obviously_infinite (Congruence< Word > &c)
 Function for checking if a congruence obviously has infinite many classes.
 
template<typename Rewriter, typename ReductionOrder>
bool is_obviously_infinite (detail::KnuthBendixImpl< Rewriter, ReductionOrder > &kb)
 Function for checking if the quotient of a finitely presented semigroup or monoid defined by a KnuthBendix object is obviously infinite or not.
 
bool is_obviously_infinite (detail::ToddCoxeterImpl const &tc)
 Function for checking if the quotient of a finitely presented semigroup or monoid defined by a ToddCoxeterImpl object is obviously infinite or not.
 
template<typename Word>
bool is_obviously_infinite (Kambites< Word > &k)
 Function for checking if the finitely presented semigroup or monoid defined by a Kambites object obviously has infinite many classes.
 
template<>
bool is_obviously_infinite (Presentation< std::string > const &p)
 Function for checking if the finitely presented semigroup or monoid defined by a Presentation object is obviously infinite or not.
 
template<typename Word>
bool is_obviously_infinite (Presentation< Word > const &p)
 Function for checking if the finitely presented semigroup or monoid defined by a Presentation object is obviously infinite or not.
 

Function Documentation

◆ is_obviously_infinite() [1/6]

template<typename Word>
bool is_obviously_infinite ( Congruence< Word > & c)

This function returns true if the quotient of the finitely presented semigroup or monoid defined by the Congruence object c is obviously infinite; false is returned if it is not.

This function exists to make it simpler to call an IsObviouslyInfinite object a single time, and uses some information from the (possible incomplete) Congruence object to assist in this determination.

Parameters
cthe Congruence instance.
Returns
Whether or not the congruence obviously has infinitely many classes.
Note
If this function returns false, it is still possible that the congruence has infinitely many classes.

◆ is_obviously_infinite() [2/6]

template<typename Rewriter, typename ReductionOrder>
bool is_obviously_infinite ( detail::KnuthBendixImpl< Rewriter, ReductionOrder > & kb)

This function returns true if the quotient of the finitely presented semigroup or monoid defined by the KnuthBendix object kb is obviously infinite; false is returned if it is not.

This function exists to make it simpler to call an IsObviouslyInfinite object a single time, and uses some information from the (possible incomplete) KnuthBendix object to assist in this determination.

Parameters
kbthe KnuthBendix instance.
Returns
Whether or not the quotient defined by a KnuthBendix instance is obviously infinite.
Note
If this function returns false, it is still possible that the quotient defined by the KnuthBendix object kb is infinite.

◆ is_obviously_infinite() [3/6]

bool is_obviously_infinite ( detail::ToddCoxeterImpl const & tc)

This function returns true if the quotient of the finitely presented semigroup or monoid defined by the ToddCoxeterImpl object tc is obviously infinite; false is returned if it is not.

This function exists to make it simpler to call an IsObviouslyInfinite object a single time, and uses some information from the (possible incomplete) ToddCoxeterImpl object to assist in this determination.

Parameters
tcthe ToddCoxeterImpl instance.
Returns
Whether or not the quotient defined by a ToddCoxeterImpl instance is obviously infinite.
Note
If this function returns false, it is still possible that the quotient defined by the ToddCoxeterImpl object tc is infinite.

◆ is_obviously_infinite() [4/6]

template<typename Word>
bool is_obviously_infinite ( Kambites< Word > & k)

This function returns true if the finitely presented semigroup or monoid defined by a Kambites object is obviously infinite; false is returned if it is not.

This function exists to make it simpler to call an IsObviouslyInfinite object a single time, and uses some information from the (possible incomplete) Kambites object to assist in this determination.

Parameters
kthe Kambites instance.
Returns
Whether or not the finitely presented semigroup or monoid defined by a Kambites object is obviously infinite.
Note
If this function returns false, it is still possible that the finitely presented semigroup or monoid defined by k is infinite.

◆ is_obviously_infinite() [5/6]

template<>
bool is_obviously_infinite ( Presentation< std::string > const & p)

This function returns true if the finitely presented semigroup or monoid defined by the Presentation object p is obviously infinite. This function exists to make it simpler to call an IsObviouslyInfinite object a single time.

Parameters
pthe presentation.
Returns
Whether or not the presentation defines an obviously infinite semigroup or monoid.
Exceptions
LibsemigroupsExceptionIf the presentation p is not valid.
Note
If this function returns false, it is still possible that the finitely presented semigroup or monoid defined by p is infinite.

◆ is_obviously_infinite() [6/6]

template<typename Word>
bool is_obviously_infinite ( Presentation< Word > const & p)

This function returns true if the finitely presented semigroup or monoid defined by the Presentation object p is obviously infinite. This function exists to make it simpler to call an IsObviouslyInfinite object a single time.

Template Parameters
Wordthe type of the words in the presentation p.
Parameters
pthe presentation.
Returns
Whether or not the presentation defines an obviously infinite semigroup or monoid.
Exceptions
LibsemigroupsExceptionIf the presentation p is not valid.
Note
If this function returns false, it is still possible that semigroup or monoid defined by p is infinite.