Bases: sage.combinat.crystals.tensor_product.TensorProductOfCrystals
The polyhedral realization of \(B(\infty)\).
Note
Here we are using anti-Kashiwara notation and might differ from some of the literature.
Consider a Kac-Moody algebra \(\mathfrak{g}\) of Cartan type \(X\) with index set \(I\), and consider a finite sequence \(J = (j_1, j_2, \ldots, j_m)\) whose support equals \(I\). We extend this to an infinite sequence by taking \(\bar{J} = J \cdot J \cdot J \cdots\), where \(\cdot\) denotes concatenation of sequences. Let
where \(B_i\) is an ElementaryCrystal.
As given in Theorem 2.1.1 of [K93], there exists a strict crystal embedding \(\Psi_i \colon B(\infty) \to B_i \otimes B(\infty)\) defined by \(u_{\infty} \mapsto b_i(0) \otimes u_{\infty}\), where \(b_i(0) \in B_i\) and \(u_{\infty}\) is the (unique) highest weight element in \(B(\infty)\). This is sometimes known as the Kashiwara embedding [NZ97] (though, in [NZ97], the target of this map is denoted by \(\ZZ_J^\infty\)). By iterating this embedding by taking \(\Psi_J = \Psi_{j_n} \circ \Psi_{j_{n-1}} \circ \cdots \circ \Psi_{j_1}\), we obtain the following strict crystal embedding:
We note there is a natural analog of Lemma 10.6.2 in [HK02] that for any \(b \in B(\infty)\), there exists a positive integer \(N\) such that
Therefore we can model elements \(b \in B(\infty)\) by considering an infinite list of elements \(b^{(k)} \in B_J\) and defining the crystal structure by:
To translate this into a finite list, we consider a finite sequence \(b_1 \otimes \cdots \otimes b_N\) and if
then we take the image as \(b^{(1)} \otimes \cdots \otimes f_i\left( b^{(N)} \right) \otimes b^{(N+1)}\). Similarly we remove \(b^{(N)}\) if we have \(b^{(N)} = \bigotimes_{k=1}^m b_{j_k}(0)\). Additionally if
then we consider this to be \(0\).
REFERENCES:
[K93] | M. Kashiwara. The crystal base and Littelmann’s refined Demazure character formula. Duke Math. J. 71. 1993. |
INPUT:
EXAMPLES:
sage: B = crystals.infinity.PolyhedralRealization(['A',2])
sage: mg = B.module_generators[0]; mg
[0, 0]
sage: mg.f_string([2,1,2,2])
[0, -3, -1, 0, 0, 0]
An example of type \(B_2\):
sage: B = crystals.infinity.PolyhedralRealization(['B',2])
sage: mg = B.module_generators[0]; mg
[0, 0]
sage: mg.f_string([2,1,2,2])
[0, -2, -1, -1, 0, 0]
An example of type \(G_2\):
sage: B = crystals.infinity.PolyhedralRealization(['G',2])
sage: mg = B.module_generators[0]; mg
[0, 0]
sage: mg.f_string([2,1,2,2])
[0, -3, -1, 0, 0, 0]
Bases: sage.combinat.crystals.tensor_product.TensorProductOfCrystalsElement
An element in the polyhedral realization of \(B(\infty)\).
Return the action of \(e_i\) on self.
EXAMPLES:
sage: B = crystals.infinity.PolyhedralRealization(['A',2])
sage: mg = B.module_generators[0]
sage: all(mg.e(i) is None for i in B.index_set())
True
sage: mg.f(1).e(1) == mg
True
Return \(\varepsilon_i\) of self.
EXAMPLES:
sage: B = crystals.infinity.PolyhedralRealization(['A',2,1])
sage: mg = B.module_generators[0]
sage: [mg.epsilon(i) for i in B.index_set()]
[0, 0, 0]
sage: elt = mg.f(0)
sage: [elt.epsilon(i) for i in B.index_set()]
[1, 0, 0]
sage: elt = mg.f_string([0,1,2])
sage: [elt.epsilon(i) for i in B.index_set()]
[0, 0, 1]
sage: elt = mg.f_string([0,1,2,2])
sage: [elt.epsilon(i) for i in B.index_set()]
[0, 0, 2]
Return the action of \(f_i\) on self.
EXAMPLES:
sage: B = crystals.infinity.PolyhedralRealization(['A',2])
sage: mg = B.module_generators[0]
sage: mg.f(1)
[-1, 0, 0, 0]
sage: mg.f_string([1,2,2,1])
[-1, -2, -1, 0, 0, 0]
Return \(\varphi_i\) of self.
EXAMPLES:
sage: B = crystals.infinity.PolyhedralRealization(['A',2,1])
sage: mg = B.module_generators[0]
sage: [mg.phi(i) for i in B.index_set()]
[0, 0, 0]
sage: elt = mg.f(0)
sage: [elt.phi(i) for i in B.index_set()]
[-1, 1, 1]
sage: elt = mg.f_string([0,1])
sage: [elt.phi(i) for i in B.index_set()]
[-1, 0, 2]
sage: elt = mg.f_string([0,1,2,2])
sage: [elt.phi(i) for i in B.index_set()]
[1, 1, 0]
Truncate self to have length k and return as an element in a (finite) tensor product of crystals.
INPUT:
EXAMPLES:
sage: B = crystals.infinity.PolyhedralRealization(['A',2])
sage: mg = B.module_generators[0]
sage: elt = mg.f_string([1,2,2,1]); elt
[-1, -2, -1, 0, 0, 0]
sage: t = elt.truncate(); t
[-1, -2, -1, 0, 0, 0]
sage: t.parent() is B.finite_tensor_product(6)
True
sage: elt.truncate(2)
[-1, -2]
sage: elt.truncate(10)
[-1, -2, -1, 0, 0, 0, 0, 0, 0, 0]
Return the finite tensor product of crystals of length k by truncating self.
EXAMPLES:
sage: B = crystals.infinity.PolyhedralRealization(['A',2])
sage: B.finite_tensor_product(5)
Full tensor product of the crystals
[The 1-elementary crystal of type ['A', 2],
The 2-elementary crystal of type ['A', 2],
The 1-elementary crystal of type ['A', 2],
The 2-elementary crystal of type ['A', 2],
The 1-elementary crystal of type ['A', 2]]