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 groupq1,q2
– two elements of the ground ring
The affine Hecke algebra
acts on the group algebra of
through the Demazure-Lusztig operators
. Its Cherednik operators
can be simultaneously diagonalized as long as
is not a small root of unity [HST2008].
This method returns the family of joint eigenvectors, indexed by
.
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
-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
and
we recover the action of the isobaric divided differences
:
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
and
we recover the action of the simple reflection
:
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 ringside
– “left” or “right” (default: “right”): which side to act uponaffine
– a boolean (default:True
)
The Demazure-Lusztig operator
is the linear map
obtained by interpolating between the simple projection
(see
CoxeterGroups.ElementMethods.simple_projection()
) and the simple reflectionso that
has eigenvalues
and
.
The Demazure-Lusztig operators give the usual representation of the operators
of the
Hecke algebra associated to the Coxeter group.
For a finite Coxeter group, and if
affine=True
, the Demazure-Lusztig operatorsare completed by
to implement the level
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
, the level 0 action of the affine Weyl group
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