libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
to<KnuthBendix>

This page contains documentation related to converting libsemigroups objects into KnuthBendix instances.

See also
The `to` function for an overview of possible conversions between libsemigroups types.

Functions

template<typename Result>
auto to (congruence_kind knd, FroidurePinBase &fpb) -> std::enable_if_t< std::is_same_v< KnuthBendix< typename Result::native_word_type, typename Result::rewriter_type >, Result >, Result >
 Convert a FroidurePin object to a KnuthBendix object.
 
template<typename Result>
auto to (congruence_kind knd, ToddCoxeter< typename Result::native_word_type > &tc) -> std::enable_if_t< std::is_same_v< KnuthBendix< typename Result::native_word_type, typename Result::rewriter_type >, Result >, Result >
 Convert a ToddCoxeter object to a KnuthBendix object.
 
template<template< typename... > typename Thing, typename Word>
auto to (congruence_kind knd, ToddCoxeter< Word > &tc) -> std::enable_if_t< std::is_same_v< Thing< Word >, KnuthBendix< Word > >, KnuthBendix< Word > >
 Convert a ToddCoxeter object to a KnuthBendix object.
 

Function Documentation

◆ to() [1/3]

template<typename Result>
auto to ( congruence_kind knd,
FroidurePinBase & fpb ) -> std::enable_if_t< std::is_same_v<KnuthBendix<typename Result::native_word_type, typename Result::rewriter_type>, Result>, Result>

Defined in to-knuth-bendix.hpp

Despite the hideous signature, this function should be invoked as follows:

auto to(detail::KnuthBendixImpl< Rewriter, ReductionOrder > &kb) -> std::enable_if_t< std::is_same_v< Presentation< typename Result::word_type >, Result >, Result >
No doc.

This function converts the FroidurePin object fpb into a KnuthBendix object using the presentation obtained using to<Presentation<Word>>(FroidurePinBase&).

Template Parameters
Resultused for SFINAE, the return type of this function, must be KnuthBendix<Word, Rewriter> for some type Word and Rewriter.
Parameters
kndthe kind of the congruence being constructed.
fpbthe FroidurePin instance to be converted.
Returns
A KnuthBendix object representing the trivial congruence over the semigroup defined by fpb.

◆ to() [2/3]

template<typename Result>
auto to ( congruence_kind knd,
ToddCoxeter< typename Result::native_word_type > & tc ) -> std::enable_if_t< std::is_same_v<KnuthBendix<typename Result::native_word_type, typename Result::rewriter_type>, Result>, Result>

Defined in to-knuth-bendix.hpp

Despite the hideous signature, this function should be invoked as follows:

This function converts the ToddCoxeter object tc into a KnuthBendix object using ToddCoxeter::presentation.

Template Parameters
Resultused for SFINAE, the return type of this function, must be KnuthBendix<Word, Rewriter> for some type Word and Rewriter.
Parameters
kndthe kind of the congruence being constructed.
tcthe ToddCoxeter object being converted.
Returns
A KnuthBendix object representing the trivial congruence over the semigroup defined by tc.
Exceptions
This function guarantees not to throw a LibsemigroupsException.

◆ to() [3/3]

template<template< typename... > typename Thing, typename Word>
auto to ( congruence_kind knd,
ToddCoxeter< Word > & tc ) -> std::enable_if_t<std::is_same_v<Thing<Word>, KnuthBendix<Word>>, KnuthBendix<Word>>

Defined in to-knuth-bendix.hpp

Despite the hideous signature, this function should be invoked as follows:

to<KnuthBendix>(knd, tc);

This function converts the ToddCoxeter object tc into a KnuthBendix object using ToddCoxeter::presentation.

Template Parameters
Thingused for SFINAE, must be KnuthBendix.
Wordthe type of the words used in relations in kb.
Parameters
kndthe kind of the congruence being constructed.
tcthe ToddCoxeter object being converted.
Returns
A KnuthBendix object representing the trivial congruence over the semigroup defined by tc.
Exceptions
This function guarantees not to throw a LibsemigroupsException.