Affine Weyl groups¶
- class sage.categories.affine_weyl_groups.AffineWeylGroups[source]¶
- Bases: - Category_singleton- The category of affine Weyl groups. - Todo - add a description of this category - See also 
- WeylGroups,- WeylGroup
 - 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 # needs sage.combinat sage.groups Weyl Group of type ['A', 4, 1] (as a matrix group acting on the root space) sage: W.category() # needs sage.combinat sage.groups Category of irreducible affine Weyl groups - >>> from sage.all import * >>> C = AffineWeylGroups(); C Category of affine Weyl groups >>> C.super_categories() [Category of infinite Weyl groups] >>> C.example() NotImplemented >>> W = WeylGroup(["A", Integer(4), Integer(1)]); W # needs sage.combinat sage.groups Weyl Group of type ['A', 4, 1] (as a matrix group acting on the root space) >>> W.category() # needs sage.combinat sage.groups Category of irreducible affine Weyl groups - class ElementMethods[source]¶
- Bases: - object- affine_grassmannian_to_core()[source]¶
- 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 
 - See also - EXAMPLES: - sage: # needs sage.combinat sage.groups 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]) # needs sage.combinat sage.groups sage: w.affine_grassmannian_to_core() # needs sage.combinat sage.groups Traceback (most recent call last): ... ValueError: this only works on type 'A' affine Grassmannian elements - >>> from sage.all import * >>> # needs sage.combinat sage.groups >>> W = WeylGroup(['A', Integer(2), Integer(1)]) >>> w = W.from_reduced_word([Integer(0),Integer(2),Integer(1),Integer(0)]) >>> la = w.affine_grassmannian_to_core(); la [4, 2] >>> type(la) <class 'sage.combinat.core.Cores_length_with_category.element_class'> >>> la.to_grassmannian() == w True >>> w = W.from_reduced_word([Integer(0),Integer(2),Integer(1)]) # needs sage.combinat sage.groups >>> w.affine_grassmannian_to_core() # needs sage.combinat sage.groups Traceback (most recent call last): ... ValueError: this only works on type 'A' affine Grassmannian elements 
 - affine_grassmannian_to_partition()[source]¶
- Bijection between affine Grassmannian elements of type \(A_k^{(1)}\) and \(k\)-bounded partitions. - INPUT: - selfis 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 - See also - EXAMPLES: - sage: # needs sage.combinat sage.groups 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 - >>> from sage.all import * >>> # needs sage.combinat sage.groups >>> k = Integer(2) >>> W = WeylGroup(['A', k, Integer(1)]) >>> w = W.from_reduced_word([Integer(0),Integer(2),Integer(1),Integer(0)]) >>> la = w.affine_grassmannian_to_partition(); la [2, 2] >>> la.from_kbounded_to_grassmannian(k) == w True 
 - is_affine_grassmannian()[source]¶
- Test whether - selfis affine Grassmannian.- An element of an affine Weyl group is affine Grassmannian if any of the following equivalent properties holds: - all reduced words for - selfend with 0.
- selfis the identity, or 0 is its single right descent.
- selfis a minimal coset representative for W / cl W.
 - EXAMPLES: - sage: # needs sage.combinat sage.groups 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 - >>> from sage.all import * >>> # needs sage.combinat sage.groups >>> W = WeylGroup(['A', Integer(3), Integer(1)]) >>> w = W.from_reduced_word([Integer(2),Integer(1),Integer(0)]) >>> w.is_affine_grassmannian() True >>> w = W.from_reduced_word([Integer(2),Integer(0)]) >>> w.is_affine_grassmannian() False >>> W.one().is_affine_grassmannian() True 
 
 - class ParentMethods[source]¶
- Bases: - object- affine_grassmannian_elements_of_given_length(k)[source]¶
- Return the affine Grassmannian elements of length \(k\). - This is returned as a finite enumerated set. - EXAMPLES: - sage: W = WeylGroup(['A', 3, 1]) # needs sage.combinat sage.groups sage: [x.reduced_word() # needs sage.combinat sage.groups ....: for x in W.affine_grassmannian_elements_of_given_length(3)] [[2, 1, 0], [3, 1, 0], [2, 3, 0]] - >>> from sage.all import * >>> W = WeylGroup(['A', Integer(3), Integer(1)]) # needs sage.combinat sage.groups >>> [x.reduced_word() # needs sage.combinat sage.groups ... for x in W.affine_grassmannian_elements_of_given_length(Integer(3))] [[2, 1, 0], [3, 1, 0], [2, 3, 0]] 
 - special_node()[source]¶
- Return the distinguished special node of the underlying Dynkin diagram. - EXAMPLES: - sage: W = WeylGroup(['A', 3, 1]) # needs sage.combinat sage.groups sage: W.special_node() # needs sage.combinat sage.groups 0 - >>> from sage.all import * >>> W = WeylGroup(['A', Integer(3), Integer(1)]) # needs sage.combinat sage.groups >>> W.special_node() # needs sage.combinat sage.groups 0 
 
 - additional_structure()[source]¶
- Return - None.- Indeed, the category of affine Weyl groups defines no additional structure: affine Weyl groups are a special class of Weyl groups. - See also - Todo - Should this category be a - CategoryWithAxiom?- EXAMPLES: - sage: AffineWeylGroups().additional_structure() - >>> from sage.all import * >>> AffineWeylGroups().additional_structure()