# Affine Weyl Groups¶

class sage.categories.affine_weyl_groups.AffineWeylGroups(s=None)

The category of affine Weyl groups

Todo

add a description of this category

EXAMPLES:

sage: C = AffineWeylGroups(); C
Category of affine weyl groups
sage: C.super_categories()
[Category of infinite weyl groups]

sage: C.example()
NotImplemented
sage: W = WeylGroup(["A",4,1]); W
Weyl Group of type ['A', 4, 1] (as a matrix group acting on the root space)
sage: W.category()
Category of irreducible affine weyl groups

class ElementMethods
affine_grassmannian_to_core()

Bijection between affine Grassmannian elements of type $$A_k^{(1)}$$ and $$(k+1)$$-cores.

INPUT:

• self – an affine Grassmannian element of some affine Weyl group of type $$A_k^{(1)}$$

Recall that an element $$w$$ of an affine Weyl group is affine Grassmannian if all its all reduced words end in 0, see is_affine_grassmannian().

OUTPUT:

• a $$(k+1)$$-core

EXAMPLES:

sage: W = WeylGroup(['A',2,1])
sage: w = W.from_reduced_word([0,2,1,0])
sage: la = w.affine_grassmannian_to_core(); la
[4, 2]
sage: type(la)
<class 'sage.combinat.core.Cores_length_with_category.element_class'>
sage: la.to_grassmannian() == w
True

sage: w = W.from_reduced_word([0,2,1])
sage: w.affine_grassmannian_to_core()
Traceback (most recent call last):
...
ValueError: Error! this only works on type 'A' affine Grassmannian elements

affine_grassmannian_to_partition()

Bijection between affine Grassmannian elements of type $$A_k^{(1)}$$ and $$k$$-bounded partitions.

INPUT:

• self is affine Grassmannian element of the affine Weyl group of type $$A_k^{(1)}$$ (i.e. all reduced words end in 0)

OUTPUT:

• $$k$$-bounded partition

EXAMPLES:

sage: k = 2
sage: W = WeylGroup(['A',k,1])
sage: w = W.from_reduced_word([0,2,1,0])
sage: la = w.affine_grassmannian_to_partition(); la
[2, 2]
sage: la.from_kbounded_to_grassmannian(k) == w
True

is_affine_grassmannian()

Tests whether self is affine Grassmannian

An element of an affine Weyl group is affine Grassmannian if any of the following equivalent properties holds:

• all reduced words for self end with 0.
• self is the identity, or 0 is its single right descent.
• self is a minimal coset representative for W / cl W.

EXAMPLES:

sage: W=WeylGroup(['A',3,1])
sage: w=W.from_reduced_word([2,1,0])
sage: w.is_affine_grassmannian()
True
sage: w=W.from_reduced_word([2,0])
sage: w.is_affine_grassmannian()
False
sage: W.one().is_affine_grassmannian()
True

class ParentMethods
affine_grassmannian_elements_of_given_length(k)

Returns the affine Grassmannian elements of length $$k$$, as a list.

EXAMPLES:

sage: W=WeylGroup(['A',3,1])
sage: [x.reduced_word() for x in W.affine_grassmannian_elements_of_given_length(3)]
[[2, 1, 0], [3, 1, 0], [2, 3, 0]]


Todo

should return an enumerated set, with iterator, …

special_node()

Returns the distinguished special node of the underlying Dynkin diagram

EXAMPLES:

sage: W=WeylGroup(['A',3,1])
sage: W.special_node()
0

additional_structure()

Return None.

Indeed, the category of affine Weyl groups defines no additional structure: affine Weyl groups are a special class of Weyl groups.

Todo

Should this category be a CategoryWithAxiom?

EXAMPLES:

sage: AffineWeylGroups().additional_structure()

super_categories()

EXAMPLES:

sage: AffineWeylGroups().super_categories()
[Category of infinite weyl groups]