Crystal of Rigged Configurations#
AUTHORS:
Travis Scrimshaw (2010-09-26): Initial version
We only consider the highest weight crystal structure, not the Kirillov-Reshetikhin structure, and we extend this to symmetrizable types.
- class sage.combinat.rigged_configurations.rc_crystal.CrystalOfNonSimplyLacedRC(vct, wt, WLR)[source]#
Bases:
CrystalOfRiggedConfigurations
Highest weight crystal of rigged configurations in non-simply-laced type.
- Element[source]#
alias of
RCHWNonSimplyLacedElement
- from_virtual(vrc)[source]#
Convert
vrc
in the virtual crystal into a rigged configuration of the original Cartan type.INPUT:
vrc
– a virtual rigged configuration
EXAMPLES:
sage: La = RootSystem(['C', 3]).weight_lattice().fundamental_weights() sage: vct = CartanType(['C', 3]).as_folding() sage: RC = crystals.RiggedConfigurations(vct, La[2]) sage: elt = RC(partition_list=[[0], [1], [1]]) sage: elt == RC.from_virtual(RC.to_virtual(elt)) True
>>> from sage.all import * >>> La = RootSystem(['C', Integer(3)]).weight_lattice().fundamental_weights() >>> vct = CartanType(['C', Integer(3)]).as_folding() >>> RC = crystals.RiggedConfigurations(vct, La[Integer(2)]) >>> elt = RC(partition_list=[[Integer(0)], [Integer(1)], [Integer(1)]]) >>> elt == RC.from_virtual(RC.to_virtual(elt)) True
- to_virtual(rc)[source]#
Convert
rc
into a rigged configuration in the virtual crystal.INPUT:
rc
– a rigged configuration element
EXAMPLES:
sage: La = RootSystem(['C', 3]).weight_lattice().fundamental_weights() sage: vct = CartanType(['C', 3]).as_folding() sage: RC = crystals.RiggedConfigurations(vct, La[2]) sage: elt = RC(partition_list=[[], [1], [1]]); elt (/) 0[ ]0 -1[ ]-1 sage: RC.to_virtual(elt) (/) 0[ ]0 -2[ ][ ]-2 0[ ]0 (/)
>>> from sage.all import * >>> La = RootSystem(['C', Integer(3)]).weight_lattice().fundamental_weights() >>> vct = CartanType(['C', Integer(3)]).as_folding() >>> RC = crystals.RiggedConfigurations(vct, La[Integer(2)]) >>> elt = RC(partition_list=[[], [Integer(1)], [Integer(1)]]); elt <BLANKLINE> (/) <BLANKLINE> 0[ ]0 <BLANKLINE> -1[ ]-1 <BLANKLINE> >>> RC.to_virtual(elt) <BLANKLINE> (/) <BLANKLINE> 0[ ]0 <BLANKLINE> -2[ ][ ]-2 <BLANKLINE> 0[ ]0 <BLANKLINE> (/) <BLANKLINE>
- virtual()[source]#
Return the corresponding virtual crystal.
EXAMPLES:
sage: La = RootSystem(['C', 2, 1]).weight_lattice().fundamental_weights() sage: vct = CartanType(['C', 2, 1]).as_folding() sage: RC = crystals.RiggedConfigurations(vct, La[0]) sage: RC Crystal of rigged configurations of type ['C', 2, 1] and weight Lambda[0] sage: RC.virtual Crystal of rigged configurations of type ['A', 3, 1] and weight 2*Lambda[0]
>>> from sage.all import * >>> La = RootSystem(['C', Integer(2), Integer(1)]).weight_lattice().fundamental_weights() >>> vct = CartanType(['C', Integer(2), Integer(1)]).as_folding() >>> RC = crystals.RiggedConfigurations(vct, La[Integer(0)]) >>> RC Crystal of rigged configurations of type ['C', 2, 1] and weight Lambda[0] >>> RC.virtual Crystal of rigged configurations of type ['A', 3, 1] and weight 2*Lambda[0]
- class sage.combinat.rigged_configurations.rc_crystal.CrystalOfRiggedConfigurations(wt, WLR)[source]#
Bases:
UniqueRepresentation
,Parent
A highest weight crystal of rigged configurations.
The crystal structure for finite simply-laced types is given in [CrysStructSchilling06]. These were then shown to be the crystal operators in all finite types in [SS2015], all simply-laced and a large class of foldings of simply-laced types in [SS2015II], and all symmetrizable types (uniformly) in [SS2017].
INPUT:
cartan_type
– (optional) a Cartan type or a Cartan type given as a foldingwt
– the highest weight vector in the weight lattice
EXAMPLES:
For simplicity, we display the rigged configurations horizontally:
sage: RiggedConfigurations.options.display='horizontal'
>>> from sage.all import * >>> RiggedConfigurations.options.display='horizontal'
We start with a simply-laced finite type:
sage: La = RootSystem(['A', 2]).weight_lattice().fundamental_weights() sage: RC = crystals.RiggedConfigurations(La[1] + La[2]) sage: mg = RC.highest_weight_vector() sage: mg.f_string([1,2]) 0[ ]0 0[ ]-1 sage: mg.f_string([1,2,2]) 0[ ]0 -2[ ][ ]-2 sage: mg.f_string([1,2,2,2]) sage: mg.f_string([2,1,1,2]) -1[ ][ ]-1 -1[ ][ ]-1 sage: RC.cardinality() 8 sage: T = crystals.Tableaux(['A', 2], shape=[2,1]) sage: RC.digraph().is_isomorphic(T.digraph(), edge_labels=True) True
>>> from sage.all import * >>> La = RootSystem(['A', Integer(2)]).weight_lattice().fundamental_weights() >>> RC = crystals.RiggedConfigurations(La[Integer(1)] + La[Integer(2)]) >>> mg = RC.highest_weight_vector() >>> mg.f_string([Integer(1),Integer(2)]) 0[ ]0 0[ ]-1 >>> mg.f_string([Integer(1),Integer(2),Integer(2)]) 0[ ]0 -2[ ][ ]-2 >>> mg.f_string([Integer(1),Integer(2),Integer(2),Integer(2)]) >>> mg.f_string([Integer(2),Integer(1),Integer(1),Integer(2)]) -1[ ][ ]-1 -1[ ][ ]-1 >>> RC.cardinality() 8 >>> T = crystals.Tableaux(['A', Integer(2)], shape=[Integer(2),Integer(1)]) >>> RC.digraph().is_isomorphic(T.digraph(), edge_labels=True) True
We construct a non-simply-laced affine type:
sage: La = RootSystem(['C', 3]).weight_lattice().fundamental_weights() sage: RC = crystals.RiggedConfigurations(La[2]) sage: mg = RC.highest_weight_vector() sage: mg.f_string([2,3]) (/) 1[ ]1 -1[ ]-1 sage: T = crystals.Tableaux(['C', 3], shape=[1,1]) sage: RC.digraph().is_isomorphic(T.digraph(), edge_labels=True) True
>>> from sage.all import * >>> La = RootSystem(['C', Integer(3)]).weight_lattice().fundamental_weights() >>> RC = crystals.RiggedConfigurations(La[Integer(2)]) >>> mg = RC.highest_weight_vector() >>> mg.f_string([Integer(2),Integer(3)]) (/) 1[ ]1 -1[ ]-1 >>> T = crystals.Tableaux(['C', Integer(3)], shape=[Integer(1),Integer(1)]) >>> RC.digraph().is_isomorphic(T.digraph(), edge_labels=True) True
We can construct rigged configurations using a diagram folding of a simply-laced type. This yields an equivalent but distinct crystal:
sage: vct = CartanType(['C', 3]).as_folding() sage: RC = crystals.RiggedConfigurations(vct, La[2]) sage: mg = RC.highest_weight_vector() sage: mg.f_string([2,3]) (/) 0[ ]0 -1[ ]-1 sage: T = crystals.Tableaux(['C', 3], shape=[1,1]) sage: RC.digraph().is_isomorphic(T.digraph(), edge_labels=True) True
>>> from sage.all import * >>> vct = CartanType(['C', Integer(3)]).as_folding() >>> RC = crystals.RiggedConfigurations(vct, La[Integer(2)]) >>> mg = RC.highest_weight_vector() >>> mg.f_string([Integer(2),Integer(3)]) (/) 0[ ]0 -1[ ]-1 >>> T = crystals.Tableaux(['C', Integer(3)], shape=[Integer(1),Integer(1)]) >>> RC.digraph().is_isomorphic(T.digraph(), edge_labels=True) True
We reset the global options:
sage: RiggedConfigurations.options._reset()
>>> from sage.all import * >>> RiggedConfigurations.options._reset()
REFERENCES:
- Element[source]#
alias of
RCHighestWeightElement
- options = Current options for RiggedConfigurations - convention: English - display: vertical - element_ascii_art: True - half_width_boxes_type_B: True[source]#
- weight_lattice_realization()[source]#
Return the weight lattice realization used to express the weights of elements in
self
.EXAMPLES:
sage: La = RootSystem(['A', 2, 1]).weight_lattice(extended=True).fundamental_weights() sage: RC = crystals.RiggedConfigurations(La[0]) sage: RC.weight_lattice_realization() Extended weight lattice of the Root system of type ['A', 2, 1]
>>> from sage.all import * >>> La = RootSystem(['A', Integer(2), Integer(1)]).weight_lattice(extended=True).fundamental_weights() >>> RC = crystals.RiggedConfigurations(La[Integer(0)]) >>> RC.weight_lattice_realization() Extended weight lattice of the Root system of type ['A', 2, 1]