\(\mathcal{B}(\infty)\) Crystal Of PBW Monomials

AUTHORS:

  • Dinakar Muthiah (2015-05-11): initial version

See also

For information on PBW datum, see PBW Data.

class sage.combinat.crystals.pbw_crystal.PBWCrystal(cartan_type)

Bases: sage.structure.parent.Parent, sage.structure.unique_representation.UniqueRepresentation

Crystal of \(\mathcal{B}(\infty)\) given by PBW monomials.

A model of the crystal \(\mathcal{B}(\infty)\) whose elements are PBW datum up to equivalence by the tropical Plücker relations. The crystal structure on Lusztig data \(x = (x_1, \ldots, x_m)\) for the reduced word \(s_{i_1} \cdots s_{i_m} = w_0\) is given as follows. Suppose \(i_1 = j\), then \(f_j x = (x_1 + 1, x_2, \ldots, x_m)\). If \(i_1 \neq j\), then we use the tropical Plücker relations to change the reduced expression such that \(i_1' = j\) and then we change back to the original word.

EXAMPLES:

sage: PBW = crystals.infinity.PBW(['B', 3])
sage: hw = PBW.highest_weight_vector()
sage: x = hw.f_string([1,2,2,3,3,1,3,3,2,3,2,1,3,1,2,3,1,2,1,3,2]); x
PBW monomial with Lusztig datum (1, 1, 1, 3, 1, 0, 0, 1, 1)

Elements are expressed in terms of Lusztig datum for a fixed reduced expression of \(w_0\):

sage: PBW.default_long_word()
[1, 3, 2, 3, 1, 2, 3, 1, 2]
sage: PBW.set_default_long_word([2,1,3,2,1,3,2,3,1])
sage: x
PBW monomial with Lusztig datum (3, 1, 1, 0, 1, 0, 1, 3, 4)
sage: PBW.set_default_long_word([1, 3, 2, 3, 1, 2, 3, 1, 2])

We can construct elements by giving it Lusztig data (with respect to the default long word):

sage: PBW([1,1,1,3,1,0,0,1,1])
PBW monomial with Lusztig datum (1, 1, 1, 3, 1, 0, 0, 1, 1)

We can also construct elements by passing in a reduced expression for a long word:

sage: x = PBW([1,1,1,3,1,0,0,1,1], [3,2,1,3,2,3,2,1,2]); x
PBW monomial with Lusztig datum (1, 1, 1, 0, 1, 0, 5, 1, 1)
sage: x.to_highest_weight()[1]
[1, 2, 2, 2, 2, 2, 1, 3, 3, 3, 3, 2, 3, 2, 3, 3, 2, 3, 3, 2, 1, 3]
Element

alias of PBWCrystalElement

default_long_word()

Return the default long word used to express elements of self.

EXAMPLES:

sage: B = crystals.infinity.PBW(['E', 6])
sage: B.default_long_word()
[1, 3, 4, 5, 6, 2, 4, 5, 3, 4, 1, 3, 2, 4, 5, 6, 2, 4,
 5, 3, 4, 1, 3, 2, 4, 5, 3, 4, 1, 3, 2, 4, 1, 3, 2, 1]
set_default_long_word(word)

Set the default long word used to express elements of self.

EXAMPLES:

sage: B = crystals.infinity.PBW(['C', 3])
sage: B.default_long_word()
[1, 3, 2, 3, 1, 2, 3, 1, 2]
sage: x = B.highest_weight_vector().f_string([2,1,3,2,3,1,2,3,3,1])
sage: x
PBW monomial with Lusztig datum (1, 2, 2, 0, 0, 0, 0, 0, 1)
sage: B.set_default_long_word([2,1,3,2,1,3,2,3,1])
sage: B.default_long_word()
[2, 1, 3, 2, 1, 3, 2, 3, 1]
sage: x
PBW monomial with Lusztig datum (2, 0, 0, 0, 0, 0, 1, 3, 2)
class sage.combinat.crystals.pbw_crystal.PBWCrystalElement(parent, lusztig_datum, long_word=None)

Bases: sage.structure.element.Element

A crystal element in the PBW model.

e(i)

Return the action of \(e_i\) on self.

EXAMPLES:

sage: B = crystals.infinity.PBW(['B', 3])
sage: b = B.highest_weight_vector()
sage: c = b.f_string([2,1,3,2,1,3,2,2]); c
PBW monomial with Lusztig datum (0, 1, 0, 1, 0, 0, 0, 1, 2)
sage: c.e(2)
PBW monomial with Lusztig datum (0, 1, 0, 1, 0, 0, 0, 1, 1)
sage: c.e_string([2,2,1,3,2,1,3,2]) == b
True
epsilon(i)

Return \(\varepsilon_i\) of self.

EXAMPLES:

sage: B = crystals.infinity.PBW(["A2"])
sage: s = B((3,0,0), (1,2,1))
sage: s.epsilon(1)
3
sage: s.epsilon(2)
0
f(i)

Return the action of \(f_i\) on self.

EXAMPLES:

sage: B = crystals.infinity.PBW("D4")
sage: b = B.highest_weight_vector()
sage: c = b.f_string([1,2,3,1,2,3,4]); c
PBW monomial with Lusztig datum (0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0)
sage: c == b.f_string([1,2,4,1,2,3,3])
True
lusztig_datum(word=None)

Return the Lusztig datum of self with respect to the reduced expression of the long word word.

EXAMPLES:

sage: B = crystals.infinity.PBW(['A', 2])
sage: u = B.highest_weight_vector()
sage: b = u.f_string([2,1,2,2,2,2,1,1,2,1,2,1,2,1,2,2])
sage: b.lusztig_datum()
(6, 0, 10)
sage: b.lusztig_datum(word=[2,1,2])
(4, 6, 0)
phi(i)

Return \(\varphi_i\) of self.

EXAMPLES:

sage: B = crystals.infinity.PBW(['A', 2])
sage: s = B((3,0,0), (1,2,1))
sage: s.phi(1)
-3
sage: s.phi(2)
3
star()

Return the starred crystal element corresponding to self.

Let \(b\) be an element of self with Lusztig datum \((b_1, \ldots, b_N)\) with respect to \(w_0 = s_{i_1} \cdots s_{i_N}\). Then \(b^*\) is the element with Lusztig datum \((b_N, \ldots, b_1)\) with respect to \(w_0 = s_{i_N^*} \cdots s_{i_1^*}\), where \(i_j^* = \omega(i_j)\) with \(\omega\) being the automorphism given by the action of \(w_0\) on the simple roots.

EXAMPLES:

sage: P = crystals.infinity.PBW(['A', 2])
sage: P((1,2,3), (1,2,1)).star() == P((3,2,1), (2,1,2))
True

sage: B = crystals.infinity.PBW(['E', 6])
sage: b = B.highest_weight_vector()
sage: c = b.f_string([1,2,6,3,4,2,5,2,3,4,1,6])
sage: c == c.star().star()
True
weight()

Return weight of self.

EXAMPLES:

sage: B = crystals.infinity.PBW(['A', 2])
sage: s = B((2,2,2), (1,2,1))
sage: s.weight()
(-4, 0, 4)