# 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)

The RiggedConfigurationElement class is a list of RiggedPartition objects.

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