libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
libsemigroups::presentation::examples Namespace Reference

Defined in presentation-examples.hpp.

This namespace contains functions which give presentations for some common finitely presented semigroups and monoids.

Functions

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.

Presentation< word_typealternating_group (size_t n)
 A presentation for the alternating group.
 
Presentation< word_typebrauer_monoid (size_t n)
 A presentation for the Brauer monoid.
 
Presentation< word_typechinese_monoid (size_t n)
 A presentation for the Chinese monoid.
 
Presentation< word_typecyclic_inverse_monoid (size_t n)
 A presentation for the cyclic inverse monoid.
 
Presentation< word_typedual_symmetric_inverse_monoid (size_t n)
 A presentation for the dual symmetric inverse monoid.
 
Presentation< word_typefibonacci_semigroup (size_t r, size_t n)
 A presentation for a Fibonacci semigroup.
 
Presentation< word_typefull_transformation_monoid (size_t n)
 A presentation for the full transformation monoid.
 
Presentation< word_typehypo_plactic_monoid (size_t n)
 A presentation for the hypoplactic monoid.
 
Presentation< word_typemonogenic_semigroup (size_t m, size_t r)
 A presentation for a monogenic semigroup.
 
Presentation< word_typemotzkin_monoid (size_t n)
 A presentation for the Motzkin monoid.
 
Presentation< word_typenot_renner_type_B_monoid (size_t l, int q)
 A presentation that incorrectly claims to be the Renner monoid of type B.
 
Presentation< word_typenot_renner_type_D_monoid (size_t l, int q)
 A presentation that incorrectly claims to be the Renner monoid of type D.
 
Presentation< word_typenot_symmetric_group (size_t n)
 A non-presentation for the symmetric group.
 
Presentation< word_typeorder_preserving_cyclic_inverse_monoid (size_t n)
 A presentation for the order preserving part of the cyclic inverse monoid.
 
Presentation< word_typeorder_preserving_monoid (size_t n)
 A presentation for the monoid of order preserving mappings.
 
Presentation< word_typeorientation_preserving_monoid (size_t n)
 A presentation for the monoid of orientation preserving mappings.
 
Presentation< word_typeorientation_preserving_reversing_monoid (size_t n)
 A presentation for the monoid of orientation preserving or reversing mappings.
 
Presentation< word_typepartial_brauer_monoid (size_t n)
 A presentation for the partial Brauer monoid.
 
Presentation< word_typepartial_isometries_cycle_graph_monoid (size_t n)
 A presentation for the monoid of partial isometries of a cycle graph.
 
Presentation< word_typepartial_transformation_monoid (size_t n)
 A presentation for the partial transformation monoid.
 
Presentation< word_typepartition_monoid (size_t n)
 A presentation for the partition monoid.
 
Presentation< word_typeplactic_monoid (size_t n)
 A presentation for the plactic monoid.
 
Presentation< word_typerectangular_band (size_t m, size_t n)
 A presentation for a rectangular band.
 
Presentation< word_typerenner_type_B_monoid (size_t l, int q)
 A presentation for the Renner monoid of type B.
 
Presentation< word_typerenner_type_D_monoid (size_t l, int q)
 A presentation for the Renner monoid of type D.
 
Presentation< word_typesigma_plactic_monoid (std::vector< size_t > const &sigma)
 A presentation for the \(\sigma\)-plactic monoid.
 
Presentation< word_typesingular_brauer_monoid (size_t n)
 A presentation for the singular part of the Brauer monoid.
 
Presentation< word_typespecial_linear_group_2 (size_t q)
 A presentation for the special linear group \(\mathrm{SL}(2, q)\).
 
Presentation< word_typestellar_monoid (size_t l)
 A presentation for the stellar monoid.
 
Presentation< word_typestylic_monoid (size_t n)
 A presentation for the stylic monoid.
 
Presentation< word_typesymmetric_group (size_t n)
 A presentation for the symmetric group.
 
Presentation< word_typesymmetric_inverse_monoid (size_t n)
 A presentation for the partial transformation monoid.
 
Presentation< word_typetemperley_lieb_monoid (size_t n)
 A presentation for the Temperley-Lieb monoid.
 
Presentation< word_typeuniform_block_bijection_monoid (size_t n)
 A presentation for the uniform block bijection monoid.
 
Presentation< word_typezero_rook_monoid (size_t n)
 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.

Presentation< word_typealternating_group_Moo97 (size_t n)
 A presentation for the alternating group.
 
Presentation< word_typebrauer_monoid_KM07 (size_t n)
 A presentation for the Brauer monoid.
 
Presentation< word_typechinese_monoid_CEKNH01 (size_t n)
 A presentation for the Chinese monoid.
 
Presentation< word_typecyclic_inverse_monoid_Fer22_a (size_t n)
 A presentation for the cyclic inverse monoid.
 
Presentation< word_typecyclic_inverse_monoid_Fer22_b (size_t n)
 A presentation for the cyclic inverse monoid.
 
Presentation< word_typedual_symmetric_inverse_monoid_EEF07 (size_t n)
 A presentation for the dual symmetric inverse monoid.
 
Presentation< word_typefibonacci_semigroup_CRRT94 (size_t r, size_t n)
 A presentation for a Fibonacci semigroup.
 
Presentation< word_typefull_transformation_monoid_Aiz58 (size_t n)
 A presentation for the full transformation monoid.
 
Presentation< word_typefull_transformation_monoid_II74 (size_t n)
 A presentation for the full transformation monoid.
 
Presentation< word_typefull_transformation_monoid_MW24_a (size_t n)
 A presentation for the full transformation monoid.
 
Presentation< word_typefull_transformation_monoid_MW24_b (size_t n)
 A presentation for the full transformation monoid.
 
Presentation< word_typehypo_plactic_monoid_Nov00 (size_t n)
 A presentation for the hypoplactic monoid.
 
Presentation< word_typemotzkin_monoid_PHL13 (size_t n)
 A presentation for the Motzkin monoid.
 
Presentation< word_typenot_renner_type_B_monoid_Gay18 (size_t l, int q)
 A presentation that incorrectly claims to be the Renner monoid of type B.
 
Presentation< word_typenot_renner_type_D_monoid_God09 (size_t l, int q)
 A presentation that incorrectly claims to be the Renner monoid of type D.
 
Presentation< word_typenot_symmetric_group_GKKL08 (size_t n)
 A non-presentation for the symmetric group.
 
Presentation< word_typeorder_preserving_cyclic_inverse_monoid_Fer22 (size_t n)
 A presentation for the order preserving part of the cyclic inverse monoid.
 
Presentation< word_typeorder_preserving_monoid_AR00 (size_t n)
 A presentation for the monoid of order preserving mappings.
 
Presentation< word_typeorientation_preserving_monoid_AR00 (size_t n)
 A presentation for the monoid of orientation preserving mappings.
 
Presentation< word_typeorientation_preserving_reversing_monoid_AR00 (size_t n)
 A presentation for the monoid of orientation preserving or reversing mappings.
 
Presentation< word_typepartial_brauer_monoid_KM07 (size_t n)
 A presentation for the partial Brauer monoid.
 
Presentation< word_typepartial_isometries_cycle_graph_monoid_FP22 (size_t n)
 A presentation for the monoid of partial isometries of a cycle graph.
 
Presentation< word_typepartial_transformation_monoid_MW24 (size_t n)
 A presentation for the partial transformation monoid.
 
Presentation< word_typepartial_transformation_monoid_Shu60 (size_t n)
 A presentation for the partial transformation monoid.
 
Presentation< word_typepartition_monoid_Eas11 (size_t n)
 A presentation for the partition monoid.
 
Presentation< word_typepartition_monoid_HR05 (size_t n)
 A presentation for the partition monoid.
 
Presentation< word_typeplactic_monoid_Knu70 (size_t n)
 A presentation for the plactic monoid.
 
Presentation< word_typerectangular_band_ACOR00 (size_t m, size_t n)
 A presentation for a rectangular band.
 
Presentation< word_typerenner_type_B_monoid_Gay18 (size_t l, int q)
 A presentation for the Renner monoid of type B.
 
Presentation< word_typerenner_type_D_monoid_Gay18 (size_t l, int q)
 A presentation for the Renner monoid of type D.
 
Presentation< word_typesigma_plactic_monoid_AHMNT24 (std::vector< size_t > const &sigma)
 A presentation for the \(\sigma\)-plactic monoid.
 
Presentation< word_typesingular_brauer_monoid_MM07 (size_t n)
 A presentation for the singular part of the Brauer monoid.
 
Presentation< word_typespecial_linear_group_2_CR80 (size_t q)
 A presentation for the special linear group \(\mathrm{SL}(2, q)\).
 
Presentation< word_typestellar_monoid_GH19 (size_t l)
 A presentation for the stellar monoid.
 
Presentation< word_typestylic_monoid_AR22 (size_t n)
 A presentation for the stylic monoid.
 
Presentation< word_typesymmetric_group_Bur12 (size_t n)
 A presentation for the symmetric group.
 
Presentation< word_typesymmetric_group_Car56 (size_t n)
 A presentation for the symmetric group.
 
Presentation< word_typesymmetric_group_Moo97_a (size_t n)
 A presentation for the symmetric group.
 
Presentation< word_typesymmetric_group_Moo97_b (size_t n)
 A presentation for the symmetric group.
 
Presentation< word_typesymmetric_inverse_monoid_Sol04 (size_t n)
 A presentation for the symmetric inverse monoid.
 
Presentation< word_typesymmetric_inverse_monoid_MW24 (size_t n)
 A presentation for the symmetric inverse monoid.
 
Presentation< word_typesymmetric_inverse_monoid_Shu60 (size_t n)
 A presentation for the symmetric inverse monoid.
 
Presentation< word_typetemperley_lieb_monoid_Eas21 (size_t n)
 A presentation for the Temperley-Lieb monoid.
 
Presentation< word_typeuniform_block_bijection_monoid_Fit03 (size_t n)
 A presentation for the uniform block bijection monoid.
 
Presentation< word_typezero_rook_monoid_Gay18 (size_t n)
 A presentation for the \(0\)-rook monoid.
 

Function Documentation

◆ alternating_group()

Presentation< word_type > alternating_group ( size_t n)
inlinenodiscard

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

Parameters
nthe degree of the alternating group.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.
Note
This function performs exactly the same as alternating_group_Moo97, and exists as a convenience function for when a presentation for the alternating group is required, but the relations of the presentation are not important.
See also
alternating_group_Moo97.

◆ alternating_group_Moo97()

Presentation< word_type > alternating_group_Moo97 ( size_t n)
nodiscard

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

Parameters
nthe degree of the alternating group.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.

◆ brauer_monoid()

Presentation< word_type > brauer_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 1.
Note
This function performs exactly the same as brauer_monoid_KM07, and exists as a convenience function for when a presentation for the Brauer monoid is required, but the relations of the presentation are not important.
See also
brauer_monoid_KM07.

◆ brauer_monoid_KM07()

Presentation< word_type > brauer_monoid_KM07 ( size_t n)
nodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 1.

◆ chinese_monoid()

Presentation< word_type > chinese_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.
Note
This function performs exactly the same as chinese_monoid_CEKNH01, and exists as a convenience function for when a presentation for the Chinese monoid is required, but the particular relations in the presentation are not important.
See also
chinese_monoid_CEKNH01.

◆ chinese_monoid_CEKNH01()

Presentation< word_type > chinese_monoid_CEKNH01 ( size_t n)
nodiscard

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

Parameters
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.

◆ cyclic_inverse_monoid()

Presentation< word_type > cyclic_inverse_monoid ( size_t n)
inlinenodiscard

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

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.
Note
This function performs exactly the same as cyclic_inverse_monoid_Fer22_b, and exists as a convenience function for when a presentation for the cyclic inverse monoid is required, but the particular relations in the presentation are not important.
See also
For a specific presentation of the full transformation monoid, see one of the following functions:

◆ cyclic_inverse_monoid_Fer22_a()

Presentation< word_type > cyclic_inverse_monoid_Fer22_a ( size_t n)
nodiscard

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

This has \(n + 1\) generators and \(\frac{1}{2} \left(n^2 + 3n + 4\right)\) relations.

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.

◆ cyclic_inverse_monoid_Fer22_b()

Presentation< word_type > cyclic_inverse_monoid_Fer22_b ( size_t n)
nodiscard

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

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.

◆ dual_symmetric_inverse_monoid()

Presentation< word_type > dual_symmetric_inverse_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.
Note
This function performs exactly the same as dual_symmetric_inverse_monoid_EEF07, and exists as a convenience function for when a presentation for the dual symmetric inverse monoid is required, but the particular relations in the presentation are not important.
See also
dual_symmetric_inverse_monoid.

◆ dual_symmetric_inverse_monoid_EEF07()

Presentation< word_type > dual_symmetric_inverse_monoid_EEF07 ( size_t n)
nodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.

◆ fibonacci_semigroup()

Presentation< word_type > fibonacci_semigroup ( size_t r,
size_t n )
inlinenodiscard

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

Parameters
rthe length of the left hand sides of the relations.
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 1.
LibsemigroupsExceptionif r < 1.
Note
This function performs exactly the same as fibonacci_semigroup_CRRT94, and exists as a convenience function for when a presentation for the Fibonacci semigroup is required, but the relations of the presentation are not important.
See also
fibonacci_semigroup_CRRT94.

◆ fibonacci_semigroup_CRRT94()

Presentation< word_type > fibonacci_semigroup_CRRT94 ( size_t r,
size_t n )
nodiscard

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

Parameters
rthe length of the left hand sides of the relations.
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 1.
LibsemigroupsExceptionif r < 1.

◆ full_transformation_monoid()

Presentation< word_type > full_transformation_monoid ( size_t n)
nodiscard

This function returns a monoid presentation defining the full transformation monoid of degree n.

Parameters
nthe degree of the full transformation monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.
Note
This function is almost exactly the same as full_transformation_monoid_MW24_a, and exists as a convenience function for when a presentation for the full transformation monoid is required, but the particular relations in the presentation are not important.
See also
For a specific presentation of the full transformation monoid, see one of the following functions:

◆ full_transformation_monoid_Aiz58()

Presentation< word_type > full_transformation_monoid_Aiz58 ( size_t n)
nodiscard

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

Parameters
nthe degree of the full transformation monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.

◆ full_transformation_monoid_II74()

Presentation< word_type > full_transformation_monoid_II74 ( size_t n)
nodiscard

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

Parameters
nthe degree of the full transformation monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.

◆ full_transformation_monoid_MW24_a()

Presentation< word_type > full_transformation_monoid_MW24_a ( size_t n)
nodiscard

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

Parameters
nthe degree of the full transformation monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.

◆ full_transformation_monoid_MW24_b()

Presentation< word_type > full_transformation_monoid_MW24_b ( size_t n)
nodiscard

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

Parameters
nthe degree of the full transformation monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.
LibsemigroupsExceptionif n is not odd.

◆ hypo_plactic_monoid()

Presentation< word_type > hypo_plactic_monoid ( size_t n)
inlinenodiscard

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

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

Parameters
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 1.
Note
This function performs exactly the same as hypo_plactic_monoid_Nov00, and exists as a convenience function for when a presentation for the hypoplactic monoid is required, but the relations of the presentation are not important.
See also
hypo_plactic_monoid_Nov00.

◆ hypo_plactic_monoid_Nov00()

Presentation< word_type > hypo_plactic_monoid_Nov00 ( size_t n)
nodiscard

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

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

Parameters
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 1.

◆ monogenic_semigroup()

Presentation< word_type > monogenic_semigroup ( size_t m,
size_t r )
nodiscard

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
mthe index.
rthe period.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif r == 0.

◆ motzkin_monoid()

Presentation< word_type > motzkin_monoid ( size_t n)
inlinenodiscard

This function returns a monoid presentation defining the Motzkin monoid of degree n, as described in Theorem 4.1 of [50], with the additional relations \( 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
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 1.
Note
This function performs exactly the same as motzkin_monoid_PHL13, and exists as a convenience function for when a presentation for the Motzkin monoid is required, but the relations of the presentation are not important.
See also
motzkin_monoid_PHL13.

◆ motzkin_monoid_PHL13()

Presentation< word_type > motzkin_monoid_PHL13 ( size_t n)
nodiscard

This function returns a monoid presentation defining the Motzkin monoid of degree n, as described in Theorem 4.1 of [50], with the additional relations \( 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
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 1.

◆ not_renner_type_B_monoid()

Presentation< word_type > not_renner_type_B_monoid ( size_t l,
int q )
inlinenodiscard

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 [26].

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

Parameters
lthe size of the monoid.
qthe Iwahori-Hecke deformation.
Returns
a value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif q != 0 or q != 1.
Note
This function performs exactly the same as not_renner_type_B_monoid_Gay18, and exists as a convenience function for when a presentation that incorrectly claims to be the Renner monoid of type B is required, but the relations of the presentation are not important.
See also
not_renner_type_B_monoid_Gay18.

◆ not_renner_type_B_monoid_Gay18()

Presentation< word_type > not_renner_type_B_monoid_Gay18 ( size_t l,
int q )
nodiscard

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 [26].

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

Parameters
lthe size of the monoid.
qthe Iwahori-Hecke deformation.
Returns
a value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif q != 0 or q != 1.

◆ not_renner_type_D_monoid()

Presentation< word_type > not_renner_type_D_monoid ( size_t l,
int q )
inlinenodiscard

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 [27].

Parameters
lthe size of the monoid.
qthe Iwahori-Hecke deformation.
Returns
a value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif q != 0 or q != 1.
Note
This function performs exactly the same as not_renner_type_D_monoid_God09, and exists as a convenience function for when a presentation that incorrectly claims to be the Renner monoid of type D is required, but the relations of the presentation are not important.
See also
not_renner_type_D_monoid_God09

◆ not_renner_type_D_monoid_God09()

Presentation< word_type > not_renner_type_D_monoid_God09 ( size_t l,
int q )
nodiscard

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 [27].

Parameters
lthe size of the monoid.
qthe Iwahori-Hecke deformation.
Returns
a value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif q != 0 or q != 1.

◆ not_symmetric_group()

Presentation< word_type > not_symmetric_group ( size_t n)
inlinenodiscard

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 [29].

Parameters
nthe claimed degree of the symmetric group.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.
Note
This function performs exactly the same as not_symmetric_group_GKKL08, and exists as a convenience function for when a presentation that incorrectly claims to be the symmetric group required, but the particular relations in the presentation are not important.
See also
not_symmetric_group_GKKL08.

◆ not_symmetric_group_GKKL08()

Presentation< word_type > not_symmetric_group_GKKL08 ( size_t n)
nodiscard

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 [29].

Parameters
nthe claimed degree of the symmetric group.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.

◆ order_preserving_cyclic_inverse_monoid()

Presentation< word_type > order_preserving_cyclic_inverse_monoid ( size_t n)
inlinenodiscard

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 [20].

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.
Note
This function performs exactly the same as order_preserving_cyclic_inverse_monoid_Fer22, and exists as a convenience function for when a presentation for the order preserving part of the cyclic inverse monoid is required, but the relations of the presentation are not important.
See also
order_preserving_cyclic_inverse_monoid_Fer22.

◆ order_preserving_cyclic_inverse_monoid_Fer22()

Presentation< word_type > order_preserving_cyclic_inverse_monoid_Fer22 ( size_t n)
nodiscard

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 [20].

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.

◆ order_preserving_monoid()

Presentation< word_type > order_preserving_monoid ( size_t n)
inlinenodiscard

This function returns a monoid presentation defining the monoid of order preserving transformations of degree n, as described in Section 2 of [6].

This presentation has \(2n - 2\) generators and \(n^2\) relations.

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.
Note
This function performs exactly the same as order_preserving_monoid_AR00, and exists as a convenience function for when a presentation for the order preserving monoid is required, but the particular relations in the presentation are not important.
See also
order_preserving_monoid_AR00.

◆ order_preserving_monoid_AR00()

Presentation< word_type > order_preserving_monoid_AR00 ( size_t n)
nodiscard

This function returns a monoid presentation defining the monoid of order preserving transformations of degree n, as described in Section 2 of [6].

This presentation has \(2n - 2\) generators and \(n^2\) relations.

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.

◆ orientation_preserving_monoid()

Presentation< word_type > orientation_preserving_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe order of the chain.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.
Note
This function performs exactly the same as orientation_preserving_monoid_AR00, and exists as a convenience function for when a presentation for the the monoid of orientation preserving mappings on a finite chain is required, but the particular relations in the presentation are not important.
See also
orientation_preserving_monoid_AR00.

◆ orientation_preserving_monoid_AR00()

Presentation< word_type > orientation_preserving_monoid_AR00 ( size_t n)
nodiscard

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

Parameters
nthe order of the chain.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.

◆ orientation_preserving_reversing_monoid()

Presentation< word_type > orientation_preserving_reversing_monoid ( size_t n)
inlinenodiscard

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 [6].

Parameters
nthe order of the chain.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.
Note
This function performs exactly the same as orientation_preserving_reversing_monoid_AR00, and exists as a convenience function for when a presentation for the monoid of orientation preserving or reversing mappings on a finite chain is required, but the particular relations in the presentation are not important.
See also
orientation_preserving_reversing_monoid_AR00.

◆ orientation_preserving_reversing_monoid_AR00()

Presentation< word_type > orientation_preserving_reversing_monoid_AR00 ( size_t n)
nodiscard

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 [6].

Parameters
nthe order of the chain.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.

◆ partial_brauer_monoid()

Presentation< word_type > partial_brauer_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 1.
Note
This function performs exactly the same as partial_brauer_monoid_KM07, and exists as a convenience function for when a presentation for the partial Brauer monoid is required, but the relations of the presentation are not important.
See also
partial_brauer_monoid_KM07.

◆ partial_brauer_monoid_KM07()

Presentation< word_type > partial_brauer_monoid_KM07 ( size_t n)
nodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 1.

◆ partial_isometries_cycle_graph_monoid()

Presentation< word_type > partial_isometries_cycle_graph_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe number of vertices of the cycle graph.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.
Note
This function performs exactly the same as partial_isometries_cycle_graph_monoid_FP22, and exists as a convenience function for when a presentation for the monoid of partial isometries of an \(n\)-cycle graph is required, but the relations of the presentation are not important.
See also
partial_isometries_cycle_graph_monoid_FP22.

◆ partial_isometries_cycle_graph_monoid_FP22()

Presentation< word_type > partial_isometries_cycle_graph_monoid_FP22 ( size_t n)
nodiscard

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

Parameters
nthe number of vertices of the cycle graph.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.

◆ partial_transformation_monoid()

Presentation< word_type > partial_transformation_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe degree of the partial transformation monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.
Note
This function performs exactly the same as partial_transformation_monoid_MW24, and exists as a convenience function for when a presentation for the partial transformation monoid is required, but the particular relations in the presentation are not important.
See also
For a specific presentation of the full transformation monoid, see one of the following functions:

◆ partial_transformation_monoid_MW24()

Presentation< word_type > partial_transformation_monoid_MW24 ( size_t n)
nodiscard

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

Parameters
nthe degree of the partial transformation monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.

◆ partial_transformation_monoid_Shu60()

Presentation< word_type > partial_transformation_monoid_Shu60 ( size_t n)
nodiscard

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

Parameters
nthe degree of the partial transformation monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.

◆ partition_monoid()

Presentation< word_type > partition_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.
Note
This function performs exactly the same as partition_monoid_Eas11, and exists as a convenience function for when a presentation for the partition monoid is required, but the relations of the presentation are not important.
See also
For a specific presentation of the full transformation monoid, see one of the following functions:

◆ partition_monoid_Eas11()

Presentation< word_type > partition_monoid_Eas11 ( size_t n)
nodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.

◆ partition_monoid_HR05()

Presentation< word_type > partition_monoid_HR05 ( size_t n)
nodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 1.

◆ plactic_monoid()

Presentation< word_type > plactic_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.
Note
This function performs exactly the same as plactic_monoid_Knu70, and exists as a convenience function for when a presentation for the plactic monoid is required, but the relations of the presentation are not important.
See also
plactic_monoid_Knu70.

◆ plactic_monoid_Knu70()

Presentation< word_type > plactic_monoid_Knu70 ( size_t n)
nodiscard

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

Parameters
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.

◆ rectangular_band()

Presentation< word_type > rectangular_band ( size_t m,
size_t n )
inlinenodiscard

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

Parameters
mthe number of rows.
nthe number of columns.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif m == 0.
LibsemigroupsExceptionif n == 0.
Note
This function performs exactly the same as rectangular_band_ACOR00, and exists as a convenience function for when a presentation for a rectangular band is required, but the relations of the presentation are not important.
See also
rectangular_band_ACOR00.

◆ rectangular_band_ACOR00()

Presentation< word_type > rectangular_band_ACOR00 ( size_t m,
size_t n )
nodiscard

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

Parameters
mthe number of rows.
nthe number of columns.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif m == 0.
LibsemigroupsExceptionif n == 0.

◆ renner_type_B_monoid()

Presentation< word_type > renner_type_B_monoid ( size_t l,
int q )
inlinenodiscard

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 [26].

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

Parameters
lthe size of the monoid.
qthe Iwahori-Hecke deformation.
Returns
a value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif q != 0 or q != 1.
Note
This function performs exactly the same as renner_type_B_monoid_Gay18, and exists as a convenience function for when a presentation for the Renner monoid of type B is required, but the particular relations in the presentation are not important.
See also
renner_type_B_monoid_Gay18.

◆ renner_type_B_monoid_Gay18()

Presentation< word_type > renner_type_B_monoid_Gay18 ( size_t l,
int q )
nodiscard

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 [26].

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

Parameters
lthe size of the monoid.
qthe Iwahori-Hecke deformation.
Returns
a value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif q != 0 or q != 1.

◆ renner_type_D_monoid()

Presentation< word_type > renner_type_D_monoid ( size_t l,
int q )
inlinenodiscard

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 [26].

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

Parameters
lthe size of the monoid.
qthe Iwahori-Hecke deformation.
Returns
a value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif q != 0 or q != 1.
Note
This function performs exactly the same as renner_type_D_monoid_Gay18, and exists as a convenience function for when a presentation for the Renner monoid of type D is required, but the particular relations in the presentation are not important.
See also
renner_type_D_monoid_Gay18

◆ renner_type_D_monoid_Gay18()

Presentation< word_type > renner_type_D_monoid_Gay18 ( size_t l,
int q )
nodiscard

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 [26].

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

Parameters
lthe size of the monoid.
qthe Iwahori-Hecke deformation.
Returns
a value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif q != 0 or q != 1.

◆ sigma_plactic_monoid()

Presentation< word_type > sigma_plactic_monoid ( std::vector< size_t > const & sigma)
inlinenodiscard

This function returns a presentation for the \(\sigma\)-plactic monoid with sigma.size() generators as in Section 3.1 [2]. 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
sigmaa vector representing the image of \(\sigma\).
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif sigma.size() < 1.
Note
This function performs exactly the same as sigma_plactic_monoid_AHMNT24, and exists as a convenience function for when a presentation for the \(\sigma\)-plactic monoid is required, but the particular relations in the presentation are not important.
See also
sigma_plactic_monoid_AHMNT24

◆ sigma_plactic_monoid_AHMNT24()

Presentation< word_type > sigma_plactic_monoid_AHMNT24 ( std::vector< size_t > const & sigma)
nodiscard

This function returns a presentation for the \(\sigma\)-plactic monoid with sigma.size() generators as in Section 3.1 [2]. 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
sigmaa vector representing the image of \(\sigma\).
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif sigma.size() < 1.

◆ singular_brauer_monoid()

Presentation< word_type > singular_brauer_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.
Note
This function performs exactly the same as singular_brauer_monoid_MM07, and exists as a convenience function for when a presentation for the singular part of the brauer monoid is required, but the particular relations in the presentation are not important.
See also
singular_brauer_monoid_MM07.

◆ singular_brauer_monoid_MM07()

Presentation< word_type > singular_brauer_monoid_MM07 ( size_t n)
nodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.

◆ special_linear_group_2()

Presentation< word_type > special_linear_group_2 ( size_t q)
inlinenodiscard

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 [10].

Parameters
qthe 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
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif q < 3.
Note
This function performs exactly the same as special_linear_group_2_CR80, and exists as a convenience function for when a presentation for the special linear group \(\mathrm{SL}(2,q)\) is required, but the relations of the presentation are not important.
See also
special_linear_group_2_CR80.

◆ special_linear_group_2_CR80()

Presentation< word_type > special_linear_group_2_CR80 ( size_t q)
nodiscard

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 [10].

Parameters
qthe 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
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif q < 3.

◆ stellar_monoid()

Presentation< word_type > stellar_monoid ( size_t l)
inlinenodiscard

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

Parameters
lthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif l < 2.
Note
This function performs exactly the same as stellar_monoid_GH19, and exists as a convenience function for when a presentation for the stellar monoid is required, but the relations of the presentation are not important.
See also
stellar_monoid_GH19.

◆ stellar_monoid_GH19()

Presentation< word_type > stellar_monoid_GH19 ( size_t l)
nodiscard

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

Parameters
lthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif l < 2.

◆ stylic_monoid()

Presentation< word_type > stylic_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.
Note
This function performs exactly the same as stylic_monoid_AR22, and exists as a convenience function for when a presentation for the stylic monoid is required, but the relations of the presentation are not important.
See also
stylic_monoid_AR22.

◆ stylic_monoid_AR22()

Presentation< word_type > stylic_monoid_AR22 ( size_t n)
nodiscard

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

Parameters
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.

◆ symmetric_group()

Presentation< word_type > symmetric_group ( size_t n)
inlinenodiscard

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

Parameters
nthe degree of the symmetric group.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.
Note
This function performs exactly the same as symmetric_group_Car56, and exists as a convenience function for when a presentation for the symmetric group is required, but the relations of the presentation are not important.
See also
For a specific presentation of the symmetric group, see one of the following functions:

◆ symmetric_group_Bur12()

Presentation< word_type > symmetric_group_Bur12 ( size_t n)
nodiscard

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

Parameters
nthe degree of the symmetric group.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.

◆ symmetric_group_Car56()

Presentation< word_type > symmetric_group_Car56 ( size_t n)
nodiscard

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

Parameters
nthe degree of the symmetric group.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.

◆ symmetric_group_Moo97_a()

Presentation< word_type > symmetric_group_Moo97_a ( size_t n)
nodiscard

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

Parameters
nthe degree of the symmetric group.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.

◆ symmetric_group_Moo97_b()

Presentation< word_type > symmetric_group_Moo97_b ( size_t n)
nodiscard

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

Parameters
nthe degree of the symmetric group.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.

◆ symmetric_inverse_monoid()

Presentation< word_type > symmetric_inverse_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe degree of the partial transformation monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.
Note
This function performs exactly the same as symmetric_inverse_monoid_MW24, and exists as a convenience function for when a presentation for the symmetric inverse monoid is required, but the particular relations in the presentation are not important.
See also
For a specific presentation of the full transformation monoid, see one of the following functions:

◆ symmetric_inverse_monoid_MW24()

Presentation< word_type > symmetric_inverse_monoid_MW24 ( size_t n)
nodiscard

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

Parameters
nthe degree of the symmetric inverse monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.

◆ symmetric_inverse_monoid_Shu60()

Presentation< word_type > symmetric_inverse_monoid_Shu60 ( size_t n)
nodiscard

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

Parameters
nthe degree of the symmetric inverse monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 4.

◆ symmetric_inverse_monoid_Sol04()

Presentation< word_type > symmetric_inverse_monoid_Sol04 ( size_t n)
nodiscard

This function returns a monoid presentation defining the symmetric inverse monoid of degree n, as in Equation 1.7 with q = 1 in [55].

Parameters
nthe degree of the symmetric inverse monoid.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.

◆ temperley_lieb_monoid()

Presentation< word_type > temperley_lieb_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.
Note
This function performs exactly the same as temperley_lieb_monoid_Eas21, and exists as a convenience function for when a presentation for the Temperley-Lieb monoid is required, but the particular relations in the presentation are not important.
See also
temperley_lieb_monoid_Eas21.

◆ temperley_lieb_monoid_Eas21()

Presentation< word_type > temperley_lieb_monoid_Eas21 ( size_t n)
nodiscard

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

Parameters
nthe number of generators.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.

◆ uniform_block_bijection_monoid()

Presentation< word_type > uniform_block_bijection_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.
Note
This function performs exactly the same as uniform_block_bijection_monoid_Fit03, and exists as a convenience function for when a presentation for the uniform block bijection monoid is required, but the relations of the presentation are not important.
See also
uniform_block_bijection_monoid_Fit03.

◆ uniform_block_bijection_monoid_Fit03()

Presentation< word_type > uniform_block_bijection_monoid_Fit03 ( size_t n)
nodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 3.

◆ zero_rook_monoid()

Presentation< word_type > zero_rook_monoid ( size_t n)
inlinenodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.
Note
This function performs exactly the same as zero_rook_monoid_Gay18, and exists as a convenience function for when a presentation for the \(0\)-rook monoid is required, but the relations of the presentation are not important.
See also
zero_rook_monoid_Gay18.

◆ zero_rook_monoid_Gay18()

Presentation< word_type > zero_rook_monoid_Gay18 ( size_t n)
nodiscard

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

Parameters
nthe degree.
Returns
A value of type Presentation<word_type>.
Exceptions
LibsemigroupsExceptionif n < 2.