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)

Bases: sage.combinat.rigged_configurations.kr_tableaux.KirillovReshetikhinTableaux

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)

Bases: sage.combinat.rigged_configurations.kr_tableaux.KRTableauxRectangle

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)

Bases: sage.combinat.rigged_configurations.kr_tableaux.KirillovReshetikhinTableauxElement

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)

Bases: sage.combinat.rigged_configurations.kr_tableaux.KirillovReshetikhinTableaux

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)

Bases: sage.combinat.crystals.tensor_product.CrystalOfWords

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

alias of KirillovReshetikhinTableauxElement

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)

Bases: sage.combinat.crystals.tensor_product.TensorProductOfRegularCrystalsElement

A Kirillov-Reshetikhin tableau.

For more information, see KirillovReshetikhinTableaux and TensorProductOfKirillovReshetikhinTableaux.

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

Next topic

Kleber tree

This Page