def e(self, i): r""" Calculate the action of `e_i` on ``self``. EXAMPLES:: sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 4, 1) sage: KRT([-1, -4, 3, 2]).e(1) [[1], [3], [-4], [-2]] sage: KRT([-1, -4, 3, 2]).e(3) """ half = TensorProductOfCrystalsElement.e(self, i) if half is None: return None return TensorProductOfCrystalsElement.e(half, i)
def __init__(self, parent, list, **options): r""" Initialize ``self``. EXAMPLES:: sage: KRT = KirillovReshetikhinTableaux(['A', 4, 1], 2, 1) sage: elt = KRT([4, 3]); elt [[3], [4]] sage: TestSuite(elt).run() """ # Make sure we are a list of letters if list != [] and type(list[0]) is not CrystalOfLetters: list = [parent.letters(x) for x in list] TensorProductOfCrystalsElement.__init__(self, parent, list)
def f(self, i): r""" Calculate the action of `f_i` on ``self``. EXAMPLES:: sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 4, 1) sage: KRT([-1, -4, 3, 2]).f(1) sage: KRT([-1, -4, 3, 2]).f(3) [[2], [4], [-3], [-1]] """ half = TensorProductOfCrystalsElement.f(self, i) if half is None: return None return TensorProductOfCrystalsElement.f(half, i)
def __init__(self, parent, *path, **options): r""" Construct a TensorProductOfKirillovReshetikhinTableauxElement. INPUT: - ``parent`` -- Parent for this element - ``path`` -- The list of KR tableaux elements EXAMPLES:: sage: KRT = TensorProductOfKirillovReshetikhinTableaux(['A', 3, 1], [[1, 1], [2, 1], [1, 1], [2, 1], [2, 1], [2, 1]]) sage: T = KRT(pathlist=[[2], [4, 1], [3], [4, 2], [3, 1], [2, 1]]) sage: T [[2]] (X) [[1], [4]] (X) [[3]] (X) [[2], [4]] (X) [[1], [3]] (X) [[1], [2]] sage: KRT = TensorProductOfKirillovReshetikhinTableaux(['A', 3, 1], [[3,3], [2,1]]) sage: T = KRT(pathlist=[[3, 2, 1, 4, 2, 1, 4, 3, 1], [2, 1]]) sage: T [[1, 1, 1], [2, 2, 3], [3, 4, 4]] (X) [[1], [2]] sage: KRT = TensorProductOfKirillovReshetikhinTableaux(['D', 4, 1], [[2, 1], [1, 1], [1, 1], [1, 1]]) sage: T = KRT(pathlist=[[3,2], [1], [-1], [1]]) sage: T [[2], [3]] (X) [[1]] (X) [[-1]] (X) [[1]] sage: TestSuite(T).run() """ if "pathlist" in options: pathlist = options["pathlist"] TensorProductOfCrystalsElement.__init__(self, parent, [ parent.crystals[i](list(tab)) for i, tab in enumerate(pathlist) ]) elif "list" in options: TensorProductOfCrystalsElement.__init__(self, parent, **options) else: TensorProductOfCrystalsElement.__init__(self, parent, list(path))
def __init__(self, parent, *path, **options): r""" Construct a TensorProductOfKirillovReshetikhinTableauxElement. INPUT: - ``parent`` -- Parent for this element - ``path`` -- The list of KR tableaux elements EXAMPLES:: sage: KRT = TensorProductOfKirillovReshetikhinTableaux(['A', 3, 1], [[1, 1], [2, 1], [1, 1], [2, 1], [2, 1], [2, 1]]) sage: T = KRT(pathlist=[[2], [4, 1], [3], [4, 2], [3, 1], [2, 1]]) sage: T [[2]] (X) [[1], [4]] (X) [[3]] (X) [[2], [4]] (X) [[1], [3]] (X) [[1], [2]] sage: KRT = TensorProductOfKirillovReshetikhinTableaux(['A', 3, 1], [[3,3], [2,1]]) sage: T = KRT(pathlist=[[3, 2, 1, 4, 2, 1, 4, 3, 1], [2, 1]]) sage: T [[1, 1, 1], [2, 2, 3], [3, 4, 4]] (X) [[1], [2]] sage: KRT = TensorProductOfKirillovReshetikhinTableaux(['D', 4, 1], [[2, 1], [1, 1], [1, 1], [1, 1]]) sage: T = KRT(pathlist=[[3,2], [1], [-1], [1]]) sage: T [[2], [3]] (X) [[1]] (X) [[-1]] (X) [[1]] sage: TestSuite(T).run() """ if "pathlist" in options: pathlist = options["pathlist"] TensorProductOfCrystalsElement.__init__(self, parent, [parent.crystals[i](list(tab)) for i, tab in enumerate(pathlist)]) elif "list" in options: TensorProductOfCrystalsElement.__init__(self, parent, **options) else: TensorProductOfCrystalsElement.__init__(self, parent, list(path))
def phi(self, i): r""" Compute `\phi_i` of ``self``. EXAMPLES:: sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 4, 1) sage: KRT([-1, -4, 3, 2]).phi(1) 0 sage: KRT([-1, -4, 3, 2]).phi(3) 1 """ return TensorProductOfCrystalsElement.phi(self, i) / 2
def epsilon(self, i): r""" Compute `\epsilon_i` of ``self``. EXAMPLES:: sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 4, 1) sage: KRT([-1, -4, 3, 2]).epsilon(1) 1 sage: KRT([-1, -4, 3, 2]).epsilon(3) 0 """ return TensorProductOfCrystalsElement.epsilon(self, i) / 2
def f(self, i): r""" Return the action of `f_i` on ``self``. EXAMPLES:: sage: KRT = TensorProductOfKirillovReshetikhinTableaux(['D', 4, 1], [[2,1]]) sage: T = KRT(pathlist=[[4,3]]) sage: T.f(1) sage: T.f(4) [[-4], [4]] """ if i != 0: return TensorProductOfCrystalsElement.f(self, i) return None
def f(self, i): """ Perform the action of `f_i` on ``self``. .. TODO:: Implement a direct action of `f_0` without moving to KR crystals. EXAMPLES:: sage: KRT = KirillovReshetikhinTableaux(['D',4,1], 2,2) sage: KRT.module_generators[0].f(0) [[1, 1], [2, -1]] """ if i == 0: ret = self.to_Kirillov_Reshetikhin_crystal().f0() if ret is None: return None return ret.to_Kirillov_Reshetikhin_tableau() return TensorProductOfCrystalsElement.f(self, i)