quotient_froidure_pin¶
-
std::shared_ptr<FroidurePinBase> libsemigroups::Congruence::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 thatthis
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.