Rigged Configurations of \(\mathcal{B}(\infty)\)¶
AUTHORS:
- Travis Scrimshaw (2013-04-16): Initial version 
- class sage.combinat.rigged_configurations.rc_infinity.InfinityCrystalOfNonSimplyLacedRC(vct)[source]¶
- Bases: - InfinityCrystalOfRiggedConfigurations- Rigged configurations for \(\mathcal{B}(\infty)\) in non-simply-laced types. - class Element(parent, rigged_partitions=[], **options)[source]¶
- Bases: - RCNonSimplyLacedElement- A rigged configuration in \(\mathcal{B}(\infty)\) in non-simply-laced types. - weight()[source]¶
- Return the weight of - self.- EXAMPLES: - sage: vct = CartanType(['C', 3]).as_folding() sage: RC = crystals.infinity.RiggedConfigurations(vct) sage: elt = RC(partition_list=[[1],[1,1],[1]], rigging_list=[[0],[-1,-1],[0]]) sage: elt.weight() (-1, -1, 0) sage: vct = CartanType(['F', 4, 1]).as_folding() sage: RC = crystals.infinity.RiggedConfigurations(vct) sage: mg = RC.highest_weight_vector() sage: elt = mg.f_string([1,0,3,4,2,2]); ascii_art(elt) -1[ ]-1 0[ ]1 -2[ ][ ]-2 0[ ]1 -1[ ]-1 sage: wt = elt.weight(); wt -Lambda[0] + Lambda[1] - 2*Lambda[2] + 3*Lambda[3] - Lambda[4] - delta sage: al = RC.weight_lattice_realization().simple_roots() sage: wt == -(al[0] + al[1] + 2*al[2] + al[3] + al[4]) True - >>> from sage.all import * >>> vct = CartanType(['C', Integer(3)]).as_folding() >>> RC = crystals.infinity.RiggedConfigurations(vct) >>> elt = RC(partition_list=[[Integer(1)],[Integer(1),Integer(1)],[Integer(1)]], rigging_list=[[Integer(0)],[-Integer(1),-Integer(1)],[Integer(0)]]) >>> elt.weight() (-1, -1, 0) >>> vct = CartanType(['F', Integer(4), Integer(1)]).as_folding() >>> RC = crystals.infinity.RiggedConfigurations(vct) >>> mg = RC.highest_weight_vector() >>> elt = mg.f_string([Integer(1),Integer(0),Integer(3),Integer(4),Integer(2),Integer(2)]); ascii_art(elt) -1[ ]-1 0[ ]1 -2[ ][ ]-2 0[ ]1 -1[ ]-1 >>> wt = elt.weight(); wt -Lambda[0] + Lambda[1] - 2*Lambda[2] + 3*Lambda[3] - Lambda[4] - delta >>> al = RC.weight_lattice_realization().simple_roots() >>> wt == -(al[Integer(0)] + al[Integer(1)] + Integer(2)*al[Integer(2)] + al[Integer(3)] + al[Integer(4)]) True 
 
 - from_virtual(vrc)[source]¶
- Convert - vrcin the virtual crystal into a rigged configuration of the original Cartan type.- INPUT: - vrc– a virtual rigged configuration
 - EXAMPLES: - sage: vct = CartanType(['C', 2]).as_folding() sage: RC = crystals.infinity.RiggedConfigurations(vct) sage: elt = RC(partition_list=[[3],[2]], rigging_list=[[-2],[0]]) sage: vrc_elt = RC.to_virtual(elt) sage: ret = RC.from_virtual(vrc_elt); ret -3[ ][ ][ ]-2 -1[ ][ ]0 sage: ret == elt True - >>> from sage.all import * >>> vct = CartanType(['C', Integer(2)]).as_folding() >>> RC = crystals.infinity.RiggedConfigurations(vct) >>> elt = RC(partition_list=[[Integer(3)],[Integer(2)]], rigging_list=[[-Integer(2)],[Integer(0)]]) >>> vrc_elt = RC.to_virtual(elt) >>> ret = RC.from_virtual(vrc_elt); ret <BLANKLINE> -3[ ][ ][ ]-2 <BLANKLINE> -1[ ][ ]0 <BLANKLINE> >>> ret == elt True 
 - to_virtual(rc)[source]¶
- Convert - rcinto a rigged configuration in the virtual crystal.- INPUT: - rc– a rigged configuration element
 - EXAMPLES: - sage: vct = CartanType(['C', 2]).as_folding() sage: RC = crystals.infinity.RiggedConfigurations(vct) sage: mg = RC.highest_weight_vector() sage: elt = mg.f_string([1,2,2,1,1]); elt -3[ ][ ][ ]-2 -1[ ][ ]0 sage: velt = RC.to_virtual(elt); velt -3[ ][ ][ ]-2 -2[ ][ ][ ][ ]0 -3[ ][ ][ ]-2 sage: velt.parent() The infinity crystal of rigged configurations of type ['A', 3] - >>> from sage.all import * >>> vct = CartanType(['C', Integer(2)]).as_folding() >>> RC = crystals.infinity.RiggedConfigurations(vct) >>> mg = RC.highest_weight_vector() >>> elt = mg.f_string([Integer(1),Integer(2),Integer(2),Integer(1),Integer(1)]); elt <BLANKLINE> -3[ ][ ][ ]-2 <BLANKLINE> -1[ ][ ]0 <BLANKLINE> >>> velt = RC.to_virtual(elt); velt <BLANKLINE> -3[ ][ ][ ]-2 <BLANKLINE> -2[ ][ ][ ][ ]0 <BLANKLINE> -3[ ][ ][ ]-2 <BLANKLINE> >>> velt.parent() The infinity crystal of rigged configurations of type ['A', 3] 
 - virtual()[source]¶
- Return the corresponding virtual crystal. - EXAMPLES: - sage: vct = CartanType(['C', 3]).as_folding() sage: RC = crystals.infinity.RiggedConfigurations(vct) sage: RC The infinity crystal of rigged configurations of type ['C', 3] sage: RC.virtual The infinity crystal of rigged configurations of type ['A', 5] - >>> from sage.all import * >>> vct = CartanType(['C', Integer(3)]).as_folding() >>> RC = crystals.infinity.RiggedConfigurations(vct) >>> RC The infinity crystal of rigged configurations of type ['C', 3] >>> RC.virtual The infinity crystal of rigged configurations of type ['A', 5] 
 
- class sage.combinat.rigged_configurations.rc_infinity.InfinityCrystalOfRiggedConfigurations(cartan_type)[source]¶
- Bases: - UniqueRepresentation,- Parent- Rigged configuration model for \(\mathcal{B}(\infty)\). - The crystal is generated by the empty rigged configuration with the same crystal structure given by the - highest weight modelexcept we remove the condition that the resulting rigged configuration needs to be valid when applying \(f_a\).- INPUT: - cartan_type– a Cartan type
 - EXAMPLES: - For simplicity, we display all of the rigged configurations horizontally: - sage: RiggedConfigurations.options(display='horizontal') - >>> from sage.all import * >>> RiggedConfigurations.options(display='horizontal') - We begin with a simply-laced finite type: - sage: RC = crystals.infinity.RiggedConfigurations(['A', 3]); RC The infinity crystal of rigged configurations of type ['A', 3] sage: RC.options(display='horizontal') sage: mg = RC.highest_weight_vector(); mg (/) (/) (/) sage: elt = mg.f_string([2,1,3,2]); elt 0[ ]0 -2[ ]-1 0[ ]0 -2[ ]-1 sage: elt.e(1) sage: elt.e(3) sage: mg.f_string([2,1,3,2]).e(2) -1[ ]-1 0[ ]1 -1[ ]-1 sage: mg.f_string([2,3,2,1,3,2]) 0[ ]0 -3[ ][ ]-1 -1[ ][ ]-1 -2[ ]-1 - >>> from sage.all import * >>> RC = crystals.infinity.RiggedConfigurations(['A', Integer(3)]); RC The infinity crystal of rigged configurations of type ['A', 3] >>> RC.options(display='horizontal') >>> mg = RC.highest_weight_vector(); mg (/) (/) (/) >>> elt = mg.f_string([Integer(2),Integer(1),Integer(3),Integer(2)]); elt 0[ ]0 -2[ ]-1 0[ ]0 -2[ ]-1 >>> elt.e(Integer(1)) >>> elt.e(Integer(3)) >>> mg.f_string([Integer(2),Integer(1),Integer(3),Integer(2)]).e(Integer(2)) -1[ ]-1 0[ ]1 -1[ ]-1 >>> mg.f_string([Integer(2),Integer(3),Integer(2),Integer(1),Integer(3),Integer(2)]) 0[ ]0 -3[ ][ ]-1 -1[ ][ ]-1 -2[ ]-1 - Next we consider a non-simply-laced finite type: - sage: RC = crystals.infinity.RiggedConfigurations(['C', 3]) sage: mg = RC.highest_weight_vector() sage: mg.f_string([2,1,3,2]) 0[ ]0 -1[ ]0 0[ ]0 -1[ ]-1 sage: mg.f_string([2,3,2,1,3,2]) 0[ ]-1 -1[ ][ ]-1 -1[ ][ ]0 -1[ ]0 - >>> from sage.all import * >>> RC = crystals.infinity.RiggedConfigurations(['C', Integer(3)]) >>> mg = RC.highest_weight_vector() >>> mg.f_string([Integer(2),Integer(1),Integer(3),Integer(2)]) 0[ ]0 -1[ ]0 0[ ]0 -1[ ]-1 >>> mg.f_string([Integer(2),Integer(3),Integer(2),Integer(1),Integer(3),Integer(2)]) 0[ ]-1 -1[ ][ ]-1 -1[ ][ ]0 -1[ ]0 - 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: VRC = crystals.infinity.RiggedConfigurations(vct) sage: mg = VRC.highest_weight_vector() sage: mg.f_string([2,1,3,2]) 0[ ]0 -2[ ]-1 0[ ]0 -2[ ]-1 sage: mg.f_string([2,3,2,1,3,2]) -1[ ]-1 -2[ ][ ][ ]-1 -1[ ][ ]0 sage: G = RC.subcrystal(max_depth=5).digraph() sage: VG = VRC.subcrystal(max_depth=5).digraph() sage: G.is_isomorphic(VG, edge_labels=True) True - >>> from sage.all import * >>> vct = CartanType(['C', Integer(3)]).as_folding() >>> VRC = crystals.infinity.RiggedConfigurations(vct) >>> mg = VRC.highest_weight_vector() >>> mg.f_string([Integer(2),Integer(1),Integer(3),Integer(2)]) 0[ ]0 -2[ ]-1 0[ ]0 -2[ ]-1 >>> mg.f_string([Integer(2),Integer(3),Integer(2),Integer(1),Integer(3),Integer(2)]) -1[ ]-1 -2[ ][ ][ ]-1 -1[ ][ ]0 >>> G = RC.subcrystal(max_depth=Integer(5)).digraph() >>> VG = VRC.subcrystal(max_depth=Integer(5)).digraph() >>> G.is_isomorphic(VG, edge_labels=True) True - We can also construct \(B(\infty)\) using rigged configurations in affine types: - sage: RC = crystals.infinity.RiggedConfigurations(['A', 3, 1]) sage: mg = RC.highest_weight_vector() sage: mg.f_string([0,1,2,3,0,1,3]) -1[ ]0 -1[ ]-1 1[ ]1 -1[ ][ ]-1 -1[ ]0 -1[ ]-1 sage: RC = crystals.infinity.RiggedConfigurations(['C', 3, 1]) sage: mg = RC.highest_weight_vector() sage: mg.f_string([1,2,3,0,1,2,3,3,0]) -2[ ][ ]-1 0[ ]1 0[ ]0 -4[ ][ ][ ]-2 0[ ]0 0[ ]-1 sage: RC = crystals.infinity.RiggedConfigurations(['A', 6, 2]) sage: mg = RC.highest_weight_vector() sage: mg.f_string([1,2,3,0,1,2,3,3,0]) 0[ ]-1 0[ ]1 0[ ]0 -4[ ][ ][ ]-2 0[ ]-1 0[ ]1 0[ ]-1 - >>> from sage.all import * >>> RC = crystals.infinity.RiggedConfigurations(['A', Integer(3), Integer(1)]) >>> mg = RC.highest_weight_vector() >>> mg.f_string([Integer(0),Integer(1),Integer(2),Integer(3),Integer(0),Integer(1),Integer(3)]) -1[ ]0 -1[ ]-1 1[ ]1 -1[ ][ ]-1 -1[ ]0 -1[ ]-1 >>> RC = crystals.infinity.RiggedConfigurations(['C', Integer(3), Integer(1)]) >>> mg = RC.highest_weight_vector() >>> mg.f_string([Integer(1),Integer(2),Integer(3),Integer(0),Integer(1),Integer(2),Integer(3),Integer(3),Integer(0)]) -2[ ][ ]-1 0[ ]1 0[ ]0 -4[ ][ ][ ]-2 0[ ]0 0[ ]-1 >>> RC = crystals.infinity.RiggedConfigurations(['A', Integer(6), Integer(2)]) >>> mg = RC.highest_weight_vector() >>> mg.f_string([Integer(1),Integer(2),Integer(3),Integer(0),Integer(1),Integer(2),Integer(3),Integer(3),Integer(0)]) 0[ ]-1 0[ ]1 0[ ]0 -4[ ][ ][ ]-2 0[ ]-1 0[ ]1 0[ ]-1 - We reset the global options: - sage: RiggedConfigurations.options._reset() - >>> from sage.all import * >>> RiggedConfigurations.options._reset() - class Element(parent, rigged_partitions=[], **options)[source]¶
- Bases: - RiggedConfigurationElement- A rigged configuration in \(\mathcal{B}(\infty)\) in simply-laced types. - weight()[source]¶
- Return the weight of - self.- EXAMPLES: - sage: RC = crystals.infinity.RiggedConfigurations(['A', 3, 1]) sage: elt = RC(partition_list=[[1,1]]*4, rigging_list=[[1,1], [0,0], [0,0], [-1,-1]]) sage: elt.weight() -2*delta - >>> from sage.all import * >>> RC = crystals.infinity.RiggedConfigurations(['A', Integer(3), Integer(1)]) >>> elt = RC(partition_list=[[Integer(1),Integer(1)]]*Integer(4), rigging_list=[[Integer(1),Integer(1)], [Integer(0),Integer(0)], [Integer(0),Integer(0)], [-Integer(1),-Integer(1)]]) >>> elt.weight() -2*delta 
 
 - 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: RC = crystals.infinity.RiggedConfigurations(['A', 2, 1]) sage: RC.weight_lattice_realization() Extended weight lattice of the Root system of type ['A', 2, 1] - >>> from sage.all import * >>> RC = crystals.infinity.RiggedConfigurations(['A', Integer(2), Integer(1)]) >>> RC.weight_lattice_realization() Extended weight lattice of the Root system of type ['A', 2, 1]