Presentations for standard examples

This page contains the documentation for various examples of presentations for finitely presented semigroups and monoids.

Default presentations

For some semigroups and monoids presented on this page, there are multiple presentations. The section below defines some default functions; functions that should be used when the particular relations aren’t important, only the semigroup or monoid they define.

alternating_group(…)

A presentation for the alternating group.

brauer_monoid(…)

A presentation for the Brauer monoid.

chinese_monoid(…)

A presentation for the Chinese monoid.

cyclic_inverse_monoid(…)

A presentation for the cyclic inverse monoid.

dual_symmetric_inverse_monoid(…)

A presentation for the dual symmetric inverse monoid.

fibonacci_semigroup(…)

A presentation for a Fibonacci semigroup.

full_transformation_monoid(…)

A presentation for the full transformation monoid.

hypo_plactic_monoid(…)

A presentation for the hypoplactic monoid.

monogenic_semigroup(…)

A presentation for a monogenic semigroup.

motzkin_monoid(…)

A presentation for the Motzkin monoid.

not_renner_type_B_monoid(…)

A presentation that incorrectly claims to be the Renner monoid of type B.

not_renner_type_D_monoid(…)

A presentation that incorrectly claims to be the Renner monoid of type D.

not_symmetric_group(…)

A non-presentation for the symmetric group.

order_preserving_cyclic_inverse_monoid(…)

A presentation for the order preserving part of the cyclic inverse monoid.

order_preserving_monoid(…)

A presentation for the monoid of order preserving mappings.

orientation_preserving_monoid(…)

A presentation for the monoid of orientation preserving mappings.

orientation_preserving_reversing_monoid(…)

A presentation for the monoid of orientation preserving or reversing mappings.

partial_brauer_monoid(…)

A presentation for the partial Brauer monoid.

partial_isometries_cycle_graph_monoid(…)

A presentation for the monoid of partial isometries of a cycle graph.

partial_transformation_monoid(…)

A presentation for the partial transformation monoid.

partition_monoid(…)

A presentation for the partition monoid.

plactic_monoid(…)

A presentation for the plactic monoid.

rectangular_band(…)

A presentation for a rectangular band.

renner_type_B_monoid(…)

A presentation for the Renner monoid of type B.

renner_type_D_monoid(…)

A presentation for the Renner monoid of type D.

sigma_plactic_monoid(…)

A presentation for the \(\sigma\)-plactic monoid.

singular_brauer_monoid(…)

A presentation for the singular part of the Brauer monoid.

special_linear_group_2(…)

A presentation for the special linear group \(\mathrm{SL}(2, q)\).

stellar_monoid(…)

A presentation for the stellar monoid.

stylic_monoid(…)

A presentation for the stylic monoid.

symmetric_group(…)

A presentation for the symmetric group.

symmetric_inverse_monoid(…)

A presentation for the partial transformation monoid.

temperley_lieb_monoid(…)

A presentation for the Temperley-Lieb monoid.

uniform_block_bijection_monoid(…)

A presentation for the uniform block bijection monoid.

zero_rook_monoid(…)

A presentation for the \(0\)-rook monoid.

Specific presentations

The functions documented below provide specific presentations for various semigroups and monoids, usually accompanied by a reference to the source of the presentation. There may be several presentations for any semigroup or monoid.

For each semigroup or monoid, there is a corresponding default function that is documented in the Default presentations section.

alternating_group_Moo97(…)

A presentation for the alternating group.

brauer_monoid_KM07(…)

A presentation for the Brauer monoid.

chinese_monoid_CEKNH01(…)

A presentation for the Chinese monoid.

cyclic_inverse_monoid_Fer22_a(…)

A presentation for the cyclic inverse monoid.

cyclic_inverse_monoid_Fer22_b(…)

A presentation for the cyclic inverse monoid.

dual_symmetric_inverse_monoid_EEF07(…)

A presentation for the dual symmetric inverse monoid.

fibonacci_semigroup_CRRT94(…)

A presentation for a Fibonacci semigroup.

full_transformation_monoid_Aiz58(…)

A presentation for the full transformation monoid.

full_transformation_monoid_II74(…)

A presentation for the full transformation monoid.

full_transformation_monoid_MW24_a(…)

A presentation for the full transformation monoid.

full_transformation_monoid_MW24_b(…)

A presentation for the full transformation monoid.

hypo_plactic_monoid_Nov00(…)

A presentation for the hypoplactic monoid.

motzkin_monoid_PHL13(…)

A presentation for the Motzkin monoid.

not_renner_type_B_monoid_Gay18(…)

A presentation that incorrectly claims to be the Renner monoid of type B.

not_renner_type_D_monoid_God09(…)

A presentation that incorrectly claims to be the Renner monoid of type D.

not_symmetric_group_GKKL08(…)

A non-presentation for the symmetric group.

order_preserving_cyclic_inverse_monoid_Fer22(…)

A presentation for the order preserving part of the cyclic inverse monoid.

order_preserving_monoid_AR00(…)

A presentation for the monoid of order preserving mappings.

orientation_preserving_monoid_AR00(…)

A presentation for the monoid of orientation preserving mappings.

orientation_preserving_reversing_monoid_AR00(…)

A presentation for the monoid of orientation preserving or reversing mappings.

partial_brauer_monoid_KM07(…)

A presentation for the partial Brauer monoid.

partial_isometries_cycle_graph_monoid_FP22(…)

A presentation for the monoid of partial isometries of a cycle graph.

partial_transformation_monoid_MW24(…)

A presentation for the partial transformation monoid.

partial_transformation_monoid_Shu60(…)

A presentation for the partial transformation monoid.

partition_monoid_Eas11(…)

A presentation for the partition monoid.

partition_monoid_HR05(…)

A presentation for the partition monoid.

plactic_monoid_Knu70(…)

A presentation for the plactic monoid.

rectangular_band_ACOR00(…)

A presentation for a rectangular band.

renner_type_B_monoid_Gay18(…)

A presentation for the Renner monoid of type B.

renner_type_D_monoid_Gay18(…)

A presentation for the Renner monoid of type D.

sigma_plactic_monoid_AHMNT24(…)

A presentation for the \(\sigma\)-plactic monoid.

singular_brauer_monoid_MM07(…)

A presentation for the singular part of the Brauer monoid.

special_linear_group_2_CR80(…)

A presentation for the special linear group \(\mathrm{SL}(2, q)\).

stellar_monoid_GH19(…)

A presentation for the stellar monoid.

stylic_monoid_AR22(…)

A presentation for the stylic monoid.

symmetric_group_Bur12(…)

A presentation for the symmetric group.

symmetric_group_Car56(…)

A presentation for the symmetric group.

symmetric_group_Moo97_a(…)

A presentation for the symmetric group.

symmetric_group_Moo97_b(…)

A presentation for the symmetric group.

symmetric_inverse_monoid_Sol04(…)

A presentation for the symmetric inverse monoid.

symmetric_inverse_monoid_MW24(…)

A presentation for the symmetric inverse monoid.

symmetric_inverse_monoid_Shu60(…)

A presentation for the symmetric inverse monoid.

temperley_lieb_monoid_Eas21(…)

A presentation for the Temperley-Lieb monoid.

uniform_block_bijection_monoid_Fit03(…)

A presentation for the uniform block bijection monoid.

zero_rook_monoid_Gay18(…)

A presentation for the \(0\)-rook monoid.

Full API

This page contains the documentation for the presentation.examples subpackage, that contains functions for generating various examples of presentations for finitely presented semigroups, monoids, and groups.

presentation.examples.alternating_group(n: int) Presentation

A presentation for the alternating group.

This function returns a monoid presentation defining the alternating group of degree n, as in Theorem B of [Moo97].

Parameters:

n (int) – the degree of the alternating group.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 4.

Note

This function returns exactly the same presentation as alternating_group_Moo97, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.alternating_group_Moo97(n: int) Presentation

A presentation for the alternating group.

This function returns a monoid presentation defining the alternating group of degree n, as in Theorem B of [Moo97].

Parameters:

n (int) – the degree of the alternating group.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 4.

presentation.examples.brauer_monoid(n: int) Presentation

A presentation for the Brauer monoid.

This function returns a monoid presentation defining the Brauer monoid of degree n, as described in Theorem 3.1 of [KM07].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 1.

Note

This function returns exactly the same presentation as brauer_monoid_KM07, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.brauer_monoid_KM07(n: int) Presentation

A presentation for the Brauer monoid.

This function returns a monoid presentation defining the Brauer monoid of degree n, as described in Theorem 3.1 of [KM07].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 1.

presentation.examples.chinese_monoid(n: int) Presentation

A presentation for the Chinese monoid.

This function returns a monoid presentation defining the Chinese monoid with n generators, as in [CEK+01].

Parameters:

n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

Note

This function returns exactly the same presentation as chinese_monoid_CEKNH01, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.chinese_monoid_CEKNH01(n: int) Presentation

A presentation for the Chinese monoid.

This function returns a monoid presentation defining the Chinese monoid with n generators, as in [CEK+01].

Parameters:

n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

presentation.examples.cyclic_inverse_monoid(n: int) Presentation

A presentation for the cyclic inverse monoid.

This function returns a monoid presentation defining the cyclic inverse monoid of degree n, as in Theorem 2.7 of [Fer22].

This presentation has \(2\) generators and \(\frac{1}{2}\left(n^2 - n + 6\right)\) relations.

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

See also

For a specific presentation of the full transformation monoid, see one of the following functions:

presentation.examples.cyclic_inverse_monoid_Fer22_a(n: int) Presentation

A presentation for the cyclic inverse monoid.

This function returns a monoid presentation defining the cyclic inverse monoid of degree n, as in Theorem 2.6 of [Fer22]. This has \(n + 1\) generators and \(\frac{1}{2} \left(n^2 + 3n + 4\right)\) relations.

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

presentation.examples.cyclic_inverse_monoid_Fer22_b(n: int) Presentation

A presentation for the cyclic inverse monoid.

This function returns a monoid presentation defining the cyclic inverse monoid of degree n, as in Theorem 2.7 of [Fer22]. This presentation has \(2\) generators and \(\frac{1}{2}\left(n^2 - n + 6\right)\) relations.

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

presentation.examples.dual_symmetric_inverse_monoid(n: int) Presentation

A presentation for the dual symmetric inverse monoid.

This function returns a monoid presentation defining the dual symmetric inverse monoid of degree n, as in Section 3 of [EEF07].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

Note

This function returns exactly the same presentation as dual_symmetric_inverse_monoid, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.dual_symmetric_inverse_monoid_EEF07(n: int) Presentation

A presentation for the dual symmetric inverse monoid.

This function returns a monoid presentation defining the dual symmetric inverse monoid of degree n, as in Section 3 of [EEF07].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

presentation.examples.fibonacci_semigroup(r: int, n: int) Presentation

A presentation for a Fibonacci semigroup.

This function returns a semigroup presentation defining the Fibonacci semigroup \(F(r, n)\), where \(r\) is r and \(n\) is n, as described in [CRRT94].

Parameters:
  • r (int) – the length of the left hand sides of the relations.

  • n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

Note

This function returns exactly the same presentation as fibonacci_semigroup_CRRT94, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.fibonacci_semigroup_CRRT94(r: int, n: int) Presentation

A presentation for a Fibonacci semigroup.

This function returns a semigroup presentation defining the Fibonacci semigroup \(F(r, n)\), where \(r\) is r and \(n\) is n, as described in [CRRT94].

Parameters:
  • r (int) – the length of the left hand sides of the relations.

  • n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:
presentation.examples.full_transformation_monoid(n: int) Presentation

A presentation for the full transformation monoid.

This function returns a monoid presentation defining the full transformation monoid of degree n, corresponding to \(\mathcal{T}\) in Theorem 1.5 of [MW24]. For n >= 4 this presentation has five non-symmetric-group relations.

Parameters:

n (int) – the degree of the full transformation monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

See also

For a specific presentation of the full transformation monoid, see one of the following functions:

presentation.examples.full_transformation_monoid_Aiz58(n: int) Presentation

A presentation for the full transformation monoid.

This function returns a monoid presentation defining the full transformation monoid of degree n, as in Section 5, Theorem 2 of [Aiz58] (Russian) and Chapter 3, Proposition 1.7 of [Rus95] (English).

Parameters:

n (int) – the degree of the full transformation monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 4.

presentation.examples.full_transformation_monoid_II74(n: int) Presentation

A presentation for the full transformation monoid.

This function returns a monoid presentation defining the full transformation monoid of degree n due to Iwahori and Iwahori [II74], as in Theorem 9.3.1 of [GM09].

Parameters:

n (int) – the degree of the full transformation monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 4.

presentation.examples.full_transformation_monoid_MW24_a(n: int) Presentation

A presentation for the full transformation monoid.

This function returns a monoid presentation defining the full transformation monoid of degree n, corresponding to \(\mathcal{T}\) in Theorem 1.5 of [MW24]. For n >= 4 this presentation has five non-symmetric-group relations.

Parameters:

n (int) – the degree of the full transformation monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

presentation.examples.full_transformation_monoid_MW24_b(n: int) Presentation

A presentation for the full transformation monoid.

This function returns a monoid presentation defining the full transformation monoid of degree n, corresponding to \(\mathcal{T}'\) in Theorem 1.5 of [MW24]. This presentation is only valid for odd values of n, and for n >= 5 this presentation has four non-symmetric-group relations.

Parameters:

n (int) – the degree of the full transformation monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:
presentation.examples.hypo_plactic_monoid(n: int) Presentation

A presentation for the hypoplactic monoid.

This function returns a presentation for the hypoplactic monoid with n generators, as in Definition 4.2 of [Nov00].

This monoid is a quotient monoid of the plactic monoid, and this presentation includes the rules from plactic_monoid_Knu70.

Parameters:

n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 1.

Note

This function returns exactly the same presentation as hypo_plactic_monoid_Nov00, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.hypo_plactic_monoid_Nov00(n: int) Presentation

A presentation for the hypoplactic monoid.

This function returns a presentation for the hypoplactic monoid with n generators, as in Definition 4.2 of [Nov00]. This monoid is a quotient monoid of the plactic monoid, and this presentation includes the rules from plactic_monoid_Knu70.

Parameters:

n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 1.

presentation.examples.monogenic_semigroup(m: int, r: int) Presentation

A presentation for a monogenic semigroup.

This function returns a presentation defining the monogenic semigroup defined by the presentation \(\langle a \mid a^{m + r} = a^m \rangle\).

If m is 0, the presentation returned is a monoid presentation; otherwise, a semigroup presentation is returned.

Parameters:
  • m (int) – the index.

  • r (int) – the period.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if r == 0.

presentation.examples.motzkin_monoid(n: int) Presentation

A presentation for the Motzkin monoid.

This function returns a monoid presentation defining the Motzkin monoid of degree n, as described in Theorem 4.1 of [PHL13], with the additional relations :math:` r_i t_i l_i = r_i ^ 2 ` added to fix a hole in Lemma 4.10 which rendered the presentation as stated in the paper incorrect.

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 1.

Note

This function returns exactly the same presentation as motzkin_monoid_PHL13, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.motzkin_monoid_PHL13(n: int) Presentation

A presentation for the Motzkin monoid.

This function returns a monoid presentation defining the Motzkin monoid of degree n, as described in Theorem 4.1 of [PHL13], with the additional relations :math:` r_i t_i l_i = r_i^ 2 ` added to fix a hole in Lemma 4.10 which rendered the presentation as stated in the paper incorrect.

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 1.

presentation.examples.not_renner_type_B_monoid(l: int, q: int) Presentation

A presentation that incorrectly claims to be the Renner monoid of type B.

This functions returns a presentation that incorrectly claims to be the Renner monoid of type B with size l and Iwahori-Hecke deformation q.

When q == 0, this corresponds to Example 7.1.2 of [Gay18].

When q == 1, this corresponds to Section 3.2 of [God09].

Parameters:
  • l (int) – the size of the monoid.

  • q (int) – the Iwahori-Hecke deformation.

Returns:

The specified presentation

Return type:

Presentation

Raises:

LibsemigroupsError – if q != 0 or q != 1.

Note

This function returns exactly the same presentation as not_renner_type_B_monoid_Gay18, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.not_renner_type_B_monoid_Gay18(l: int, q: int) Presentation

A presentation that incorrectly claims to be the Renner monoid of type B.

This functions returns a presentation that incorrectly claims to be the Renner monoid of type B with size l and Iwahori-Hecke deformation q.

When q == 0, this corresponds to Example 7.1.2 of [Gay18].

When q == 1, this corresponds to Section 3.2 of [God09].

Parameters:
  • l (int) – the size of the monoid.

  • q (int) – the Iwahori-Hecke deformation.

Returns:

The specified presentation

Return type:

Presentation

Raises:

LibsemigroupsError – if q != 0 or q != 1.

presentation.examples.not_renner_type_D_monoid(l: int, q: int) Presentation

A presentation that incorrectly claims to be the Renner monoid of type D.

This functions returns a presentation that incorrectly claims to be the Renner monoid of type D with size l and Iwahori-Hecke deformation q.

When q == 1, this corresponds to Section 3.3 of [God09].

Parameters:
  • l (int) – the size of the monoid.

  • q (int) – the Iwahori-Hecke deformation.

Returns:

The specified presentation

Return type:

Presentation

Raises:

LibsemigroupsError – if q != 0 or q != 1.

Note

This function returns exactly the same presentation as not_renner_type_D_monoid_God09, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.not_renner_type_D_monoid_God09(l: int, q: int) Presentation

A presentation that incorrectly claims to be the Renner monoid of type D.

This functions returns a presentation that incorrectly claims to be the Renner monoid of type D with size l and Iwahori-Hecke deformation q.

When q == 1, this corresponds to Section 3.3 of [God09].

Parameters:
  • l (int) – the size of the monoid.

  • q (int) – the Iwahori-Hecke deformation.

Returns:

The specified presentation

Return type:

Presentation

Raises:

LibsemigroupsError – if q != 0 or q != 1.

presentation.examples.not_symmetric_group(n: int) Presentation

A non-presentation for the symmetric group.

This function returns a monoid presentation which is claimed to define the symmetric group of degree n, but does not, as in Section 2.2 of [GKKL08].

Parameters:

n (int) – the claimed degree of the symmetric group.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 4.

Note

This function returns exactly the same presentation as not_symmetric_group_GKKL08, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.not_symmetric_group_GKKL08(n: int) Presentation

A non-presentation for the symmetric group.

This function returns a monoid presentation which is claimed to define the symmetric group of degree n, but does not, as in Section 2.2 of [GKKL08].

Parameters:

n (int) – the claimed degree of the symmetric group.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 4.

presentation.examples.order_preserving_cyclic_inverse_monoid(n: int) Presentation

A presentation for the order preserving part of the cyclic inverse monoid.

This function returns a monoid presentation defining the order preserving part of the cyclic inverse monoid of degree n, as in Theorem 2.17 of [Fer22].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

Note

This function returns exactly the same presentation as order_preserving_cyclic_inverse_monoid_Fer22, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.order_preserving_cyclic_inverse_monoid_Fer22(n: int) Presentation

A presentation for the order preserving part of the cyclic inverse monoid.

This function returns a monoid presentation defining the order preserving part of the cyclic inverse monoid of degree n, as in Theorem 2.17 of [Fer22].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

presentation.examples.order_preserving_monoid(n: int) Presentation

A presentation for the monoid of order preserving mappings.

This function returns a monoid presentation defining the monoid of order preserving transformations of degree n, as described in Section 2 of [AR00]. This presentation has \(2n - 2\) generators and \(n^2\) relations.

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

Note

This function returns exactly the same presentation as order_preserving_monoid_AR00, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.order_preserving_monoid_AR00(n: int) Presentation

A presentation for the monoid of order preserving mappings.

This function returns a monoid presentation defining the monoid of order preserving transformations of degree n, as described in Section 2 of [AR00]. This presentation has \(2n - 2\) generators and \(n^2\) relations.

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

presentation.examples.orientation_preserving_monoid(n: int) Presentation

A presentation for the monoid of orientation preserving mappings.

This function returns a monoid presentation defining the monoid of orientation preserving mappings on a finite chain of order n, as described in [AR00].

Parameters:

n (int) – the order of the chain.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

Note

This function returns exactly the same presentation as orientation_preserving_monoid_AR00, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.orientation_preserving_monoid_AR00(n: int) Presentation

A presentation for the monoid of orientation preserving mappings.

This function returns a monoid presentation defining the monoid of orientation preserving mappings on a finite chain of order n, as described in [AR00].

Parameters:

n (int) – the order of the chain.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

presentation.examples.orientation_preserving_reversing_monoid(n: int) Presentation

A presentation for the monoid of orientation preserving or reversing mappings.

This function returns a monoid presentation defining the monoid of orientation preserving or reversing mappings on a finite chain of order n, as described in [AR00].

Parameters:

n (int) – the order of the chain.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

Note

This function returns exactly the same presentation as orientation_preserving_reversing_monoid_AR00, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.orientation_preserving_reversing_monoid_AR00(n: int) Presentation

A presentation for the monoid of orientation preserving or reversing mappings.

This function returns a monoid presentation defining the monoid of orientation preserving or reversing mappings on a finite chain of order n, as described in [AR00].

Parameters:

n (int) – the order of the chain.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

presentation.examples.partial_brauer_monoid(n: int) Presentation

A presentation for the partial Brauer monoid.

This function returns a monoid presentation defining the partial Brauer monoid of degree n, as described in Theorem 5.1 of [KM07].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 1.

Note

This function returns exactly the same presentation as partial_brauer_monoid_KM07, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.partial_brauer_monoid_KM07(n: int) Presentation

A presentation for the partial Brauer monoid.

This function returns a monoid presentation defining the partial Brauer monoid of degree n, as described in Theorem 5.1 of [KM07].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 1.

presentation.examples.partial_isometries_cycle_graph_monoid(n: int) Presentation

A presentation for the monoid of partial isometries of a cycle graph.

This function returns a monoid presentation defining the monoid of partial isometries of an \(n\)-cycle graph, as in Theorem 2.8 of [FP22]

Parameters:

n (int) – the number of vertices of the cycle graph.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

Note

This function returns exactly the same presentation as partial_isometries_cycle_graph_monoid_FP22, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.partial_isometries_cycle_graph_monoid_FP22(n: int) Presentation

A presentation for the monoid of partial isometries of a cycle graph.

This function returns a monoid presentation defining the monoid of partial isometries of an \(n\) -cycle graph, as in Theorem 2.8 of [FP22]

Parameters:

n (int) – the number of vertices of the cycle graph.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

presentation.examples.partial_transformation_monoid(n: int) Presentation

A presentation for the partial transformation monoid.

This function returns a monoid presentation defining the partial transformation monoid of degree n, as in Theorem 1.6 of [MW24].

Parameters:

n (int) – the degree of the partial transformation monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

See also

For a specific presentation of the full transformation monoid, see one of the following functions:

presentation.examples.partial_transformation_monoid_MW24(n: int) Presentation

A presentation for the partial transformation monoid.

This function returns a monoid presentation defining the partial transformation monoid of degree n, as in Theorem 1.6 of [MW24].

Parameters:

n (int) – the degree of the partial transformation monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

presentation.examples.partial_transformation_monoid_Shu60(n: int) Presentation

A presentation for the partial transformation monoid.

This function returns a monoid presentation defining the partial transformation monoid of degree n due to Shutov [Shu60], as in Theorem 9.4.1 of [GM09].

Parameters:

n (int) – the degree of the partial transformation monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 4.

presentation.examples.partition_monoid(n: int) Presentation

A presentation for the partition monoid.

This function returns a monoid presentation defining the partition monoid of degree n, as in Theorem 41 of [Eas11].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 4.

See also

For a specific presentation of the symmetric group, see one of the following functions:

presentation.examples.partition_monoid_Eas11(n: int) Presentation

A presentation for the partition monoid.

This function returns a monoid presentation defining the partition monoid of degree n, as in Theorem 41 of [Eas11].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 4.

presentation.examples.partition_monoid_HR05(n: int) Presentation

A presentation for the partition monoid.

This function returns a monoid presentation defining the partition monoid of degree n, as in [HR05].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 1.

presentation.examples.plactic_monoid(n: int) Presentation

A presentation for the plactic monoid.

This function returns a monoid presentation defining the plactic monoid with n generators, as in see Theorem 6 of [Knu70].

Parameters:

n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

Note

This function returns exactly the same presentation as plactic_monoid_Knu70, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.plactic_monoid_Knu70(n: int) Presentation

A presentation for the plactic monoid.

This function returns a monoid presentation defining the plactic monoid with n generators, as in see Theorem 6 of [Knu70].

Parameters:

n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

presentation.examples.rectangular_band(m: int, n: int) Presentation

A presentation for a rectangular band.

This function returns a semigroup presentation defining the m by n rectangular band, as given in Proposition 4.2 of [ACOConnorR00].

Parameters:
  • m (int) – the number of rows.

  • n (int) – the number of columns.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

Note

This function returns exactly the same presentation as rectangular_band_ACOR00, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.rectangular_band_ACOR00(m: int, n: int) Presentation

A presentation for a rectangular band.

This function returns a semigroup presentation defining the m by n rectangular band, as given in Proposition 4.2 of [ACOConnorR00].

Parameters:
  • m (int) – the number of rows.

  • n (int) – the number of columns.

Returns:

The specified presentation.

Return type:

Presentation

Raises:
presentation.examples.renner_type_B_monoid(l: int, q: int) Presentation

A presentation for the Renner monoid of type B.

This functions returns a presentation for the Renner monoid of type B with size l and Iwahori-Hecke deformation q.

When q == 0, this corresponds to Definition 8.4.1 and Example 8.4.2 of [Gay18].

When q == 1, this corresponds to Theorem 8.4.19 of [Gay18].

Parameters:
  • l (int) – the size of the monoid.

  • q (int) – the Iwahori-Hecke deformation.

Returns:

The specified presentation

Return type:

Presentation

Raises:

LibsemigroupsError – if q != 0 or q != 1.

Note

This function returns exactly the same presentation as renner_type_B_monoid_Gay18, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.renner_type_B_monoid_Gay18(l: int, q: int) Presentation

A presentation for the Renner monoid of type B.

This functions returns a presentation for the Renner monoid of type B with size l and Iwahori-Hecke deformation q.

When q == 0, this corresponds to Definition 8.4.1 and Example 8.4.2 of [Gay18].

When q == 1, this corresponds to Theorem 8.4.19 of [Gay18].

Parameters:
  • l (int) – the size of the monoid.

  • q (int) – the Iwahori-Hecke deformation.

Returns:

The specified presentation

Return type:

Presentation

Raises:

LibsemigroupsError – if q != 0 or q != 1.

presentation.examples.renner_type_D_monoid(l: int, q: int) Presentation

A presentation for the Renner monoid of type D.

This functions returns a presentation for the Renner monoid of type D with size l and Iwahori-Hecke deformation q.

When q == 0, this corresponds Definition 8.4.22 of [Gay18].

When q == 1, this corresponds to Theorem 8.4.43 of [Gay18].

Parameters:
  • l (int) – the size of the monoid.

  • q (int) – the Iwahori-Hecke deformation.

Returns:

The specified presentation

Return type:

Presentation

Raises:

LibsemigroupsError – if q != 0 or q != 1.

Note

This function returns exactly the same presentation as renner_type_D_monoid_Gay18, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.renner_type_D_monoid_Gay18(l: int, q: int) Presentation

A presentation for the Renner monoid of type D.

This functions returns a presentation for the Renner monoid of type D with size l and Iwahori-Hecke deformation q.

When q == 0, this corresponds Definition 8.4.22 of [Gay18].

When q == 1, this corresponds to Theorem 8.4.43 of [Gay18].

Parameters:
  • l (int) – the size of the monoid.

  • q (int) – the Iwahori-Hecke deformation.

Returns:

The specified presentation

Return type:

Presentation

Raises:

LibsemigroupsError – if q != 0 or q != 1.

presentation.examples.sigma_plactic_monoid(sigma: list[int]) Presentation

A presentation for the \(\sigma\)-plactic monoid.

This function returns a presentation for the \(\sigma\)-plactic monoid with sigma.size() generators, where the image of \(\sigma\) is given by the values in sigma.

The \(\sigma\)-plactic monoid is the quotient of the plactic monoid by the least congruence containing the relation \(a^{\sigma(a)} = a\) for each \(a\) in the alphabet. When \(\sigma(a) = 2\) for all \(a\), the resultant \(\sigma\)-plactic monoid is known as the stylic monoid, and is given in stylic_monoid.

Parameters:

sigma (list[int]) – a list representing the image of \(\sigma\).

Returns:

The specified presentation.

Return type:

Presentation

presentation.examples.sigma_plactic_monoid_AHMNT24(sigma: list[int]) Presentation

A presentation for the \(\sigma\)-plactic monoid.

This function returns a presentation for the \(\sigma\)-plactic monoid with sigma.size() generators as in Section 3.1 [AHM+24]. The image of \(\sigma\) is given by the values in sigma.

The \(\sigma\)-plactic monoid is the quotient of the plactic monoid by the least congruence containing the relation \(a^{\sigma(a)} = a\) for each \(a\) in the alphabet. When \(\sigma(a) = 2\) for all \(a\), the resultant \(\sigma\)-plactic monoid is known as the stylic monoid, and is given in stylic_monoid.

Parameters:

sigma (list[int]) – a list representing the image of $sigma$.

Returns:

The specified presentation

Return type:

Presentation

Raises:

LibsemigroupsError – if len(sigma) < 1.

presentation.examples.singular_brauer_monoid(n: int) Presentation

A presentation for the singular part of the Brauer monoid.

This function returns a monoid presentation for the singular part of the Brauer monoid of degree n, as in Theorem 5 of [MM07].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

Note

This function returns exactly the same presentation as singular_brauer_monoid_MM07, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.singular_brauer_monoid_MM07(n: int) Presentation

A presentation for the singular part of the Brauer monoid.

This function returns a monoid presentation for the singular part of the Brauer monoid of degree n, as in Theorem 5 of [MM07].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

presentation.examples.special_linear_group_2(q: int) Presentation

A presentation for the special linear group \(\mathrm{SL}(2, q)\).

This function returns a presentation for the special linear group \(\mathrm{SL}(2, q)\) (also written \(\mathrm{SL(2, \mathbb{Z}_q)}\)), where q is an odd prime, as in Theorem 4 of [CR80].

Parameters:

q (int) – the order of the finite field over which the special linear group is constructed. This should be an odd prime for the returned presentation to define claimed group.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if q < 3.

Note

This function returns exactly the same presentation as special_linear_group_2_CR80, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.special_linear_group_2_CR80(q: int) Presentation

A presentation for the special linear group \(\mathrm{SL}(2, q)\).

This function returns a presentation for the special linear group \(\mathrm{SL}(2, q)\) (also written \(\mathrm{SL(2, \mathbb{Z}_q)}\)), where q is an odd prime, as in Theorem 4 of [CR80].

Parameters:

q (int) – the order of the finite field over which the special linear group is constructed. This should be an odd prime for the returned presentation to define claimed group.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if q < 3.

presentation.examples.stellar_monoid(l: int) Presentation

A presentation for the stellar monoid.

This function returns a monoid presentation defining the stellar monoid with l generators, as in Theorem 4.39 of [GH19].

Parameters:

l (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if l < 2.

Note

This function returns exactly the same presentation as stellar_monoid_GH19, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.stellar_monoid_GH19(l: int) Presentation

A presentation for the stellar monoid.

This function returns a monoid presentation defining the stellar monoid with l generators, as in Theorem 4.39 of [GH19].

Parameters:

l (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if l < 2.

presentation.examples.stylic_monoid(n: int) Presentation

A presentation for the stylic monoid.

This function returns a monoid presentation defining the stylic monoid with n generators, as in Theorem 8.1 of [AR22].

Parameters:

n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

Note

This function returns exactly the same presentation as stylic_monoid_AR22, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.stylic_monoid_AR22(n: int) Presentation

A presentation for the stylic monoid.

This function returns a monoid presentation defining the stylic monoid with n generators, as in Theorem 8.1 of [AR22].

Parameters:

n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

presentation.examples.symmetric_group(n: int) Presentation

A presentation for the symmetric group.

This function returns a monoid presentation for the symmetric group of degree n, as on page 169 of [Car56]. This presentation has \(n - 1\) generators and \((n - 1)^2\) relations.

Parameters:

n (int) – the degree of the symmetric group.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

See also

For a specific presentation of the symmetric group, see one of the following functions:

presentation.examples.symmetric_group_Bur12(n: int) Presentation

A presentation for the symmetric group.

This function returns a monoid presentation for the symmetric group of degree n, as in p.464 of [Bur12]. This presentation has \(n - 1\) generators and \(n^3 - 5n^2 + 9n - 5\) relations.

Parameters:

n (int) – the degree of the symmetric group.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

presentation.examples.symmetric_group_Car56(n: int) Presentation

A presentation for the symmetric group.

This function returns a monoid presentation for the symmetric group of degree n, as on page 169 of [Car56]. This presentation has \(n - 1\) generators and \((n - 1)^2\) relations.

Parameters:

n (int) – the degree of the symmetric group.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

presentation.examples.symmetric_group_Moo97_a(n: int) Presentation

A presentation for the symmetric group.

This function returns a monoid presentation for the symmetric group of degree n, as in Theorem A of [Moo97]. This presentation has \(n - 1\) generators and \(\frac{1}{2}n(n - 1)\) relations.

Parameters:

n (int) – the degree of the symmetric group.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

presentation.examples.symmetric_group_Moo97_b(n: int) Presentation

A presentation for the symmetric group.

This function returns a monoid presentation for the symmetric group of degree n, as in in Theorem A’ of [Moo97]. This presentation has \(2\) generators and \(n + 1\) relations for \(n \geq 4\). If \(n<4\) then there are \(4\) relations.

Parameters:

n (int) – the degree of the symmetric group.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

presentation.examples.symmetric_inverse_monoid(n: int) Presentation

A presentation for the partial transformation monoid.

This function returns a monoid presentation defining the partial transformation monoid of degree n, as in Theorem 1.6 of [MW24].

Parameters:

n (int) – the degree of the partial transformation monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

See also

For a specific presentation of the full transformation monoid, see one of the following functions:

presentation.examples.symmetric_inverse_monoid_MW24(n: int) Presentation

A presentation for the symmetric inverse monoid.

This function returns a monoid presentation defining the partial transformation monoid of degree n, as in Theorem 1.4 of [MW24].

Parameters:

n (int) – the degree of the symmetric inverse monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 4.

presentation.examples.symmetric_inverse_monoid_Shu60(n: int) Presentation

A presentation for the symmetric inverse monoid.

This function returns a monoid presentation defining the symmetric inverse monoid of degree n due to Shutov [Shu60], as in Theorem 9.2.2 of [GM09].

Parameters:

n (int) – the degree of the symmetric inverse monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 4.

presentation.examples.symmetric_inverse_monoid_Sol04(n: int) Presentation

A presentation for the symmetric inverse monoid.

This function returns a monoid presentation defining the symmetric inverse monoid of degree n, as in Example 7.1.2 of [Gay18].

Parameters:

n (int) – the degree of the symmetric inverse monoid.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

presentation.examples.temperley_lieb_monoid(n: int) Presentation

A presentation for the Temperley-Lieb monoid.

This function returns a monoid presentation defining the Temperley-Lieb monoid with n generators, as described in Theorem 2.2 of [Eas21].

Parameters:

n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

Note

This function returns exactly the same presentation as temperley_lieb_monoid_Eas21, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.temperley_lieb_monoid_Eas21(n: int) Presentation

A presentation for the Temperley-Lieb monoid.

This function returns a monoid presentation defining the Temperley-Lieb monoid with n generators, as described in Theorem 2.2 of [Eas21].

Parameters:

n (int) – the number of generators.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

presentation.examples.uniform_block_bijection_monoid(n: int) Presentation

A presentation for the uniform block bijection monoid.

This function returns a monoid presentation defining the uniform block bijection monoid of degree n, as in [Fit03].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

Note

This function returns exactly the same presentation as uniform_block_bijection_monoid_Fit03, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.uniform_block_bijection_monoid_Fit03(n: int) Presentation

A presentation for the uniform block bijection monoid.

This function returns a monoid presentation defining the uniform block bijection monoid of degree n, as in [Fit03].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 3.

presentation.examples.zero_rook_monoid(n: int) Presentation

A presentation for the \(0\)-rook monoid.

This function returns a presentation for the \(0\)-rook monoid of degree n, as in Definition 4.1.1 in [Gay18]

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.

Note

This function returns exactly the same presentation as zero_rook_monoid_Gay18, and exists as a convenience function for when a presentation for the alternating group is required, but the specific presentation is not important.

presentation.examples.zero_rook_monoid_Gay18(n: int) Presentation

A presentation for the \(0\)-rook monoid.

This function returns a presentation for the \(0\) -rook monoid of degree n, as in Definition 4.1.1 in [Gay18].

Parameters:

n (int) – the degree.

Returns:

The specified presentation.

Return type:

Presentation

Raises:

LibsemigroupsError – if n < 2.