Tensor Product of Kirillov-Reshetikhin Tableaux

A tensor product of KirillovReshetikhinTableaux which are tableaux of \(r\) rows and \(s\) columns which naturally arise in the bijection between rigged configurations and tableaux and which are in bijection with the elements of the Kirillov-Reshetikhin crystal \(B^{r,s}\), see KirillovReshetikhinCrystal().

AUTHORS:

  • Travis Scrimshaw (2010-09-26): Initial version

EXAMPLES:

Type \(A_n^{(1)}\) examples:

sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['A',3,1], [[3,1], [2,1]])
sage: KRT
Tensor product of Kirillov-Reshetikhin tableaux of type ['A', 3, 1] and factor(s) ((3, 1), (2, 1))
sage: KRT.cardinality()
24
sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['A',3,1], [[1,1], [2,1], [3,1]])
sage: KRT
Tensor product of Kirillov-Reshetikhin tableaux of type ['A', 3, 1] and factor(s) ((1, 1), (2, 1), (3, 1))
sage: len(KRT.module_generators)
5
sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['A',3,1], [[1,1], [2,1], [3,1]])
sage: KRT.cardinality()
96

Type \(D_n^{(1)}\) examples:

sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['D', 4, 1], [[1, 1], [2, 1], [1, 1]])
sage: KRT
Tensor product of Kirillov-Reshetikhin tableaux of type ['D', 4, 1] and factor(s) ((1, 1), (2, 1), (1, 1))
sage: T = KRT(pathlist=[[1], [-2, 2], [1]])
sage: T
[[1]] (X) [[2], [-2]] (X) [[1]]
sage: T2 = KRT(pathlist=[[1], [2, -2], [1]])
sage: T2
[[1]] (X) [[-2], [2]] (X) [[1]]
sage: T == T2
False
sage.combinat.rigged_configurations.tensor_product_kr_tableaux.HighestWeightTensorKRT

Class so we do not have to build the module generators for TensorProductOfKirillovReshetikhinTableaux at initialization.

Warning

This class is for internal use only!

sage.combinat.rigged_configurations.tensor_product_kr_tableaux.TensorProductOfKirillovReshetikhinTableaux

A tensor product of KirillovReshetikhinTableaux.

Through the bijection with rigged configurations, the tableaux that are produced in all nonexceptional types are all of rectangular shapes and do not necessarily obey the usual strict increase in columns and weak increase in rows. The relation between the elements of the Kirillov-Reshetikhin crystal, given by the Kashiwara-Nakashima tableaux, and the Kirillov-Reshetikhin tableaux is given by a filling map.

Note

The tableaux for all non-simply-laced types are provably correct if the bijection with rigged configurations holds. Therefore this is currently only proven for \(B^{r,1}\) or \(B^{1,s}\) and in general for types \(A_n^{(1)}\) and \(D_n^{(1)}\).

For more information see [OSS2011] and KirillovReshetikhinTableaux.

For more information on KR crystals, see sage.combinat.crystals.kirillov_reshetikhin.

INPUT:

  • cartan_type – a Cartan type
  • B – an (ordered) list of pairs \((r,s)\) which give the dimension of a rectangle with \(r\) rows and \(s\) columns and corresponds to a Kirillov-Reshetikhin tableaux factor of \(B^{r,s}\).

REFERENCES:

[OSS2011]Masato Okado, Reiho Sakamoto, Anne Schilling, Affine crystal structure on rigged configurations of type \(D_n^{(1)}\), J. Algebraic Combinatorics 37(3) (2013) 571-599 (Arxiv 1109.3523 [math.QA])

EXAMPLES:

We can go between tensor products of KR crystals and rigged configurations:

sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['A',3,1], [[3,1],[2,2]])
sage: tp_krt = KRT(pathlist=[[3,2,1],[3,2,3,2]]); tp_krt
[[1], [2], [3]] (X) [[2, 2], [3, 3]]
sage: RC = RiggedConfigurations(['A',3,1], [[3,1],[2,2]])
sage: rc_elt = tp_krt.to_rigged_configuration(); rc_elt

-2[ ][ ]-2

0[ ][ ]0

(/)

sage: tp_krc = tp_krt.to_tensor_product_of_kirillov_reshetikhin_crystals(); tp_krc
[[[1], [2], [3]], [[2, 2], [3, 3]]]
sage: KRT(tp_krc) == tp_krt
True
sage: rc_elt == tp_krt.to_rigged_configuration()
True
sage: KR1 = crystals.KirillovReshetikhin(['A',3,1], 3,1)
sage: KR2 = crystals.KirillovReshetikhin(['A',3,1], 2,2)
sage: T = crystals.TensorProduct(KR1, KR2)
sage: t = T(KR1(3,2,1), KR2(3,2,3,2))
sage: KRT(t) == tp_krt
True
sage: t == tp_krc
True

We can get the highest weight elements by using the attribute module_generators:

sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['A',3,1], [[3,1], [2,1]])
sage: list(KRT.module_generators)
[[[1], [2], [3]] (X) [[1], [2]], [[1], [3], [4]] (X) [[1], [2]]]

To create elements directly (i.e. not passing in KR tableaux elements), there is the pathlist option will receive a list of lists which contain the reversed far-eastern reading word of the tableau. That is to say, in English notation, the word obtain from reading bottom-to-top, left-to-right.

sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['A',3,1], [[3,2], [1,2], [2,1]])
sage: elt = KRT(pathlist=[[3, 2, 1, 4, 2, 1], [1, 3], [3, 1]])
sage: elt.pp()
  1  1 (X)   1  3 (X)   1
  2  2                  3
  3  4

One can still create elements in the same way as tensor product of crystals:

sage: K1 = crystals.KirillovReshetikhin(['A',3,1], 3, 2, model='KR')
sage: K2 = crystals.KirillovReshetikhin(['A',3,1], 1, 2, model='KR')
sage: K3 = crystals.KirillovReshetikhin(['A',3,1], 2, 1, model='KR')
sage: eltlong = KRT(K1(3, 2, 1, 4, 2, 1), K2(1, 3), K3(3, 1))
sage: eltlong == elt
True