quotient_froidure_pin

std::shared_ptr<FroidurePinBase> libsemigroups::congruence::ToddCoxeter::quotient_froidure_pin()

Returns a semigroup represented as an instance of a derived class of FroidurePinBase that is isomorphic to the quotient of the parent semigroup of this by the 2-sided congruence that this represents.

Parameters

(None)

Note

The returned FroidurePin instance satisfies FroidurePin::immutable() == true and so certain of its member functions (those that change the underlying mathematical object) are disabled.

Warning

The problem of determining the return value of this function is undecidable in general, and this function may never terminate.

Throws
  • LibsemigroupsException – if any of the following hold:

    • the congruence is not 2-sided, side() != congruence_type::twosided

    • the quotient semigroup is known (or can be easily be shown to be) infinite

    • the implementation throws.

  • std::bad_alloc – if the (possibly infinite) computation uses all the available memory.

Returns

A std::shared_ptr to FroidurePinBase.