A specific rigged configuration

A rigged configuration element is a sequence of RiggedPartition objects.

AUTHORS:

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

Todo

Implement crystal operators e_0 and f_0.

class sage.combinat.rigged_configurations.rigged_configuration_element.RiggedConfigurationElement(parent, *rigged_partitions, **options)

Bases: sage.structure.list_clone.ClonableArray

The RiggedConfigurationElement class is a list of RiggedPartition objects.

For more information on rigged configurations, see RiggedConfigurations.

Typically to create a specific rigged configuration, the user will pass in the optional argument partition_list and if the user wants to specify the rigging values, give the optional argument rigging_list as well. If rigging_list is not passed, the rigging values are set to the corresponding vacancy numbers.

EXAMPLES:

Type A_n^{(1)} examples:

sage: RC = RiggedConfigurations(['A', 4, 1], [[2, 2]])
sage: RC(partition_list=[[2], [2, 2], [2], [2]])

0[ ][ ]0

-2[ ][ ]-2
-2[ ][ ]-2

2[ ][ ]2

-2[ ][ ]-2


sage: RC = HighestWeightRiggedConfigurations(['A', 4, 1], [[1, 1], [1, 1]])
sage: RC(partition_list=[[], [], [], []])

(/)

(/)

(/)

(/)

Type D_n^{(1)} examples:

sage: RC = RiggedConfigurations(['D', 4, 1], [[2, 2]])
sage: RC(partition_list=[[3], [3,2], [4], [3]])

-1[ ][ ][ ]-1

1[ ][ ][ ]1
0[ ][ ]0

-3[ ][ ][ ][ ]-3

-1[ ][ ][ ]-1


sage: RC = HighestWeightRiggedConfigurations(['D', 4, 1], [[1,1], [2, 1]])
sage: RC(partition_list=[[1], [1,1], [1], [1]])

1[ ]1

0[ ]0
0[ ]0

0[ ]0

0[ ]0

sage: RC(partition_list=[[1], [1,1], [1], [1]], rigging_list=[[0], [0,0], [0], [0]])

1[ ]0

0[ ]0
0[ ]0

0[ ]0

0[ ]0

We can go between tensor products of KR tableaux and tensor products of KR crystals:

sage: RC = RiggedConfigurations(['D', 4, 1], [[1,1], [2,1]])
sage: rc_elt = RC(partition_list=[[1], [1,1], [1], [1]])
sage: tp_krt = rc_elt.to_tensor_product_of_Kirillov_Reshetikhin_tableaux(); tp_krt
[[-2]] (X) [[1], [2]]
sage: tp_krc = rc_elt.to_tensor_product_of_Kirillov_Reshetikhin_crystals(); tp_krc
[[[-2]], [[1], [2]]]
sage: tp_krc == tp_krt.to_tensor_product_of_Kirillov_Reshetikhin_crystals()
True
sage: RC(tp_krc) == rc_elt
True
sage: RC(tp_krt) == rc_elt
True
sage: tp_krt.to_rigged_configuration() == rc_elt
True
cc()

Compute the cocharge statistic.

Computes the cocharge statistic [CrysStructSchilling06] on this rigged configuration (\nu, J). The cocharge statistic is defined as:

cc(\nu, J) = \frac{1}{2} \sum_{a, b \in J}
\sum_{j,k \geq 1} \left( \alpha_a \mid \alpha_b \right)
\min(j, k) m_j^{(a)} m_k^{(b)}
+ \sum_{a, i} \left\lvert J^{(a, i)} \right\rvert.

EXAMPLES:

sage: HWRC = HighestWeightRiggedConfigurations(['A', 3, 1], [[3, 2], [2,1], [1,1]])
sage: HWRC(partition_list=[[1], [1], []]).cc()
1
check()

Make sure all of the riggings are less than or equal to the vacancy number.

TESTS:

sage: RC = RiggedConfigurations(['A', 4, 1], [[2, 1]])
sage: elt = RC(partition_list=[[1], [1], [], []])
sage: elt.check()
e(a)

Action of the crystal operator e_a on this rigged configuration element.

This implements the method defined in [CrysStructSchilling06] which finds the value k which is the length of the string with the smallest negative rigging of smallest length. Then it removes a box from a string of length k in the a-th rigged partition, keeping all colabels fixed and increasing the new label by one. If no such string exists, then e_a is undefined.

INPUT:

  • a – The index of the partition to remove a box.

OUTPUT:

  • The resulting rigged configuration element.

EXAMPLES:

sage: RC = RiggedConfigurations(['A', 4, 1], [[2,1]])
sage: elt = RC(partition_list=[[1], [1], [1], [1]])
sage: elt.e(3)
sage: elt.e(1)

(/)

0[ ]0

0[ ]0

-1[ ]-1
f(a)

Action of crystal operator f_a on this rigged configuration element.

This implements the method defined in [CrysStructSchilling06] which finds the value k which is the length of the string with the smallest nonpositive rigging of largest length. Then it adds a box from a string of length k in the a-th rigged partition, keeping all colabels fixed and decreasing the new label by one. If no such string exists, then it adds a new string of length 1 with label -1. If any of the resulting vacancy numbers are larger than the labels (i.e. it is an invalid rigged configuration), then f_a is undefined.

INPUT:

  • a – The index of the partition to add a box.

OUTPUT:

  • The resulting rigged configuration element.

EXAMPLES:

sage: RC = RiggedConfigurations(['A', 4, 1], [[2,1]])
sage: elt = RC(partition_list=[[1], [1], [1], [1]])
sage: elt.f(1)
sage: elt.f(2)

0[ ]0

-1[ ]-1
-1[ ]-1

1[ ]1

-1[ ]-1
get_vacancy_number(a, i)

Return the vacancy number p_i^{(a)}.

INPUT:

  • a – The index of the rigged partition.
  • i – The row of the rigged partition.

EXAMPLES:

sage: RC = RiggedConfigurations(['A', 4, 1], [[2, 2]])
sage: elt = RC(partition_list=[[1], [2,1], [1], []])
sage: elt.get_vacancy_number(2, 3)
sage: elt.get_vacancy_number(2, 2)
-2
sage: elt.get_vacancy_number(2, 1)
-1
get_vacancy_numbers(a)

Return the list of all vacancy numbers of the rigged partition \nu^{(a)} (with duplicates).

INPUT:

  • a – The index of the rigged partition.

EXAMPLES:

sage: RC = RiggedConfigurations(['A', 4, 1], [[2, 2]])
sage: RC(partition_list=[[1], [2,1], [1], []]).get_vacancy_numbers(2)
[-2, -1]
nu()

Return the list \nu of rigged partitions of this rigged configuration element.

OUTPUT:

  • The \nu array as a list

EXAMPLES:

sage: RC = HighestWeightRiggedConfigurations(['A', 4, 1], [[2, 2]])
sage: RC(partition_list=[[2], [2,2], [2], [2]]).nu()
[0[ ][ ]0
, -2[ ][ ]-2
-2[ ][ ]-2
, 2[ ][ ]2
, -2[ ][ ]-2
]
to_tensor_product_of_Kirillov_Reshetikhin_crystals(display_steps=False)

Return the corresponding tensor product of Kirillov-Reshetikhin crystals.

This is a composition of the map to a tensor product of KR tableaux, and then to a tensor product of KR crystals.

INPUT:

  • display_steps – (default: False) Boolean which indicates if we want to output each step in the algorithm

EXAMPLES:

sage: RC = RiggedConfigurations(['D', 4, 1], [[2, 2]])
sage: elt = RC(partition_list=[[2], [2,2], [1], [1]])
sage: krc = elt.to_tensor_product_of_Kirillov_Reshetikhin_crystals(); krc
[[[2, 3], [3, -2]]]

We can recover the rigged configuration:

sage: ret = RC(krc); ret
 
0[ ][ ]0

-2[ ][ ]-2
-2[ ][ ]-2

0[ ]0

0[ ]0

sage: elt == ret
True
to_tensor_product_of_Kirillov_Reshetikhin_tableaux(display_steps=False, **options)

Perform the bijection from this rigged configuration to a tensor product of Kirillov-Reshetikhin tableaux given in [RigConBijection] for single boxes and with [BijectionLRT] and [BijectionDn] for multiple columns and rows.

INPUT:

  • display_steps – (default: False) Boolean which indicates if we want to output each step in the algorithm

OUTPUT:

  • The tensor product of KR tableaux element corresponding to this rigged configuration.

EXAMPLES:

sage: RC = RiggedConfigurations(['A', 4, 1], [[2, 2]])
sage: RC(partition_list=[[2], [2,2], [2], [2]]).to_tensor_product_of_Kirillov_Reshetikhin_tableaux()
[[3, 3], [5, 5]]
sage: RC = RiggedConfigurations(['D', 4, 1], [[2, 2]])
sage: elt = RC(partition_list=[[2], [2,2], [1], [1]])
sage: tp_krt = elt.to_tensor_product_of_Kirillov_Reshetikhin_tableaux(); tp_krt
[[2, 3], [3, -2]]

This is invertible by calling to_rigged_configuration():

sage: ret = tp_krt.to_rigged_configuration(); ret
 
0[ ][ ]0

-2[ ][ ]-2
-2[ ][ ]-2

0[ ]0

0[ ]0

sage: elt == ret
True

Previous topic

Rigged configurations

Next topic

Tensor product of Kirillov-Reshetikhin tableaux

This Page