Rational Cherednik Algebras#
- class sage.algebras.rational_cherednik_algebra.RationalCherednikAlgebra(ct, c, t, base_ring, prefix)[source]#
Bases:
CombinatorialFreeModule
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 typec
– 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 rootst
– the parameter \(t\)base_ring
– (optional) the base ringprefix
– (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 byright
inself
.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