Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
r""" Bijection classes for type `E_{6,7}^{(1)}`
Part of the (internal) classes which runs the bijection between rigged configurations and KR tableaux of type `E_{6,7}^{(1)}`.
AUTHORS:
- Travis Scrimshaw (2011-04-15): Initial version
TESTS::
sage: from sage.combinat.rigged_configurations.bij_type_E67 import KRTToRCBijectionTypeE67 sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 6, 1], [[3,1]]) sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0]) sage: TestSuite(bijection).run() sage: RC = RiggedConfigurations(['E', 6, 1], [[2, 1]]) sage: from sage.combinat.rigged_configurations.bij_type_E67 import RCToKRTBijectionTypeE67 sage: bijection = RCToKRTBijectionTypeE67(RC(partition_list=[[1],[1,1],[1,1],[1,1,1], [1,1],[1]])) sage: TestSuite(bijection).run() """
#***************************************************************************** # Copyright (C) 2011, 2012 Travis Scrimshaw <tscrim@ucdavis.edu> # # Distributed under the terms of the GNU General Public License (GPL) # # This code is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # The full text of the GPL is available at: # # http://www.gnu.org/licenses/ #*****************************************************************************
r""" Specific implementation of the bijection from KR tableaux to rigged configurations for type `E_{6,7}^{(1)}`. """ r""" Build the next state for type `E_{6,7}^{(1)}`.
TESTS::
sage: from sage.combinat.rigged_configurations.bij_type_E67 import KRTToRCBijectionTypeE67 sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 6, 1], [[3,1]]) sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0]) sage: bijection.cur_path.insert(0, []) sage: bijection.cur_dims.insert(0, [1, 1]) sage: bijection.cur_path[0].insert(0, [(-3,4)]) sage: bijection.next_state((-3,4)) """
# Do nothing except update the vacancy numbers
for a in b.value if a < 0] break
p = self.ret_rig_con[a-1] for i in range(len(p)-1, -1, -1): if p.rigging[i] is None: assert p[i] == 1 p._list.pop(i) p.vacancy_numbers.pop(i) p.rigging.pop(i) break
""" Return the next index after ``r`` when performing a step in the bijection going towards ``target``.
TESTS::
sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 6, 1], [[5,1]]) sage: from sage.combinat.rigged_configurations.bij_type_E67 import KRTToRCBijectionTypeE67 sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0]) sage: bijection._next_index(3, 5) 2 sage: bijection._next_index(2, 5) 5 sage: bijection._next_index(3, 4) 4 sage: bijection._next_index(1, 5) 3 sage: bijection._next_index(1, 4) 3 sage: bijection._next_index(1, 6) 6 """ # 6 2 - 5 # / / # 0 - 1 - 3 - 4 else: # rank == 7 # 1-2-3 # / # 0-7-6-5-4 if r == 0: return 7 if r == 7: if target <= 3: return 1 return 6 if r <= 3: return r + 1 # r = 6,5 return r - 1
def _top(self): """ Return the highest weight element in the basic crystal used in the bijection ``self``.
TESTS::
sage: from sage.combinat.rigged_configurations.bij_type_E67 import KRTToRCBijectionTypeE67 sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 6, 1], [[3,1]]) sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0]) sage: bijection._top (1,) sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 7, 1], [[6,1]]) sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0]) sage: bijection._top (7,) """ else:
def _endpoint(self, r): r""" Return the endpoint for the bijection in type `E_6^{(1)}`.
EXAMPLES::
sage: from sage.combinat.rigged_configurations.bij_type_E67 import KRTToRCBijectionTypeE67, endpoint6, endpoint7 sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 6, 1], [[3,1]]) sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0]) sage: all(bijection._endpoint(r) == endpoint6(r) for r in range(1,7)) True sage: KRT = crystals.TensorProductOfKirillovReshetikhinTableaux(['E', 7, 1], [[6,1]]) sage: bijection = KRTToRCBijectionTypeE67(KRT.module_generators[0]) sage: all(bijection._endpoint(r) == endpoint7(r) for r in range(1,8)) True """ else:
r""" Specific implementation of the bijection from rigged configurations to tensor products of KR tableaux for type `E_{6,7}^{(1)}`. """ r""" Build the next state for type `E_{6,7}^{(1)}`.
TESTS::
sage: RC = RiggedConfigurations(['E', 6, 1], [[2, 1]]) sage: from sage.combinat.rigged_configurations.bij_type_E67 import RCToKRTBijectionTypeE67 sage: bijection = RCToKRTBijectionTypeE67(RC(partition_list=[[1],[1,1],[1,1],[1,1,1],[1,1],[1]])) sage: bijection.next_state(1) (-2, 1) """ for a in b.value if a > 0] for a,val in data if val is not None]
""" Return the next index after ``r`` when performing a step in the bijection.
TESTS::
sage: RC = RiggedConfigurations(['E', 6, 1], [[2, 1]]) sage: from sage.combinat.rigged_configurations.bij_type_E67 import RCToKRTBijectionTypeE67 sage: bijection = RCToKRTBijectionTypeE67(RC(partition_list=[[1],[1,1],[1,1],[1,1,1], [1,1],[1]])) sage: bijection._next_index(2) 3 """ # 6 2 - 5 # / / # 0 - 1 - 3 - 4 return 3 else: # rank == 7 # 1-2-3 # / # 0-7-6-5-4 return 7 return r - 1 # r = 4,5,6
def _endpoint(self, r): r""" Return the endpoint for the bijection in type `E_{6,7}^{(1)}`.
EXAMPLES::
sage: from sage.combinat.rigged_configurations.bij_type_E67 import RCToKRTBijectionTypeE67, endpoint6, endpoint7 sage: RC = RiggedConfigurations(['E', 6, 1], [[2, 1]]) sage: bijection = RCToKRTBijectionTypeE67(RC(partition_list=[[1],[1,1],[1,1],[1,1,1], [1,1],[1]])) sage: all(bijection._endpoint(r) == endpoint6(r) for r in range(1,7)) True sage: RC = RiggedConfigurations(['E', 7, 1], [[6, 1]]) sage: bijection = RCToKRTBijectionTypeE67(RC(partition_list=[[1],[1,1],[1,1],[1,1],[1],[1],[]])) sage: all(bijection._endpoint(r) == endpoint7(r) for r in range(1,8)) True """ else:
""" Return the endpoint for `B^{r,1}` in type `E_6^{(1)}`.
EXAMPLES::
sage: from sage.combinat.rigged_configurations.bij_type_E67 import endpoint6 sage: endpoint6(1) (1,) sage: endpoint6(2) (-3, 2) sage: endpoint6(3) (-1, 3) sage: endpoint6(4) (-3, 4) sage: endpoint6(5) (-2, 5) sage: endpoint6(6) (-1, 6) """
""" Return the endpoint for `B^{r,1}` in type `E_7^{(1)}`.
EXAMPLES::
sage: from sage.combinat.rigged_configurations.bij_type_E67 import endpoint7 sage: endpoint7(1) (-7, 1) sage: endpoint7(2) (-1, 2) sage: endpoint7(3) (-2, 3) sage: endpoint7(4) (-5, 4) sage: endpoint7(5) (-6, 5) sage: endpoint7(6) (-7, 6) sage: endpoint7(7) (7,) """
|