# Hecke Monoids#

sage.monoids.hecke_monoid.HeckeMonoid()[source]#

Return the $$0$$-Hecke monoid of the Coxeter group $$W$$.

INPUT:

• $$W$$ – a finite Coxeter group

Let $$s_1,\ldots,s_n$$ be the simple reflections of $$W$$. The 0-Hecke monoid is the monoid generated by projections $$\pi_1,\ldots,\pi_n$$ satisfying the same braid and commutation relations as the $$s_i$$. It is of same cardinality as $$W$$.

Note

This is currently a very basic implementation as the submonoid of sorting maps on $$W$$ generated by the simple projections of $$W$$. It’s only functional for $$W$$ finite.

EXAMPLES:

sage: from sage.monoids.hecke_monoid import HeckeMonoid
sage: W = SymmetricGroup(4)
sage: H = HeckeMonoid(W); H
0-Hecke monoid of the Symmetric group of order 4! as a permutation group
sage: pi = H.monoid_generators(); pi
Finite family {1: ..., 2: ..., 3: ...}
sage: all(pi[i]^2 == pi[i] for i in pi.keys())
True
sage: pi[1] * pi[2] * pi[1] == pi[2] * pi[1] * pi[2]
True
sage: pi[2] * pi[3] * pi[2] == pi[3] * pi[2] * pi[3]
True
sage: pi[1] * pi[3] == pi[3] * pi[1]
True
sage: H.cardinality()
24

>>> from sage.all import *
>>> from sage.monoids.hecke_monoid import HeckeMonoid
>>> W = SymmetricGroup(Integer(4))
>>> H = HeckeMonoid(W); H
0-Hecke monoid of the Symmetric group of order 4! as a permutation group
>>> pi = H.monoid_generators(); pi
Finite family {1: ..., 2: ..., 3: ...}
>>> all(pi[i]**Integer(2) == pi[i] for i in pi.keys())
True
>>> pi[Integer(1)] * pi[Integer(2)] * pi[Integer(1)] == pi[Integer(2)] * pi[Integer(1)] * pi[Integer(2)]
True
>>> pi[Integer(2)] * pi[Integer(3)] * pi[Integer(2)] == pi[Integer(3)] * pi[Integer(2)] * pi[Integer(3)]
True
>>> pi[Integer(1)] * pi[Integer(3)] == pi[Integer(3)] * pi[Integer(1)]
True
>>> H.cardinality()
24