Coxeter Group Algebras¶
-
class
sage.categories.coxeter_group_algebras.
CoxeterGroupAlgebras
(category, *args)¶ Bases:
sage.categories.algebra_functor.AlgebrasCategory
TESTS:
sage: from sage.categories.covariant_functorial_construction import CovariantConstructionCategory sage: class FooBars(CovariantConstructionCategory): ....: _functor_category = "FooBars" ....: _base_category_class = (Category,) sage: Category.FooBars = lambda self: FooBars.category_of(self) sage: C = FooBars(ModulesWithBasis(ZZ)) sage: C Category of foo bars of modules with basis over Integer Ring sage: C.base_category() Category of modules with basis over Integer Ring sage: latex(C) \mathbf{FooBars}(\mathbf{ModulesWithBasis}_{\Bold{Z}}) sage: import __main__; __main__.FooBars = FooBars # Fake FooBars being defined in a python module sage: TestSuite(C).run()
-
class
ParentMethods
¶ -
demazure_lusztig_eigenvectors
(q1, q2)¶ Return the family of eigenvectors for the Cherednik operators.
INPUT:
self
– a finite Coxeter group \(W\)q1,q2
– two elements of the ground ring \(K\)
The affine Hecke algebra \(H_{q_1,q_2}(\tilde W)\) acts on the group algebra of \(W\) through the Demazure-Lusztig operators \(T_i\). Its Cherednik operators \(Y^\lambda\) can be simultaneously diagonalized as long as \(q_1/q_2\) is not a small root of unity [HST2008].
This method returns the family of joint eigenvectors, indexed by \(W\).
See also
EXAMPLES:
sage: W = WeylGroup(["B",2]) sage: W.element_class._repr_=lambda x: "".join(str(i) for i in x.reduced_word()) sage: K = QQ['q1,q2'].fraction_field() sage: q1, q2 = K.gens() sage: KW = W.algebra(K) sage: E = KW.demazure_lusztig_eigenvectors(q1,q2) sage: E.keys() Weyl Group of type ['B', 2] (as a matrix group acting on the ambient space) sage: w = W.an_element() sage: E[w] (q2/(-q1+q2))*B[2121] + ((-q2)/(-q1+q2))*B[121] - B[212] + B[12]
-
demazure_lusztig_operator_on_basis
(w, i, q1, q2, side='right')¶ Return the result of applying the \(i\)-th Demazure Lusztig operator on
w
.INPUT:
w
– an element of the Coxeter groupi
– an element of the index setq1,q2
– two elements of the ground ringbar
– a boolean (defaultFalse
)
See
demazure_lusztig_operators()
for details.EXAMPLES:
sage: W = WeylGroup(["B",3]) sage: W.element_class._repr_=lambda x: "".join(str(i) for i in x.reduced_word()) sage: K = QQ['q1,q2'] sage: q1, q2 = K.gens() sage: KW = W.algebra(K) sage: w = W.an_element() sage: KW.demazure_lusztig_operator_on_basis(w, 0, q1, q2) (-q2)*B[323123] + (q1+q2)*B[123] sage: KW.demazure_lusztig_operator_on_basis(w, 1, q1, q2) q1*B[1231] sage: KW.demazure_lusztig_operator_on_basis(w, 2, q1, q2) q1*B[1232] sage: KW.demazure_lusztig_operator_on_basis(w, 3, q1, q2) (q1+q2)*B[123] + (-q2)*B[12]
At \(q_1=1\) and \(q_2=0\) we recover the action of the isobaric divided differences \(\pi_i\):
sage: KW.demazure_lusztig_operator_on_basis(w, 0, 1, 0) B[123] sage: KW.demazure_lusztig_operator_on_basis(w, 1, 1, 0) B[1231] sage: KW.demazure_lusztig_operator_on_basis(w, 2, 1, 0) B[1232] sage: KW.demazure_lusztig_operator_on_basis(w, 3, 1, 0) B[123]
At \(q_1=1\) and \(q_2=-1\) we recover the action of the simple reflection \(s_i\):
sage: KW.demazure_lusztig_operator_on_basis(w, 0, 1, -1) B[323123] sage: KW.demazure_lusztig_operator_on_basis(w, 1, 1, -1) B[1231] sage: KW.demazure_lusztig_operator_on_basis(w, 2, 1, -1) B[1232] sage: KW.demazure_lusztig_operator_on_basis(w, 3, 1, -1) B[12]
-
demazure_lusztig_operators
(q1, q2, side='right', affine=True)¶ Return the Demazure Lusztig operators acting on
self
.INPUT:
q1,q2
– two elements of the ground ring \(K\)side
– “left” or “right” (default: “right”): which side to act uponaffine
– a boolean (default:True
)
The Demazure-Lusztig operator \(T_i\) is the linear map \(R\rightarrow R\) obtained by interpolating between the simple projection \(\pi_i\) (see
CoxeterGroups.ElementMethods.simple_projection()
) and the simple reflection \(s_i\) so that \(T_i\) has eigenvalues \(q_1\) and \(q_2\).\[(q_1+q_2) \pi_i -q_2 s_i\]The Demazure-Lusztig operators give the usual representation of the operators \(T_i\) of the \(q_1,q_2\) Hecke algebra associated to the Coxeter group.
For a finite Coxeter group, and if
affine=True
, the Demazure-Lusztig operators \(T_1,\dots,T_n\) are completed by \(T_0\) to implement the level \(0\) action of the affine Hecke algebra.EXAMPLES:
sage: W = WeylGroup(["B",3]) sage: W.element_class._repr_=lambda x: "".join(str(i) for i in x.reduced_word()) sage: K = QQ['q1,q2'] sage: q1, q2 = K.gens() sage: KW = W.algebra(K) sage: T = KW.demazure_lusztig_operators(q1, q2, affine=True) sage: x = KW.monomial(W.an_element()); x B[123] sage: T[0](x) (-q2)*B[323123] + (q1+q2)*B[123] sage: T[1](x) q1*B[1231] sage: T[2](x) q1*B[1232] sage: T[3](x) (q1+q2)*B[123] + (-q2)*B[12] sage: T._test_relations()
Note
For a finite Weyl group \(W\), the level 0 action of the affine Weyl group \(\tilde W\) only depends on the Coxeter diagram of the affinization, not its Dynkin diagram. Hence it is possible to explore all cases using only untwisted affinizations.
-
-
class