Polyhedral Realization of
¶
-
class
sage.combinat.crystals.polyhedral_realization.
InfinityCrystalAsPolyhedralRealization
(cartan_type, seq)¶ Bases:
sage.combinat.crystals.tensor_product.TensorProductOfCrystals
The polyhedral realization of
.
Note
Here we are using anti-Kashiwara notation and might differ from some of the literature.
Consider a Kac-Moody algebra
of Cartan type
with index set
, and consider a finite sequence
whose support equals
. We extend this to an infinite sequence by taking
, where
denotes concatenation of sequences. Let
where
is an
ElementaryCrystal
.As given in Theorem 2.1.1 of [K93], there exists a strict crystal embedding
defined by
, where
and
is the (unique) highest weight element in
. This is sometimes known as the Kashiwara embedding [NZ97] (though, in [NZ97], the target of this map is denoted by
). By iterating this embedding by taking
, we obtain the following strict crystal embedding:
We note there is a natural analog of Lemma 10.6.2 in [HK02] that for any
, there exists a positive integer
such that
Therefore we can model elements
by considering an infinite list of elements
and defining the crystal structure by:
To translate this into a finite list, we consider a finite sequence
and if
then we take the image as
. Similarly we remove
if we have
. Additionally if
then we consider this to be
.
REFERENCES:
[K93] M. Kashiwara. The crystal base and Littelmann’s refined Demazure character formula. Duke Math. J. 71. 1993. INPUT:
cartan_type
– a Cartan typeseq
– (default:None
) a finite sequence whose support equals the index set of the Cartan type; ifNone
, then this is the index set
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
:
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
:
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]
-
class
Element
(parent, *args, **kwds)¶ Bases:
sage.combinat.crystals.tensor_product.TensorProductOfCrystalsElement
An element in the polyhedral realization of
.
-
e
(i)¶ Return the action of
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
-
epsilon
(i)¶ Return
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]
-
f
(i)¶ Return the action of
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]
-
phi
(i)¶ Return
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
(k=None)¶ Truncate
self
to have lengthk
and return as an element in a (finite) tensor product of crystals.INPUT:
k
– (optional) the length of the truncation; if not specified, then returns one more than the current non-ground-state elements (i.e. the current list inself
)
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]
-
-
InfinityCrystalAsPolyhedralRealization.
finite_tensor_product
(k)¶ Return the finite tensor product of crystals of length
k
by truncatingself
.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]]