libsemigroups
latest

Installation and changelog

  • Installation
  • Changelog - version 2
  • Changelog - version 1

API REFERENCE

  • Actions
  • Congruences
  • Digraphs
  • Elements
  • Finitely presented semigroups
  • Free Bands
  • Matrix
  • Miscellaneous
  • Orders
  • Semigroups
  • Words

Bibliography

  • Bibliography

Further info

  • Semigroupe
  • Authors
libsemigroups
  • Congruences
  • CongruenceInterface
  • Related semigroups
  • Edit on GitHub

Related semigroups¶

This page contains information about the member functions of the CongruenceInterface class for obtaining the parent or quotient semigroup represented as a FroidurePin instance.

bool libsemigroups::CongruenceInterface::has_parent_fpsemigroup() const noexcept¶

Check if the congruence was constructed from a FpSemigroupInterface instance.

Returns true if the congruence represented by this was created from an FpSemigroupInterface instance.

If true is returned, then this is a congruence over a semigroup represented by an FpSemigroupInterface instance.

Complexity

Constant.

Parameters

(None)

Throws

(None) – This function is noexcept and is guaranteed never to throw.

Returns

A bool.

bool libsemigroups::CongruenceInterface::has_parent_froidure_pin() const noexcept¶

Check if the congruence was constructed from a FroidurePin instance.

Returns true if the congruence represented by this was created from a FroidurePin instance.

If true is returned, then this is a congruence over a semigroup represented by a FroidurePin instance.

Complexity

Constant.

Parameters

(None)

Throws

(None) – This function is noexcept and is guaranteed never to throw.

Returns

A bool.

inline bool libsemigroups::CongruenceInterface::has_quotient_froidure_pin() const noexcept¶

Check if the quotient semigroup has been computed.

Returns true if the congruence represented by this object knows an isomorphic quotient semigroup represented by an instance of FroidurePin.

Complexity

Constant.

Parameters

(None)

Throws

(None) – This function is noexcept and is guaranteed never to throw.

Returns

A bool.

bool libsemigroups::CongruenceInterface::is_quotient_obviously_finite()¶

Deterministically check if the quotient is finite.

Return true if the number of classes in the congruence represented by this is obviously finite, and false if it is not obviously finite.

See also

is_quotient_obviously_infinite()

Complexity

Implementation specific, but this function is guaranteed to return a result. More specifically, this function will not trigger a computation that potentially never terminates.

Parameters

(None)

Warning

If true is returned, then there are finitely many classes in the congruence, if false is returned, then the number of classes can be finite or infinite.

Throws

(None) – This function throws if the implementation throws.

Returns

A bool.

bool libsemigroups::CongruenceInterface::is_quotient_obviously_infinite()¶

Deterministically check if the quotient is infinite.

Return true if the number of classes in the congruence represented by this is obviously infinite, and false if it is not obviously infinite.

See also

is_quotient_obviously_finite().

Complexity

Implementation specific, but this function is guaranteed to return a result. More specifically, this function will not trigger a computation that potentially never terminates.

Parameters

(None)

Warning

If true is returned, then there are infinitely many classes in the congruence, if false is returned, then the number of classes can be finite or infinite.

Throws

(None) – This function throws if the implementation throws.

Returns

A bool.

std::shared_ptr<FpSemigroupInterface> libsemigroups::CongruenceInterface::parent_fpsemigroup() const¶

Get the parent FpSemigroupInterface instance (if any).

Returns a std::shared_ptr to the parent FpSemigroupInterface object over which the congruence represented by this object was defined, if it exists.

Complexity

Constant.

Parameters

(None)

Throws

LibsemigroupsException – if this was not created using a FpSemigroupInterface instance.

Returns

A std::shared_ptr to an FpSemigroupInterface.

std::shared_ptr<FroidurePinBase> libsemigroups::CongruenceInterface::parent_froidure_pin() const¶

Get the parent FroidurePin instance (if any).

Returns a std::shared_ptr to the parent FroidurePin over which the congruence represented by this object was defined, if it exists.

Complexity

Constant.

Parameters

(None)

Throws

LibsemigroupsException – if this was not created using a FroidurePin instance.

Returns

A std::shared_ptr to FroidurePinBase.

std::shared_ptr<FroidurePinBase> libsemigroups::CongruenceInterface::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_kind::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.

Previous Next

© Copyright 2019-23, J. D. Mitchell. Revision 80ecf4ee.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest
Versions
master
latest
stable
Downloads
On Read the Docs
Project Home
Builds