Constructors

libsemigroups::KnuthBendixCongruenceByPairs::KnuthBendixCongruenceByPairs(congruence_kind type, KnuthBendix const &kb) noexcept

Construct a KnuthBendixCongruenceByPairs over the fpsemigroup::KnuthBendix instance kb representing a left/right/2-sided congruence according to type.

Exceptions

This function is noexcept and is guaranteed never to throw.

Complexity

Constant.

Warning

The parameter kb is copied, this might be expensive, use a std::shared_ptr to avoid the copy!

Parameters
  • type – whether the congruence is left, right, or 2-sided

  • kb – a reference to the semigroup over which the congruence is defined.

libsemigroups::KnuthBendixCongruenceByPairs::KnuthBendixCongruenceByPairs(congruence_kind type, std::shared_ptr<KnuthBendix> kb) noexcept

Construct a KnuthBendixCongruenceByPairs over the fpsemigroup::KnuthBendix instance kb representing a left/right/2-sided congruence according to type.

Exceptions

This function is noexcept and is guaranteed never to throw.

Complexity

Constant.

Note

The fpsemigroup::KnuthBendix referred to by kb is not copied.

Parameters
  • type – whether the congruence is left, right, or 2-sided

  • kb – a reference to the semigroup over which the congruence is defined.