Elementary Crystals

Let \(\lambda\) be a weight. The crystals \(T_{\lambda}\), \(R_{\lambda}\), \(B_i\), and \(C\) are important objects in the tensor category of crystals. For example, the crystal \(T_0\) is the neutral object in this category; i.e., \(T_0 \otimes B \cong B \otimes T_0 \cong B\) for any crystal \(B\). We list some other properties of these crystals:

  • The crystal \(T_{\lambda} \otimes B(\infty)\) is the crystal of the Verma module with highest weight \(\lambda\), where \(\lambda\) is a dominant integral weight.
  • Let \(u_{\infty}\) be the highest weight vector of \(B(\infty)\) and \(\lambda\) be a dominant integral weight. There is an embedding of crystals \(B(\lambda) \longrightarrow T_{\lambda} \otimes B(\infty)\) sending \(u_{\lambda} \mapsto t_{\lambda} \otimes u_{\infty}\) which is not strict, but the embedding \(B(\lambda) \longrightarrow C \otimes T_{\lambda} \otimes B(\infty)\) by \(u_{\lambda} \mapsto c \otimes t_{\lambda} \otimes u_{\infty}\) is a strict embedding.
  • For any dominant integral weight \(\lambda\), there is a surjective crystal morphism \(\Psi_{\lambda} \colon R_{\lambda} \otimes B(\infty) \longrightarrow B(\lambda)\). More precisely, if \(B = \{r_{\lambda} \otimes b \in R_{\lambda} \otimes B(\infty) : \Psi_{\lambda}(r_{\lambda} \otimes b) \neq 0 \}\), then \(B \cong B(\lambda)\) as crystals.
  • For all Cartan types and all weights \(\lambda\), we have \(R_{\lambda} \cong C \otimes T_{\lambda}\) as crystals.
  • For each \(i\), there is a strict crystal morphism \(\Psi_i \colon B(\infty) \longrightarrow B_i \otimes B(\infty)\) defined by \(u_{\infty} \mapsto b_i(0) \otimes u_{\infty}\), where \(u_\infty\) is the highest weight vector of \(B(\infty)\).

For more information on \(B(\infty)\), see InfinityCrystalOfTableaux.

Note

As with TensorProductOfCrystals, we are using the opposite of Kashiwara’s convention.

AUTHORS:

  • Ben Salisbury: Initial version

REFERENCES:

class sage.combinat.crystals.elementary_crystals.AbstractSingleCrystalElement

Bases: sage.structure.element.Element

Abstract base class for elements in crystals with a single element.

e(i)

Return \(e_i\) of self, which is None for all \(i\).

INPUT:

  • i – An element of the index set

EXAMPLES:

sage: ct = CartanType(['A',2])
sage: la = RootSystem(ct).weight_lattice().fundamental_weights()
sage: T = crystals.elementary.T(ct,la[1])
sage: t = T.highest_weight_vector()
sage: t.e(1)
sage: t.e(2)
f(i)

Return \(f_i\) of self, which is None for all \(i\).

INPUT:

  • i – An element of the index set

EXAMPLES:

sage: ct = CartanType(['A',2])
sage: la = RootSystem(ct).weight_lattice().fundamental_weights()
sage: T = crystals.elementary.T(ct,la[1])
sage: t = T.highest_weight_vector()
sage: t.f(1)
sage: t.f(2)
sage.combinat.crystals.elementary_crystals.ComponentCrystal

The component crystal.

Defined in [Ka1993], the component crystal \(C = \{c\}\) is the single element crystal whose crystal structure is defined by

\[\mathrm{wt}(c) = 0, \quad e_i c = f_i c = 0, \quad \varepsilon_i(c) = \varphi_i(c) = 0.\]

Note \(C \cong B(0)\), where \(B(0)\) is the highest weight crystal of highest weight \(0\).

INPUT:

  • cartan_type – a Cartan type
sage.combinat.crystals.elementary_crystals.ElementaryCrystal

The elementary crystal \(B_i\).

For \(i\) an element of the index set of type \(X\), the crystal \(B_i\) of type \(X\) is the set

\[B_i = \{ b_i(m) : m \in \ZZ \},\]

where the crystal stucture is given by

\[\begin{split}\begin{aligned} \mathrm{wt}\bigl(b_i(m)\bigr) &= m\alpha_i \\ \varphi_j\bigl(b_i(m)\bigr) &= \begin{cases} m & \text{ if } j=i, \\ -\infty & \text{ if } j\neq i, \end{cases} \\ \varepsilon_j\bigl(b_i(m)\bigr) &= \begin{cases} -m & \text{ if } j=i, \\ -\infty & \text{ if } j\neq i, \end{cases} \\ e_j b_i(m) &= \begin{cases} b_i(m+1) & \text{ if } j=i, \\ 0 & \text{ if } j\neq i, \end{cases} \\ f_j b_i(m) &= \begin{cases} b_i(m-1) & \text{ if } j=i, \\ 0 & \text{ if } j\neq i. \end{cases} \end{aligned}\end{split}\]

The Kashiwara embedding theorem asserts there is a unique strict crystal embedding of crystals

\[B(\infty) \hookrightarrow B_i \otimes B(\infty),\]

satisfying certain properties (see [Ka1993]). The above embedding may be iterated to obtain a new embedding

\[B(\infty) \hookrightarrow B_{i_N} \otimes B_{i_{N-1}} \otimes \cdots \otimes B_{i_2} \otimes B_{i_1} \otimes B(\infty),\]

which is a foundational object in the study of polyhedral realizations of crystals (see, for example, [NZ1997]).

sage.combinat.crystals.elementary_crystals.RCrystal

The crystal \(R_{\lambda}\).

For a fixed weight \(\lambda\), the crystal \(R_{\lambda} = \{ r_{\lambda} \}\) is a single element crystal with the crystal structure defined by

\[\mathrm{wt}(r_{\lambda}) = \lambda, \quad e_i r_{\lambda} = f_i r_{\lambda} = 0, \quad \varepsilon_i(r_{\lambda}) = -\langle h_i, \lambda\rangle, \quad \varphi_i(r_{\lambda}) = 0,\]

where \(\{h_i\}\) are the simple coroots.

Tensoring \(R_{\lambda}\) with a crystal \(B\) results in shifting the weights of the vertices in \(B\) by \(\lambda\) and may also cut a subset out of the original graph of \(B\). That is, \(\mathrm{wt}(r_{\lambda} \otimes b) = \mathrm{wt}(b) + \lambda\), where \(b \in B\), provided \(r_{\lambda} \otimes b \neq 0\). For example, the crystal graph of \(B(\lambda)\) is the same as the crystal graph of \(R_{\lambda} \otimes B(\infty)\) generated from the component \(r_{\lambda} \otimes u_{\infty}\).

INPUT:

  • cartan_type – A Cartan type
  • weight – An element of the weight lattice of type cartan_type

EXAMPLES:

We check by tensoring \(R_{\lambda}\) with \(B(\infty)\) results in a component of \(B(\lambda)\):

sage: B = crystals.infinity.Tableaux("A2")
sage: R = crystals.elementary.R("A2", B.Lambda()[1]+B.Lambda()[2])
sage: T = crystals.TensorProduct(R, B)
sage: mg = T(R.highest_weight_vector(), B.highest_weight_vector())
sage: S = T.subcrystal(generators=[mg])
sage: sorted([x.weight() for x in S], key=str)
[(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 1, 1),
 (1, 1, 1), (1, 2, 0), (2, 0, 1), (2, 1, 0)]
sage: C = crystals.Tableaux("A2", shape=[2,1])
sage: sorted([x.weight() for x in C], key=str)
[(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 1, 1),
 (1, 1, 1), (1, 2, 0), (2, 0, 1), (2, 1, 0)]
sage: GT = T.digraph(subset=S)
sage: GC = C.digraph()
sage: GT.is_isomorphic(GC, edge_labels=True)
True
sage.combinat.crystals.elementary_crystals.TCrystal

The crystal \(T_{\lambda}\).

Let \(\lambda\) be a weight. As defined in [Ka1993] the crystal \(T_{\lambda} = \{ t_{\lambda} \}\) is a single element crystal with the crystal structure defined by

\[\mathrm{wt}(t_\lambda) = \lambda, \quad e_i t_{\lambda} = f_i t_{\lambda} = 0, \quad \varepsilon_i(t_{\lambda}) = \varphi_i(t_{\lambda}) = -\infty.\]

The crystal \(T_{\lambda}\) shifts the weights of the vertices in a crystal \(B\) by \(\lambda\) when tensored with \(B\), but leaves the graph structure of \(B\) unchanged. That is to say, for all \(b \in B\), we have \(\mathrm{wt}(b \otimes t_{\lambda}) = \mathrm{wt}(b) + \lambda\).

INPUT:

  • cartan_type – A Cartan type
  • weight – An element of the weight lattice of type cartan_type

EXAMPLES:

sage: ct = CartanType(['A',2])
sage: C = crystals.Tableaux(ct, shape=[1])
sage: for x in C: x.weight()
(1, 0, 0)
(0, 1, 0)
(0, 0, 1)
sage: La = RootSystem(ct).ambient_space().fundamental_weights()
sage: TLa = crystals.elementary.T(ct, 3*(La[1] + La[2]))
sage: TP = crystals.TensorProduct(TLa, C)
sage: for x in TP: x.weight()
(7, 3, 0)
(6, 4, 0)
(6, 3, 1)
sage: G = C.digraph()
sage: H = TP.digraph()
sage: G.is_isomorphic(H,edge_labels=True)
True