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

This file contains documentation related to semigroup and monoid presentations in libsemigroups.

There are two classes and two namespaces with functionality related to presentations:

For documentation on how to create presentations from other libsemigroups objects, see the documentation for the to<Presentation> functions here.

Namespaces

namespace  libsemigroups::presentation
 Namespace for Presentation helper functions.
 
namespace  libsemigroups::presentation::examples
 Namespace for presentations of some finitely presented semigroups.
 

Classes

class  InversePresentation< Word >
 For an implementation of inverse presentations for semigroups or monoids. More...
 
class  Presentation< Word >
 For an implementation of presentations for semigroups or monoids. More...
 

Functions

template<typename Word>
bool operator!= (InversePresentation< Word > const &lhop, InversePresentation< Word > const &rhop)
 Compare for inequality.
 
template<typename Word>
bool operator!= (Presentation< Word > const &lhop, Presentation< Word > const &rhop)
 Compare for inequality.
 
template<typename Word>
bool operator== (InversePresentation< Word > const &lhop, InversePresentation< Word > const &rhop)
 Compare for equality.
 
template<typename Word>
bool operator== (Presentation< Word > const &lhop, Presentation< Word > const &rhop)
 Compare for equality.
 
template<typename Word>
 Presentation (Presentation< Word > &&) -> Presentation< Word >
 Deduction guide.
 
template<typename Word>
 Presentation (Presentation< Word > const &) -> Presentation< Word >
 Deduction guide.
 
template<typename Word>
std::string to_human_readable_repr (InversePresentation< Word > const &p)
 Return a human readable representation of an InversePresentation.
 
template<typename Word>
std::string to_human_readable_repr (Presentation< Word > const &p)
 Return a human readable representation of a presentation.
 

Variables

template<typename T>
static constexpr bool IsInversePresentation = detail::IsInversePresentationHelper<T>::value
 Helper variable template.
 
template<typename T>
static constexpr bool IsPresentation = detail::IsPresentationHelper<T>::value
 Helper variable template.
 

Function Documentation

◆ operator!=() [1/2]

template<typename Word>
bool operator!= ( InversePresentation< Word > const & lhop,
InversePresentation< Word > const & rhop )

Returns true if lhop does not equal rhop by comparing the the alphabets and the rules.

Template Parameters
Wordthe type of the words in the inverse presentations.
Parameters
lhopan inverse presentation that is to be compared.
rhopan inverse presentation that is to be compared.
Returns
A value of type bool.
Exceptions
This function guarantees not to throw a LibsemigroupsException.
Complexity
At worst linear in the sum of the alphabet sizes and numbers of rules.

◆ operator!=() [2/2]

template<typename Word>
bool operator!= ( Presentation< Word > const & lhop,
Presentation< Word > const & rhop )

Returns true if lhop does not equal rhop by comparing the the alphabets and the rules.

Template Parameters
Wordthe type of the words in the presentations.
Parameters
lhopa presentation that is to be compared.
rhopa presentation that is to be compared.
Returns
A value of type bool.
Exceptions
This function guarantees not to throw a LibsemigroupsException.
Complexity
At worst linear in the sum of the alphabet sizes and numbers of rules.

◆ operator==() [1/2]

template<typename Word>
bool operator== ( InversePresentation< Word > const & lhop,
InversePresentation< Word > const & rhop )

Returns true if lhop equals rhop by comparing the the alphabets and the rules.

Template Parameters
Wordthe type of the words in the inverse presentations.
Parameters
lhopan inverse presentation that is to be compared.
rhopan inverse presentation that is to be compared.
Returns
A value of type bool.
Exceptions
This function guarantees not to throw a LibsemigroupsException.
Complexity
At worst linear in the sum of the alphabet sizes and numbers of rules.

◆ operator==() [2/2]

template<typename Word>
bool operator== ( Presentation< Word > const & lhop,
Presentation< Word > const & rhop )

Returns true if lhop equals rhop by comparing the the alphabets and the rules.

Template Parameters
Wordthe type of the words in the presentations.
Parameters
lhopa presentation that is to be compared.
rhopa presentation that is to be compared.
Returns
A value of type bool.
Exceptions
This function guarantees not to throw a LibsemigroupsException.
Complexity
At worst linear in the sum of the alphabet sizes and numbers of rules.

◆ Presentation() [1/2]

template<typename Word>
Presentation ( Presentation< Word > && ) -> Presentation< Word >

Defined in presentation.hpp

Deduction guide to construct a Presentation<Word> from a Presentation<Word>&&.

◆ Presentation() [2/2]

template<typename Word>
Presentation ( Presentation< Word > const & ) -> Presentation< Word >

Defined in presentation.hpp

Deduction guide to construct a Presentation<Word> from a Presentation<Word> const&.

◆ to_human_readable_repr() [1/2]

template<typename Word>
std::string to_human_readable_repr ( InversePresentation< Word > const & p)

Return a human readable representation of an InversePresentation.

Template Parameters
Wordthe type of the words in the InversePresentation.
Parameters
pthe InversePresentation.
Exceptions
This function guarantees not to throw a LibsemigroupsException.

◆ to_human_readable_repr() [2/2]

template<typename Word>
std::string to_human_readable_repr ( Presentation< Word > const & p)

Return a human readable representation of a presentation.

Template Parameters
Wordthe type of the words in the presentation.
Parameters
pthe presentation.
Exceptions
This function guarantees not to throw a LibsemigroupsException.

Variable Documentation

◆ IsInversePresentation

template<typename T>
bool IsInversePresentation = detail::IsInversePresentationHelper<T>::value
staticconstexpr

Helper variable template.

The value of this variable is true if the template parameter T is InversePresentation.

Template Parameters
Ta type.

◆ IsPresentation

template<typename T>
bool IsPresentation = detail::IsPresentationHelper<T>::value
staticconstexpr

Helper variable template.

The value of this variable is true if the template parameter T is InversePresentation.

Template Parameters
Ta type.