Kirillov-Reshetikhin tableaux¶

Kirillov-Reshetikhin tableaux are rectangular tableaux with $$r$$ rows and $$s$$ columns that naturally arise under the bijection between rigged configurations and tableaux [RigConBijection]. They are in bijection with the elements of the Kirillov-Reshetikhin crystal $$B^{r,s}$$ under the (inverse) filling map. For more information, see KirillovReshetikhinTableaux and TensorProductOfKirillovReshetikhinTableaux.

AUTHORS:

• Travis Scrimshaw (2012-01-03): Initial version
• Travis Scrimshaw (2012-11-14): Added bijection to KR crystals
class sage.combinat.rigged_configurations.kr_tableaux.KRTableauxRectangle(cartan_type, r, s)

Kirillov-Reshetkhin tableaux $$B^{r,s}$$ whose module generator is a single $$r \times s$$ rectangle.

These are Kirillov-Reshetkhin tableaux $$B^{r,s}$$ of type:

• $$A_n^{(1)}$$ for all $$1 \leq r \leq n$$,
• $$C_n^{(1)}$$ when $$r = n$$.
class sage.combinat.rigged_configurations.kr_tableaux.KRTableauxSpin(cartan_type, r, s)

Kirillov-Reshetikhin tableaux $$B^{r,s}$$ of type $$D_n^{(1)}$$ with $$r = n, n-1$$.

Element

alias of KRTableauxSpinElement

class sage.combinat.rigged_configurations.kr_tableaux.KRTableauxSpinElement(parent, list, **options)

Kirillov-Reshetikhin tableau for spinors.

Here we are in the embedding $$B(\Lambda_n) \to B(2 \Lambda_n)$$, so $$e_i$$ and $$f_i$$ act by $$e_i^2$$ and $$f_i^2$$ respectively.

e(i)

Calculate the action of $$e_i$$ on self.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 4, 1)
sage: KRT([-1, -4, 3, 2]).e(1)
[[1], [3], [-4], [-2]]
sage: KRT([-1, -4, 3, 2]).e(3)

epsilon(i)

Compute $$\epsilon_i$$ of self.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 4, 1)
sage: KRT([-1, -4, 3, 2]).epsilon(1)
1
sage: KRT([-1, -4, 3, 2]).epsilon(3)
0

f(i)

Calculate the action of $$f_i$$ on self.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 4, 1)
sage: KRT([-1, -4, 3, 2]).f(1)
sage: KRT([-1, -4, 3, 2]).f(3)
[[2], [4], [-3], [-1]]

phi(i)

Compute $$\phi_i$$ of self.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 4, 1)
sage: KRT([-1, -4, 3, 2]).phi(1)
0
sage: KRT([-1, -4, 3, 2]).phi(3)
1

to_array(rows=True)

Return a 2-dimensional array representation of this Kirillov-Reshetikhin element.

If the output is in rows, then it outputs the top row first (in the English convention) from left to right.

For example: if the reading word is $$[2, 1, 4, 3]$$, so as a $$2 \times 2$$ tableau:

1 3
2 4

we output [[1, 3], [2, 4]].

If the output is in columns, then it outputs the leftmost column first with the bottom element first. In other words this parses the reading word into its columns.

Continuing with the previous example, the output would be [[2, 1], [4, 3]].

INPUT:

• rows – (Default: True) Set to True if the resulting array is by row, otherwise it is by column.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['D', 4, 1], 4, 3)
sage: elt = KRT([-3,-4,2,1,-3,-4,2,1,-2,-4,3,1])
sage: elt.to_array()
[[1, 1, 1], [2, 2, 3], [-4, -4, -4], [-3, -3, -2]]
sage: elt.to_array(False)
[[-3, -4, 2, 1], [-3, -4, 2, 1], [-2, -4, 3, 1]]

class sage.combinat.rigged_configurations.kr_tableaux.KRTableauxTypeVertical(cartan_type, r, s)

Kirillov-Reshetkihn tableaux $$B^{r,s}$$ of type:

• $$D_n^{(1)}$$ for all $$1 \leq r < n-1$$,
• $$B_n^{(1)}$$ for all $$1 \leq r < n$$,
• $$A_{2n-1}^{(2)}$$ for all $$1 \leq r \leq n$$.
class sage.combinat.rigged_configurations.kr_tableaux.KirillovReshetikhinTableaux(cartan_type, r, s)

Kirillov-Reshetikhin tableaux.

Kirillov-Reshetikhin tableaux are rectangular tableaux with $$r$$ rows and $$s$$ columns that naturally arise under the bijection between rigged configurations and tableaux [RigConBijection]. They are in bijection with the elements of the Kirillov-Reshetikhin crystal $$B^{r,s}$$ under the (inverse) filling map.

When the Kirillov-Reshetkihin crystal is a full $$r \times s$$ rectangle (such as in type $$A^{(1)}_n$$ or $$C^{(1)}_n$$ for $$B^{n,s}$$), the filling map is trivial. Thus the highest weight module is just filled with columns $$[1, 2, \ldots, n]$$.

For type $$D^{(1)}_n$$ for $$B^{r,s}$$ when $$r \leq n-2$$, the filling map is defined in [AffineRigConDn].

For the spinor cases, the crystal $$B^{k,s}$$ is isomorphic to the classical crystal $$B(\Lambda_k)$$, and here we consider the Kirillov-Reshetikhin tableaux as living in $$B(2\Lambda_k)$$ under the natural doubling map. In this case, $$e_i$$ and $$f_i$$ act as $$e_i^2$$ and $$f_i^2$$ respectively. See [BijectionDn].

Warning

The module generators for all types except $$A^{(1)}_n$$, $$D^{(1)}_n$$, and full rectangles have not been tested, much less proven, to be the correct output from the bijection.

For more information about the bijection between rigged configurations and tensor products of Kirillov-Reshetikhin tableaux, see TensorProductOfKirillovReshetikhinTableaux.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['A', 4, 1], 2, 1)
sage: elt = KRT([4, 3]); elt
[[3], [4]]

sage: KRT = KirillovReshetikhinTableaux(['D', 4, 1], 2, 1)
sage: elt = KRT([-1, 1]); elt
[[1], [-1]]


We can create highest weight crystals from a given shape:

sage: KRT = KirillovReshetikhinTableaux(['D', 4, 1], 2, 1)
sage: KRT(shape=[])
[[1], [-1]]
sage: KRT = KirillovReshetikhinTableaux(['D', 4, 1], 2, 2)
sage: KRT(shape=[1,1])
[[1, 1], [2, -1]]


We can go between KirillovReshetikhinCrystal() and KirillovReshetikhinTableaux elements:

sage: KRCrys = KirillovReshetikhinCrystal(['D', 4, 1], 2, 2)
sage: KRTab = KirillovReshetikhinTableaux(['D', 4, 1], 2, 2)
sage: elt = KRCrys(3, 2); elt
[[2], [3]]
sage: k = KRTab(elt); k
[[2, 1], [3, -1]]
sage: k.to_Kirillov_Reshetikhin_crystal()
[[2], [3]]

Element
Kirillov_Reshetikhin_crystal()

Return the corresponding Kirillov-Reshetikhin crystal.

EXAMPLES:

sage: KirillovReshetikhinTableaux(['A', 4, 1], 2, 1).Kirillov_Reshetikhin_crystal()
Kirillov-Reshetikhin crystal of type ['A', 4, 1] with (r,s)=(2,1)

r()

Return the value $$r$$ for this tableaux class.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['A', 4, 1], 2, 1)
sage: KRT.r()
2

s()

Return the value $$s$$ for this tableaux class.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['A', 4, 1], 2, 1)
sage: KRT.s()
1

class sage.combinat.rigged_configurations.kr_tableaux.KirillovReshetikhinTableauxElement(parent, list, **options)

A Kirillov-Reshetikhin tableau.

classical_weight()

Return the classical weight of self.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 2,2)
sage: elt = KRT([3,2,-1,1]); elt
[[2, 1], [3, -1]]
sage: elt.classical_weight()
(0, 1, 1, 0)

e(i)

Perform the action of $$e_i$$ on self.

Todo

Implement a direct action of $$e_0$$ without moving to KR crystals.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 2,2)
sage: KRT.module_generators[0].e(0)
[[-2, 1], [-1, -1]]

f(i)

Perform the action of $$f_i$$ on self.

Todo

Implement a direct action of $$f_0$$ without moving to KR crystals.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 2,2)
sage: KRT.module_generators[0].f(0)
[[1, 1], [2, -1]]

to_Kirillov_Reshetikhin_crystal()

Construct a KirillovReshetikhinCrystal() element from self.

We construct the Kirillov-Reshetikhin crystal element as follows:

1. Determine the shape $$\lambda$$ of the KR crystal from the weight.
2. Determine a path $$e_{i_1} e_{i_2} \cdots e_{i_k}$$ to the highest weight.
3. Apply $$f_{i_k} \cdots f_{i_2} f_{i_1}$$ to a highest weight KR crystal of shape $$\lambda$$.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 2,2)
sage: elt = KRT([3,2,-1,1]); elt
[[2, 1], [3, -1]]
sage: elt.to_Kirillov_Reshetikhin_crystal()
[[2], [3]]


TESTS:

Spinor tests:

sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 4, 3)
sage: KRC = KirillovReshetikhinCrystal(['D',4,1], 4, 3)
sage: elt = KRT([-3,-4,2,1,-3,-4,2,1,-2,-4,3,1]); elt
[[1, 1, 1], [2, 2, 3], [-4, -4, -4], [-3, -3, -2]]
sage: ret = elt.to_Kirillov_Reshetikhin_crystal(); ret
[++--, [[1], [3], [-4], [-3]]]
sage: test = KRT(ret); test
[[1, 1, 1], [2, 2, 3], [-4, -4, -4], [-3, -3, -2]]
sage: test == elt
True

to_array(rows=True)

Return a 2-dimensional array representation of this Kirillov-Reshetikhin element.

If the output is in rows, then it outputs the top row first (in the English convention) from left to right.

For example: if the reading word is $$[2, 1, 4, 3]$$, so as a $$2 \times 2$$ tableau:

1 3
2 4

we output [[1, 3], [2, 4]].

If the output is in columns, then it outputs the leftmost column first with the bottom element first. In other words this parses the reading word into its columns.

Continuing with the previous example, the output would be [[2, 1], [4, 3]].

INPUT:

• rows – (Default: True) Set to True if the resulting array is by row, otherwise it is by column.

EXAMPLES:

sage: KRT = KirillovReshetikhinTableaux(['A', 4, 1], 2, 2)
sage: elt = KRT([4, 3, 2, 1])
sage: elt.to_array()
[[3, 1], [4, 2]]
sage: elt.to_array(False)
[[4, 3], [2, 1]]

to_classical_highest_weight(index_set=None)

Return the classical highest weight element corresponding to self.

INPUT:

• index_set – (Default: None) Return the highest weight with respect to the index set. If None is passed in, then this uses the classical index set.

OUTPUT:

A pair [H, f_str] where H is the highest weight element and f_str is a list of $$a_i$$ of $$f_{a_i}$$ needed to reach H.

EXAMPLES:

sage: KRTab = KirillovReshetikhinTableaux(['D',4,1], 2,2)
sage: elt = KRTab([3,2,-1,1]); elt
[[2, 1], [3, -1]]
sage: elt.to_classical_highest_weight()
[[[1, 1], [2, -1]], [1, 2]]


Previous topic

An element of a tensor product of Kirillov-Reshetikhin tableaux

Kleber tree