Bases: sage.categories.category.Category
The category of Weyl groups
See: http://en.wikipedia.org/wiki/Weyl_groups
EXAMPLES:
sage: WeylGroups() # todo: uppercase for Weyl
Category of weyl groups
sage: WeylGroups().super_categories()
[Category of coxeter groups]
Here are some examples:
sage: WeylGroups().example() # todo: not implemented
sage: FiniteWeylGroups().example()
The symmetric group on {0, ..., 3}
sage: AffineWeylGroups().example() # todo: not implemented
sage: WeylGroup(["B", 3])
Weyl Group of type ['B', 3] (as a matrix group acting on the ambient space)
This one will eventually be also in this category:
sage: SymmetricGroup(4)
Symmetric group of order 4! as a permutation group
TESTS:
sage: C = WeylGroups()
sage: TestSuite(C).run()
Returns whether self is a Pieri factor, as used for computing Stanley symmetric functions.
See also:
EXAMPLES:
sage: W = WeylGroup(['A',5,1])
sage: W.from_reduced_word([3,2,5]).is_pieri_factor()
True
sage: W.from_reduced_word([3,2,4,5]).is_pieri_factor()
False
sage: W = WeylGroup(['C',4,1])
sage: W.from_reduced_word([0,2,1]).is_pieri_factor()
True
sage: W.from_reduced_word([0,2,1,0]).is_pieri_factor()
False
sage: W = WeylGroup(['B',3])
sage: W.from_reduced_word([3,2,3]).is_pieri_factor()
False
sage: W.from_reduced_word([2,1,2]).is_pieri_factor()
True
Returns all factorizations of self as , where
is a Pieri factor and
is an element of the Weyl group.
See also:
- WeylGroups.ParentMethods.pieri_factors()
- sage.combinat.root_system.pieri_factors
EXAMPLES:
If we take the maximal element of a strict parabolic
subgroup of type
, then the Pieri
factorizations are in correspondence with all Pieri factors, and
there are
of them:
sage: W = WeylGroup(['A', 4, 1])
sage: W.from_reduced_word([]).left_pieri_factorizations().cardinality()
1
sage: W.from_reduced_word([1]).left_pieri_factorizations().cardinality()
2
sage: W.from_reduced_word([1,2,1]).left_pieri_factorizations().cardinality()
4
sage: W.from_reduced_word([1,2,3,1,2,1]).left_pieri_factorizations().cardinality()
8
sage: W.from_reduced_word([1,3]).left_pieri_factorizations().cardinality()
4
sage: W.from_reduced_word([1,3,4,3]).left_pieri_factorizations().cardinality()
8
sage: W.from_reduced_word([2,1]).left_pieri_factorizations().cardinality()
3
sage: W.from_reduced_word([1,2]).left_pieri_factorizations().cardinality()
2
sage: [W.from_reduced_word([1,2]).left_pieri_factorizations(max_length=i).cardinality() for i in [-1, 0, 1, 2]]
[0, 1, 2, 2]
sage: W = WeylGroup(['C',4,1])
sage: w = W.from_reduced_word([0,3,2,1,0])
sage: w.left_pieri_factorizations().cardinality()
7
sage: [(u.reduced_word(),v.reduced_word()) for (u,v) in w.left_pieri_factorizations()]
[([], [3, 2, 0, 1, 0]),
([0], [3, 2, 1, 0]),
([3], [2, 0, 1, 0]),
([3, 0], [2, 1, 0]),
([3, 2], [0, 1, 0]),
([3, 2, 0], [1, 0]),
([3, 2, 0, 1], [0])]
sage: W = WeylGroup(['B',4,1])
sage: W.from_reduced_word([0,2,1,0]).left_pieri_factorizations().cardinality()
6
Returns the affine Stanley symmetric function indexed by
. Stanley symmetric functions are defined as generating
series of the factorizations of
into Pieri factors and
weighted by a statistic on Pieri factors.
EXAMPLES:
sage: W = WeylGroup(['A', 3, 1])
sage: W.from_reduced_word([3,1,2,0,3,1,0]).stanley_symmetric_function()
8*m[1, 1, 1, 1, 1, 1, 1] + 4*m[2, 1, 1, 1, 1, 1] + 2*m[2, 2, 1, 1, 1] + m[2, 2, 2, 1]
sage: W = WeylGroup(['C',3,1])
sage: W.from_reduced_word([0,2,1,0]).stanley_symmetric_function()
32*m[1, 1, 1, 1] + 16*m[2, 1, 1] + 8*m[2, 2] + 4*m[3, 1]
sage: W = WeylGroup(['B',3,1])
sage: W.from_reduced_word([3,2,1]).stanley_symmetric_function()
2*m[1, 1, 1] + m[2, 1] + 1/2*m[3]
sage: W = WeylGroup(['B',4])
sage: w = W.from_reduced_word([3,2,3,1])
sage: w.stanley_symmetric_function()
48*m[1, 1, 1, 1] + 24*m[2, 1, 1] + 12*m[2, 2] + 8*m[3, 1] + 2*m[4]
* :meth:stanley_symmetric_function_as_polynomial`
* :meth:`WeylGroups.ParentMethods.pieri_factors`
* :mod:`sage.combinat.root_system.pieri_factors`
REFERENCES:
[BH1994]
- Billey, M. Haiman. Schubert polynomials for the classical groups. J. Amer. Math. Soc., 1994.
[Lam2008]
- Lam. Schubert polynomials for the affine Grassmannian. J. Amer. Math. Soc., 2008.
[LSS2009]
- Lam, A. Schilling, M. Shimozono. Schubert polynomials for the affine Grassmannian of the symplectic group. Mathematische Zeitschrift 264(4) (2010) 765-811 (arXiv:0710.2720 [math.CO])
[Pon2010]
- Pon. Types B and D affine Stanley symmetric functions, unpublished PhD Thesis, UC Davis, 2010.
Returns a multivariate generating function for the number of factorizations of a Weyl group element into Pieri factors of decreasing length, weighted by a statistic on Pieri factors.
INPUT:
- self – an element
of a Weyl group
- max_length – a non negative integer or infinity (default: infinity)
Returns the generating series for the Pieri factorizations
, where
is a Pieri factor for
all
,
and
max_length`geq l(u_1) geq dots geq l(u_k)`.
A factorization contributes a monomial of
the form
, with coefficient given by
, where
is a type-dependent
statistic on Pieri factors, as returned by the method
u[i].stanley_symm_poly_weight().
EXAMPLES:
sage: W = WeylGroup(['A', 3, 1])
sage: W.from_reduced_word([]).stanley_symmetric_function_as_polynomial()
1
sage: W.from_reduced_word([1]).stanley_symmetric_function_as_polynomial()
x1
sage: W.from_reduced_word([1,2]).stanley_symmetric_function_as_polynomial()
x1^2
sage: W.from_reduced_word([2,1]).stanley_symmetric_function_as_polynomial()
x1^2 + x2
sage: W.from_reduced_word([1,2,1]).stanley_symmetric_function_as_polynomial()
2*x1^3 + x1*x2
sage: W.from_reduced_word([1,2,1,0]).stanley_symmetric_function_as_polynomial()
3*x1^4 + 2*x1^2*x2 + x2^2 + x1*x3
sage: W.from_reduced_word([1,2,3,1,2,1,0]).stanley_symmetric_function_as_polynomial() # long time
22*x1^7 + 11*x1^5*x2 + 5*x1^3*x2^2 + 3*x1^4*x3 + 2*x1*x2^3 + x1^2*x2*x3
sage: W.from_reduced_word([3,1,2,0,3,1,0]).stanley_symmetric_function_as_polynomial() # long time
8*x1^7 + 4*x1^5*x2 + 2*x1^3*x2^2 + x1*x2^3
sage: W = WeylGroup(['C',3,1])
sage: W.from_reduced_word([0,2,1,0]).stanley_symmetric_function_as_polynomial()
32*x1^4 + 16*x1^2*x2 + 8*x2^2 + 4*x1*x3
sage: W = WeylGroup(['B',3,1])
sage: W.from_reduced_word([3,2,1]).stanley_symmetric_function_as_polynomial()
2*x1^3 + x1*x2 + 1/2*x3
Algorithm: Induction on the left Pieri factors. Note that
this induction preserves subsets of which are stable
by taking right factors, and in particular Grassmanian
elements.
Returns the set of Pieri factors in this Weyl group.
For any type, the set of Pieri factors forms a lower ideal
in Bruhat order, generated by all the conjugates of some
special element of the Weyl group. In type , this
special element is
, and the conjugates are
obtained by rotating around this reduced word.
These are used to compute Stanley symmetric functions.
See also:
- :meth:WeylGroups.ElementMethods.stanley_symmetric_function`
- sage.combinat.root_system.pieri_factors
EXAMPLES:
sage: W = WeylGroup(['A',5,1])
sage: PF = W.pieri_factors()
sage: PF.cardinality()
63
sage: W = WeylGroup(['B',3])
sage: PF = W.pieri_factors()
sage: [w.reduced_word() for w in PF]
[[1, 2, 3, 2, 1], [1, 2, 3, 2], [2, 3, 2], [2, 3], [3, 1, 2, 1], [1, 2, 1], [2], [1, 2], [1], [], [2, 1], [3, 2, 1], [3, 1], [2, 3, 2, 1], [3], [3, 2], [1, 2, 3], [1, 2, 3, 1], [3, 1, 2], [2, 3, 1]]
sage: W = WeylGroup(['C',4,1])
sage: PF = W.pieri_factors()
sage: W.from_reduced_word([3,2,0]) in PF
True
EXAMPLES:
sage: WeylGroups().super_categories()
[Category of coxeter groups]