# Rational Cherednik Algebras#

class sage.algebras.rational_cherednik_algebra.RationalCherednikAlgebra(ct, c, t, base_ring, prefix)[source]#

A rational Cherednik algebra.

Let $$k$$ be a field. Let $$W$$ be a complex reflection group acting on a vector space $$\mathfrak{h}$$ (over $$k$$). Let $$\mathfrak{h}^*$$ denote the corresponding dual vector space. Let $$\cdot$$ denote the natural action of $$w$$ on $$\mathfrak{h}$$ and $$\mathfrak{h}^*$$. Let $$\mathcal{S}$$ denote the set of reflections of $$W$$ and $$\alpha_s$$ and $$\alpha_s^{\vee}$$ are the associated root and coroot of $$s$$. Let $$c = (c_s)_{s \in W}$$ such that $$c_s = c_{tst^{-1}}$$ for all $$t \in W$$.

The rational Cherednik algebra is the $$k$$-algebra $$H_{c,t}(W) = T(\mathfrak{h} \oplus \mathfrak{h}^*) \otimes kW$$ with parameters $$c, t \in k$$ that is subject to the relations:

\begin{split}\begin{aligned} w \alpha & = (w \cdot \alpha) w, \\ \alpha^{\vee} w & = w (w^{-1} \cdot \alpha^{\vee}), \\ \alpha \alpha^{\vee} & = \alpha^{\vee} \alpha + t \langle \alpha^{\vee}, \alpha \rangle + \sum_{s \in \mathcal{S}} c_s \frac{\langle \alpha^{\vee}, \alpha_s \rangle \langle \alpha^{\vee}_s, \alpha \rangle}{ \langle \alpha^{\vee}, \alpha \rangle} s, \end{aligned}\end{split}

where $$w \in W$$ and $$\alpha \in \mathfrak{h}$$ and $$\alpha^{\vee} \in \mathfrak{h}^*$$.

INPUT:

• ct – a finite Cartan type

• c – the parameters $$c_s$$ given as an element or a tuple, where the first entry is the one for the long roots and (for non-simply-laced types) the second is for the short roots

• t – the parameter $$t$$

• base_ring – (optional) the base ring

• prefix – (default: ('a', 's', 'ac')) the prefixes

Todo

Implement a version for complex reflection groups.

REFERENCES:

algebra_generators()[source]#

Return the algebra generators of self.

EXAMPLES:

sage: R = algebras.RationalCherednik(['A',2], 1, 1, QQ)
sage: list(R.algebra_generators())
[a1, a2, s1, s2, ac1, ac2]

>>> from sage.all import *
>>> R = algebras.RationalCherednik(['A',Integer(2)], Integer(1), Integer(1), QQ)
>>> list(R.algebra_generators())
[a1, a2, s1, s2, ac1, ac2]

an_element()[source]#

Return an element of self.

EXAMPLES:

sage: R = algebras.RationalCherednik(['A',2], 1, 1, QQ)
sage: R.an_element()
3*ac1 + 2*s1 + a1

>>> from sage.all import *
>>> R = algebras.RationalCherednik(['A',Integer(2)], Integer(1), Integer(1), QQ)
>>> R.an_element()
3*ac1 + 2*s1 + a1

deformed_euler()[source]#

Return the element $$eu_k$$.

EXAMPLES:

sage: R = algebras.RationalCherednik(['A',2], 1, 1, QQ)
sage: R.deformed_euler()
2*I + 2/3*a1*ac1 + 1/3*a1*ac2 + 1/3*a2*ac1 + 2/3*a2*ac2
+ s1 + s2 + s1*s2*s1

>>> from sage.all import *
>>> R = algebras.RationalCherednik(['A',Integer(2)], Integer(1), Integer(1), QQ)
>>> R.deformed_euler()
2*I + 2/3*a1*ac1 + 1/3*a1*ac2 + 1/3*a2*ac1 + 2/3*a2*ac2
+ s1 + s2 + s1*s2*s1

degree_on_basis(m)[source]#

Return the degree on the monomial indexed by m.

EXAMPLES:

sage: R = algebras.RationalCherednik(['A',2], 1, 1, QQ)
sage: [R.degree_on_basis(g.leading_support())
....:  for g in R.algebra_generators()]
[1, 1, 0, 0, -1, -1]

>>> from sage.all import *
>>> R = algebras.RationalCherednik(['A',Integer(2)], Integer(1), Integer(1), QQ)
>>> [R.degree_on_basis(g.leading_support())
...  for g in R.algebra_generators()]
[1, 1, 0, 0, -1, -1]

one_basis()[source]#

Return the index of the element $$1$$.

EXAMPLES:

sage: R = algebras.RationalCherednik(['A',2], 1, 1, QQ)
sage: R.one_basis()
(1, 1, 1)

>>> from sage.all import *
>>> R = algebras.RationalCherednik(['A',Integer(2)], Integer(1), Integer(1), QQ)
>>> R.one_basis()
(1, 1, 1)

product_on_basis(left, right)[source]#

Return left multiplied by right in self.

EXAMPLES:

sage: R = algebras.RationalCherednik(['A',2], 1, 1, QQ)
sage: a2 = R.algebra_generators()['a2']
sage: ac1 = R.algebra_generators()['ac1']
sage: a2 * ac1  # indirect doctest
a2*ac1
sage: ac1 * a2
-I + a2*ac1 - s1 - s2 + 1/2*s1*s2*s1
sage: x = R.an_element()
sage: [y * x for y in R.some_elements()]
[0,
3*ac1 + 2*s1 + a1,
9*ac1^2 + 10*I + 6*a1*ac1 + 6*s1 + 3/2*s2 + 3/2*s1*s2*s1 + a1^2,
3*a1*ac1 + 2*a1*s1 + a1^2,
3*a2*ac1 + 2*a2*s1 + a1*a2,
3*s1*ac1 + 2*I - a1*s1,
3*s2*ac1 + 2*s2*s1 + a1*s2 + a2*s2,
3*ac1^2 - 2*s1*ac1 + 2*I + a1*ac1 + 2*s1 + 1/2*s2 + 1/2*s1*s2*s1,
3*ac1*ac2 + 2*s1*ac1 + 2*s1*ac2 - I + a1*ac2 - s1 - s2 + 1/2*s1*s2*s1]
sage: [x * y for y in R.some_elements()]
[0,
3*ac1 + 2*s1 + a1,
9*ac1^2 + 10*I + 6*a1*ac1 + 6*s1 + 3/2*s2 + 3/2*s1*s2*s1 + a1^2,
6*I + 3*a1*ac1 + 6*s1 + 3/2*s2 + 3/2*s1*s2*s1 - 2*a1*s1 + a1^2,
-3*I + 3*a2*ac1 - 3*s1 - 3*s2 + 3/2*s1*s2*s1 + 2*a1*s1 + 2*a2*s1 + a1*a2,
-3*s1*ac1 + 2*I + a1*s1,
3*s2*ac1 + 3*s2*ac2 + 2*s1*s2 + a1*s2,
3*ac1^2 + 2*s1*ac1 + a1*ac1,
3*ac1*ac2 + 2*s1*ac2 + a1*ac2]

>>> from sage.all import *
>>> R = algebras.RationalCherednik(['A',Integer(2)], Integer(1), Integer(1), QQ)
>>> a2 = R.algebra_generators()['a2']
>>> ac1 = R.algebra_generators()['ac1']
>>> a2 * ac1  # indirect doctest
a2*ac1
>>> ac1 * a2
-I + a2*ac1 - s1 - s2 + 1/2*s1*s2*s1
>>> x = R.an_element()
>>> [y * x for y in R.some_elements()]
[0,
3*ac1 + 2*s1 + a1,
9*ac1^2 + 10*I + 6*a1*ac1 + 6*s1 + 3/2*s2 + 3/2*s1*s2*s1 + a1^2,
3*a1*ac1 + 2*a1*s1 + a1^2,
3*a2*ac1 + 2*a2*s1 + a1*a2,
3*s1*ac1 + 2*I - a1*s1,
3*s2*ac1 + 2*s2*s1 + a1*s2 + a2*s2,
3*ac1^2 - 2*s1*ac1 + 2*I + a1*ac1 + 2*s1 + 1/2*s2 + 1/2*s1*s2*s1,
3*ac1*ac2 + 2*s1*ac1 + 2*s1*ac2 - I + a1*ac2 - s1 - s2 + 1/2*s1*s2*s1]
>>> [x * y for y in R.some_elements()]
[0,
3*ac1 + 2*s1 + a1,
9*ac1^2 + 10*I + 6*a1*ac1 + 6*s1 + 3/2*s2 + 3/2*s1*s2*s1 + a1^2,
6*I + 3*a1*ac1 + 6*s1 + 3/2*s2 + 3/2*s1*s2*s1 - 2*a1*s1 + a1^2,
-3*I + 3*a2*ac1 - 3*s1 - 3*s2 + 3/2*s1*s2*s1 + 2*a1*s1 + 2*a2*s1 + a1*a2,
-3*s1*ac1 + 2*I + a1*s1,
3*s2*ac1 + 3*s2*ac2 + 2*s1*s2 + a1*s2,
3*ac1^2 + 2*s1*ac1 + a1*ac1,
3*ac1*ac2 + 2*s1*ac2 + a1*ac2]

some_elements()[source]#

Return some elements of self.

EXAMPLES:

sage: R = algebras.RationalCherednik(['A',2], 1, 1, QQ)
sage: R.some_elements()
[0, I, 3*ac1 + 2*s1 + a1, a1, a2, s1, s2, ac1, ac2]

>>> from sage.all import *
>>> R = algebras.RationalCherednik(['A',Integer(2)], Integer(1), Integer(1), QQ)
>>> R.some_elements()
[0, I, 3*ac1 + 2*s1 + a1, a1, a2, s1, s2, ac1, ac2]

trivial_idempotent()[source]#

Return the trivial idempotent of self.

Let $$e = |W|^{-1} \sum_{w \in W} w$$ is the trivial idempotent. Thus $$e^2 = e$$ and $$eW = We$$. The trivial idempotent is used in the construction of the spherical Cherednik algebra from the rational Cherednik algebra by $$U_{c,t}(W) = e H_{c,t}(W) e$$.

EXAMPLES:

sage: R = algebras.RationalCherednik(['A',2], 1, 1, QQ)
sage: R.trivial_idempotent()
1/6*I + 1/6*s1 + 1/6*s2 + 1/6*s2*s1 + 1/6*s1*s2 + 1/6*s1*s2*s1

>>> from sage.all import *
>>> R = algebras.RationalCherednik(['A',Integer(2)], Integer(1), Integer(1), QQ)
>>> R.trivial_idempotent()
1/6*I + 1/6*s1 + 1/6*s2 + 1/6*s2*s1 + 1/6*s1*s2 + 1/6*s1*s2*s1