Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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)
Beispiel #6
0
    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))
Beispiel #9
0
    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
Beispiel #10
0
    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
Beispiel #11
0
    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
Beispiel #12
0
    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):
        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
Beispiel #15
0
    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)
Beispiel #16
0
    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)