Examples

This page contains the documentation for examples of finitely presented semigroups.

class author

The values in this enum class are used to specify the authors of a presentation. Where there are different presentations by different authors, values of this type can be passed as an argument to the functions described on this page to disambiguate which presentation is wanted.

The author values can be combined via the operator +.

symmetric_group()

A presentation for the symmetric group.

alternating_group()

A presentation for the alternating group.

full_transformation_monoid()

A presentation for the full transformation monoid.

partial_transformation_monoid()

A presentation for the partial transformation monoid.

symmetric_inverse_monoid()

A presentation for the symmetric inverse monoid.

dual_symmetric_inverse_monoid()

A presentation for the dual symmetric inverse monoid.

uniform_block_bijection_monoid()

A presentation for the uniform block bijection monoid.

partition_monoid()

A presentation for the partition monoid.

brauer_monoid()

A presentation for the Brauer monoid.

rectangular_band()

A presentation for a rectangular band.

stellar_monoid()

A presentation for the stellar monoid.

chinese_monoid()

A presentation for the Chinese monoid.

monogenic_semigroup()

A presentation for a monogenic semigroup.

plactic_monoid()

A presentation for the plactic monoid.

stylic_monoid()

A presentation for the stylic monoid.

fibonacci_semigroup()

A presentation for a Fibonacci semigroup.

temperley_lieb_monoid()

A presentation for the Temperley-Lieb monoid.

singular_brauer_monoid()

A presentation for the singular part of the Brauer monoid.

orientation_preserving_monoid()

A presentation for the monoid of orientation preserving mappings.

orientation_reversing_monoid()

A presentation for the monoid of orientation reversing mappings.

Full API

symmetric_group(n: int, val: author = author.Carmichael) -> List[Tuple[List[int], List[int]]])

A presentation for the symmetric group.

Returns a list giving a monoid presentation for the symmetric group. The argument val determines the specific presentation which is returned. The options are:

The default for val is author.Carmichael.

Parameters
  • n (int) -- the degree

  • val (author) -- the author

Returns

List[Tuple[List[int], List[int]]]

Raises
  • RuntimeError -- if n < 4

  • RuntimeError -- if val is not one of the combinations of authors listed above (modulo order of author)

alternating_group(n: int, val: author) -> List[Tuple[List[int], List[int]]])

A presentation for the alternating group.

Returns a list giving a monoid presentation defining the alternating group of degree n. The argument val determines the specific presentation which is returned. The options are:

The default for val is author.Moore.

Parameters
  • n (int) -- the degree

  • val (author) -- the author

Returns

List[Tuple[List[int], List[int]]]

Raises
  • RuntimeError -- if n < 4

  • RuntimeError -- if val is not one of the combinations of authors listed above (modulo order of author)

full_transformation_monoid(n: int, val: author) -> List[Tuple[List[int], List[int]]])

A presentation for the full transformation monoid.

Returns a list giving a monoid presentation defining the full transformation monoid. The argument val determines the specific presentation which is returned. The options are:

The default for val is author.Iwahori.

Parameters
  • n (int) -- the degree

  • val (author) -- the author

Returns

List[Tuple[List[int], List[int]]]

Raises
  • RuntimeError -- if n < 4

  • RuntimeError -- if val is not one of the combinations of authors listed above (modulo order of author)

partial_transformation_monoid(n: int, val: author) -> List[Tuple[List[int], List[int]]])

A presentation for the partial transformation monoid.

Returns a list giving a monoid presentation defining the partial transformation monoid. The argument val determines the specific presentation which is returned. The options are:

The default for val is author.Sutov.

Parameters
  • n (int) -- the degree

  • val (author) -- the author

Returns

List[Tuple[List[int], List[int]]]

Raises
  • RuntimeError -- if n < 4

  • RuntimeError -- if val is not one of the combinations of authors listed above (modulo order of author)

symmetric_inverse_monoid(n: int, val: author) -> List[Tuple[List[int], List[int]]])

A presentation for the symmetric inverse monoid.

Returns a list giving a monoid presentation defining the symmetric inverse monoid. The argument val determines the specific presentation which is returned. The options are:

The default for val is the only option above.

Parameters
  • n (int) -- the degree

  • val (author) -- the author

Returns

List[Tuple[List[int], List[int]]]

Raises
  • RuntimeError -- if n < 4

  • RuntimeError -- if val is not one of the combinations of authors listed above (modulo order of author)

dual_symmetric_inverse_monoid(n: int, val: author) -> List[Tuple[List[int], List[int]]])

A presentation for the dual symmetric inverse monoid.

Returns a list giving a semigroup presentation defining the dual symmetric inverse monoid of degree n. The argument val determines the specific presentation which is returned. The options are:

The default for val is the only option above.

Parameters
  • n (int) -- the degree

  • val (author) -- the author

Returns

List[Tuple[List[int], List[int]]]

Raises
  • RuntimeError -- if n < 3

  • RuntimeError -- if val is not one of the combinations of authors listed above (modulo order of author)

uniform_block_bijection_monoid(n: int, val: author) -> List[Tuple[List[int], List[int]]])

A presentation for the uniform block bijection monoid.

Returns a list giving a semigroup presentation defining the uniform block bijection monoid of degree n. The argument val determines the specific presentation which is returned. The only option is:

The default for val is the only option above.

Parameters
  • n (int) -- the degree

  • val (author) -- the author

Returns

List[Tuple[List[int], List[int]]]

Raises
  • RuntimeError -- if n < 3

  • RuntimeError -- if val is not one of the combinations of authors listed above (modulo order of author)

partition_monoid(n: int, val: author) -> List[Tuple[List[int], List[int]]])

A presentation for the partition monoid.

Returns a list giving a semigroup presentation defining the partition monoid of degree n. The argument val determines the specific presentation which is returned. The options are:

The default for val is author.East.

Parameters
  • n (int) -- the degree

  • val (author) -- the author

Returns

List[Tuple[List[int], List[int]]]

Raises
  • RuntimeError -- if n < 4 and val = author.East

  • RuntimeError -- if n != 3 and val = author.Machine

  • RuntimeError -- if val is not one of the combinations of authors listed above (modulo order of author)

brauer_monoid(n: int) -> List[Tuple[List[int], List[int]]])

A presentation for the Brauer monoid.

Returns a list giving a semigroup presentation defining the Brauer monoid of degree n, as described in Theorem 3.1 of the paper 10.2478/s11533-006-0017-6.

Parameters

n (int) -- the degree

Returns

List[Tuple[List[int], List[int]]]

rectangular_band(m: int, n: int) -> List[Tuple[List[int], List[int]]])

A presentation for a rectangular band.

Returns a list giving a semigroup presentation defining the m by n rectangular band, as given in Proposition 4.2 of 10.1007/s002339910016.

Parameters
  • m (int) -- the number of rows

  • n (int) -- the number of columns

Returns

List[Tuple[List[int], List[int]]]

Raises
stellar_monoid(l: int) -> List[Tuple[List[int], List[int]]])

A presentation for the stellar monoid.

Returns a list giving a semigroup presentation defining the stellar monoid with l generators, as in Theorem 4.39 of 10.48550/arXiv.1910.11740.

Parameters

l (int) -- the number of generators

Returns

List[Tuple[List[int], List[int]]

Raises

RuntimeError -- if l < 2

chinese_monoid(l: int) -> List[Tuple[List[int], List[int]]])

A presentation for the Chinese monoid.

Returns a list giving a semigroup presentation defining the Chinese monoid with n generators, as described in 10.1142/S0218196701000425.

Parameters

n (int) -- the number of generators

Returns

List[Tuple[List[int], List[int]]

Raises

RuntimeError -- if n < 2

monogenic_semigroup(m: int, r: int) -> List[Tuple[List[int], List[int]]])

A presentation for a monogenic semigroup.

Returns a list giving a semigroup presentation defining the monogenic semigroup defined by the presentation \(\langle a \mid a^{m + r} = a^m \rangle\).

Parameters
  • m (int) -- the index

  • r (int) -- the period

Returns

List[Tuple[List[int], List[int]]]

Raises

RuntimeError -- if r = 0

plactic_monoid(n: int) -> List[Tuple[List[int], List[int]]])

A presentation for the plactic monoid.

Returns a list giving a semigroup presentation defining the plactic monoid with n generators (see Section 3 of 10.1007/s00233-022-10285-3).

Parameters

n (int) -- the number of generators

Returns

List[Tuple[List[int], List[int]]]

Raises

RuntimeError -- if n < 2

stylic_monoid(n: int) -> List[Tuple[List[int], List[int]]])

A presentation for the stylic monoid.

Returns a list giving a semigroup presentation defining the stylic monoid with n generators (see Theorem 8.1 of 10.1007/s00233-022-10285-3).

Parameters

n (int) -- the number of generators

Returns

List[Tuple[List[int], List[int]]]

Raises

RuntimeError -- if n < 2

fibonacci_semigroup(r: int, n: int) -> List[Tuple[List[int], List[int]]])

A presentation for a Fibonacci semigroup.

Returns a list giving a semigroup presentation defining the Fibonacci semigroup \(F(r, n)\), as described in the paper 10.1016/0022-4049(94)90005-1.

Parameters
  • r (int) -- the length of the left hand sides of the relations

  • n (int) -- the number of generators

Returns

List[Tuple[List[int], List[int]]]

Raises
temperley_lieb_monoid(n: int) -> List[Tuple[List[int], List[int]]])

A presentation for the Temperley-Lieb monoid.

Returns a list giving a semigroup presentation defining the Temperley-Lieb monoid with n generators, as described in Theorem 2.2 of the paper 10.1093/qmath/haab001.

Parameters

n (int) -- the number of generators

Returns

List[Tuple[List[int], List[int]]]

Raises

RuntimeError -- if n < 3

singular_brauer_monoid(n: int) -> List[Tuple[List[int], List[int]]])

A presentation for the singular part of the Brauer monoid.

Returns a list giving a semigroup presentation for the singular part of the Brauer monoid of degree n, as in Theorem 5 of the paper 10.21136/MB.2007.134125).

Parameters

n (int) -- the degree

Returns

List[Tuple[List[int], List[int]]]

Raises

RuntimeError -- if n < 3

orientation_preserving_monoid(n: int) -> List[Tuple[List[int], List[int]]])

A presentation for the monoid of orientation preserving mappings.

Returns a list giving a semigroup presentation defining the monoid of orientation preserving mappings on a finite chain of order n, as described in the paper 10.1007/s10012-000-0001-1.

Parameters

n (int) -- the order of the chain

Returns

List[Tuple[List[int], List[int]]]

Raises

RuntimeError -- if n < 3

orientation_reversing_monoid(n: int) -> List[Tuple[List[int], List[int]]])

A presentation for the monoid of orientation preserving mappings.

Returns a list giving a semigroup presentation defining the monoid of orientation reversing mappings on a finite chain of order n, as described in the paper 10.1007/s10012-000-0001-1.

Parameters

n (int) -- the order of the chain

Returns

List[Tuple[List[int], List[int]]]

Raises

RuntimeError -- if n < 3