Fully commutative stable Grothendieck crystal#
AUTHORS:
Jianping Pan (2020-08-31): initial version
Wencin Poh (2020-08-31): initial version
Anne Schilling (2020-08-31): initial version
- class sage.combinat.crystals.fully_commutative_stable_grothendieck.DecreasingHeckeFactorization(parent, t)#
Bases:
sage.structure.element.Element
Class of decreasing factorizations in the 0-Hecke monoid.
INPUT:
t
– decreasing factorization inputted as list of listsmax_value
– maximal value of entries
EXAMPLES:
sage: from sage.combinat.crystals.fully_commutative_stable_grothendieck import DecreasingHeckeFactorization sage: t = [[3, 2], [], [2, 1]] sage: h = DecreasingHeckeFactorization(t, 3); h (3, 2)()(2, 1) sage: h.excess 1 sage: h.factors 3 sage: h.max_value 3 sage: h.value ((3, 2), (), (2, 1)) sage: u = [[3, 2, 1], [3], [2, 1]] sage: h = DecreasingHeckeFactorization(u); h (3, 2, 1)(3)(2, 1) sage: h.weight() (2, 1, 3) sage: h.parent() Decreasing Hecke factorizations with 3 factors associated to [2, 1, 3, 2, 1] with excess 1
- to_increasing_hecke_biword()#
Return the associated increasing Hecke biword of
self
.EXAMPLES:
sage: from sage.combinat.crystals.fully_commutative_stable_grothendieck import DecreasingHeckeFactorization sage: t = [[2], [], [2, 1],[4, 3, 1]] sage: h = DecreasingHeckeFactorization(t, 4) sage: h.to_increasing_hecke_biword() [[1, 1, 1, 2, 2, 4], [1, 3, 4, 1, 2, 2]]
- to_word()#
Return the word associated to
self
in the 0-Hecke monoid.EXAMPLES:
sage: from sage.combinat.crystals.fully_commutative_stable_grothendieck import DecreasingHeckeFactorization sage: t = [[2], [], [2, 1], [4, 3, 1]] sage: h = DecreasingHeckeFactorization(t) sage: h.to_word() [2, 2, 1, 4, 3, 1]
- weight()#
Return the weight of
self
.EXAMPLES:
sage: from sage.combinat.crystals.fully_commutative_stable_grothendieck import DecreasingHeckeFactorization sage: t = [[2], [2, 1], [], [4, 3, 1]] sage: h = DecreasingHeckeFactorization(t, 6) sage: h.weight() (3, 0, 2, 1)
- class sage.combinat.crystals.fully_commutative_stable_grothendieck.DecreasingHeckeFactorizations(w, factors, excess)#
Bases:
sage.structure.unique_representation.UniqueRepresentation
,sage.structure.parent.Parent
Set of decreasing factorizations in the 0-Hecke monoid.
INPUT:
w
– an element in the symmetric groupfactors
– the number of factors in the factorizationexcess
– the total number of letters in the factorization minus the length of a reduced word forw
EXAMPLES:
sage: from sage.combinat.crystals.fully_commutative_stable_grothendieck import DecreasingHeckeFactorizations sage: S = SymmetricGroup(3+1) sage: w = S.from_reduced_word([1, 3, 2, 1]) sage: F = DecreasingHeckeFactorizations(w, 3, 3); F Decreasing Hecke factorizations with 3 factors associated to [1, 3, 2, 1] with excess 3 sage: F.list() [(3, 1)(3, 1)(3, 2, 1), (3, 1)(3, 2, 1)(2, 1), (3, 2, 1)(2, 1)(2, 1)]
- Element#
alias of
DecreasingHeckeFactorization
- list()#
Return list of all elements of
self
.EXAMPLES:
sage: from sage.combinat.crystals.fully_commutative_stable_grothendieck import DecreasingHeckeFactorizations sage: S = SymmetricGroup(3+1) sage: w = S.from_reduced_word([1, 3, 2, 1]) sage: F = DecreasingHeckeFactorizations(w, 3, 3) sage: F.list() [(3, 1)(3, 1)(3, 2, 1), (3, 1)(3, 2, 1)(2, 1), (3, 2, 1)(2, 1)(2, 1)]
- class sage.combinat.crystals.fully_commutative_stable_grothendieck.FullyCommutativeStableGrothendieckCrystal(w, factors, excess)#
Bases:
sage.structure.unique_representation.UniqueRepresentation
,sage.structure.parent.Parent
The crystal on fully commutative decreasing factorizations in the 0-Hecke monoid, as introduced by [MPPS2020].
INPUT:
w
– an element in the symmetric group or a (skew) shapefactors
– the number of factors in the factorizationexcess
– the total number of letters in the factorization minus the length of a reduced word forw
shape
– (default:False
) indicator for inputw
, True ifw
is entered as a (skew) shape and False otherwise.
EXAMPLES:
sage: S = SymmetricGroup(3+1) sage: w = S.from_reduced_word([1, 3, 2]) sage: B = crystals.FullyCommutativeStableGrothendieck(w, 3, 2); B Fully commutative stable Grothendieck crystal of type A_2 associated to [1, 3, 2] with excess 2 sage: B.list() [(1)(3, 1)(3, 2), (3, 1)(1)(3, 2), (3, 1)(3, 1)(2), (3)(3, 1)(3, 2), (3, 1)(3)(3, 2), (3, 1)(3, 2)(2)]
We can also access the crystal by specifying a skew shape:
sage: crystals.FullyCommutativeStableGrothendieck([[2, 2], [1]], 4, 1, shape=True) Fully commutative stable Grothendieck crystal of type A_3 associated to [2, 1, 3] with excess 1
We can compute the highest weight elements:
sage: hw = [w for w in B if w.is_highest_weight()] sage: hw [(1)(3, 1)(3, 2), (3)(3, 1)(3, 2)] sage: hw[0].weight() (2, 2, 1)
The crystal operators themselves move elements between adjacent factors:
sage: b = hw[0]; b (1)(3, 1)(3, 2) sage: b.f(2) (3, 1)(1)(3, 2)
- class Element(parent, t)#
Bases:
sage.combinat.crystals.fully_commutative_stable_grothendieck.DecreasingHeckeFactorization
Create an instance
self
of elementt
.This method takes into account the constraints on the word, the number of factors, and excess statistic associated to the parent class.
EXAMPLES:
sage: S = SymmetricGroup(3+1) sage: w = S.from_reduced_word([1, 3, 2]) sage: B = crystals.FullyCommutativeStableGrothendieck(w, 3, 2) sage: from sage.combinat.crystals.fully_commutative_stable_grothendieck import DecreasingHeckeFactorization sage: h = DecreasingHeckeFactorization([[3, 1], [3], [3, 2]], 4) sage: u = B(h); u.value ((3, 1), (3,), (3, 2)) sage: v = B([[3, 1], [3], [3, 2]]); v.value ((3, 1), (3,), (3, 2))
- bracketing(i)#
Remove all bracketed letters between \(i\)-th and \((i+1)\)-th entry.
EXAMPLES:
sage: S = SymmetricGroup(4+1) sage: w = S.from_reduced_word([3, 2, 1, 4, 3]) sage: B = crystals.FullyCommutativeStableGrothendieck(w, 3, 2) sage: h = B([[3], [4, 2, 1], [4, 3, 1]]) sage: h.bracketing(1) [[], []] sage: h.bracketing(2) [[], [2, 1]]
- e(i)#
Return the action of \(e_i\) on
self
using the rules described in [MPPS2020].EXAMPLES:
sage: S = SymmetricGroup(4+1) sage: w = S.from_reduced_word([2, 1, 4, 3, 2]) sage: B = crystals.FullyCommutativeStableGrothendieck(w, 4, 3) sage: h = B([[4, 2], [4, 2, 1], [3, 2], [2]]); h (4, 2)(4, 2, 1)(3, 2)(2) sage: h.e(1) (4, 2)(4, 2, 1)(3)(3, 2) sage: h.e(2) (4, 2)(2, 1)(4, 3, 2)(2) sage: h.e(3)
- f(i)#
Return the action of \(f_i\) on
self
using the rules described in [MPPS2020].EXAMPLES:
sage: S = SymmetricGroup(4+1) sage: w = S.from_reduced_word([3, 2, 1, 4, 3]) sage: B = crystals.FullyCommutativeStableGrothendieck(w, 4, 3) sage: h = B([[3, 2], [2, 1], [4, 3], [3, 1]]); h (3, 2)(2, 1)(4, 3)(3, 1) sage: h.f(1) (3, 2)(2, 1)(4, 3, 1)(3) sage: h.f(2) sage: h.f(3) (3, 2, 1)(1)(4, 3)(3, 1)
- module_generators()#
Return generators for
self
as a crystal.EXAMPLES:
sage: S = SymmetricGroup(3+1) sage: w = S.from_reduced_word([1, 3, 2]) sage: B = crystals.FullyCommutativeStableGrothendieck(w, 3, 2) sage: B.module_generators ((1)(3, 1)(3, 2), (3)(3, 1)(3, 2)) sage: C = crystals.FullyCommutativeStableGrothendieck(w, 4, 2) sage: C.module_generators (()(1)(3, 1)(3, 2), ()(3)(3, 1)(3, 2), (1)(1)(1)(3, 2), (1)(1)(3)(3, 2), (1)(3)(3)(3, 2))