Quantum Group Representations - Category Framework

Skip to content
Back to top
View this page
Edit this page

# Quantum Group Representations

AUTHORS:

- Travis Scrimshaw (2018): initial version

class sage.categories.quantum_group_representations.QuantumGroupRepresentations(base, name=None)

  Bases: `Category_module`

  The category of quantum group representations.

  class ParentMethods

    Bases: `object`

    cartan_type()

      Return the Cartan type of `self`.

      EXAMPLES:

      Sage

          sage: # needs sage.combinat sage.graphs sage.modules
          sage: from sage.algebras.quantum_groups.representations import MinusculeRepresentation
          sage: C = crystals.Tableaux(['C',4], shape=[1])
          sage: R = ZZ['q'].fraction_field()
          sage: V = MinusculeRepresentation(R, C)
          sage: V.cartan_type()
          ['C', 4]

      Python

          >>> from sage.all import *
          >>> # needs sage.combinat sage.graphs sage.modules
          >>> from sage.algebras.quantum_groups.representations import MinusculeRepresentation
          >>> C = crystals.Tableaux(['C',Integer(4)], shape=[Integer(1)])
          >>> R = ZZ['q'].fraction_field()
          >>> V = MinusculeRepresentation(R, C)
          >>> V.cartan_type()
          ['C', 4]

    index_set()

      Return the index set of `self`.

      EXAMPLES:

      Sage

          sage: # needs sage.combinat sage.graphs sage.modules
          sage: from sage.algebras.quantum_groups.representations import MinusculeRepresentation
          sage: C = crystals.Tableaux(['C',4], shape=[1])
          sage: R = ZZ['q'].fraction_field()
          sage: V = MinusculeRepresentation(R, C)
          sage: V.index_set()
          (1, 2, 3, 4)

      Python

          >>> from sage.all import *
          >>> # needs sage.combinat sage.graphs sage.modules
          >>> from sage.algebras.quantum_groups.representations import MinusculeRepresentation
          >>> C = crystals.Tableaux(['C',Integer(4)], shape=[Integer(1)])
          >>> R = ZZ['q'].fraction_field()
          >>> V = MinusculeRepresentation(R, C)
          >>> V.index_set()
          (1, 2, 3, 4)

    q()

      Return the quantum parameter \(q\) of `self`.

      EXAMPLES:

      Sage

          sage: # needs sage.combinat sage.graphs sage.modules
          sage: from sage.algebras.quantum_groups.representations import MinusculeRepresentation
          sage: C = crystals.Tableaux(['C',4], shape=[1])
          sage: R = ZZ['q'].fraction_field()
          sage: V = MinusculeRepresentation(R, C)
          sage: V.q()
          q

      Python

          >>> from sage.all import *
          >>> # needs sage.combinat sage.graphs sage.modules
          >>> from sage.algebras.quantum_groups.representations import MinusculeRepresentation
          >>> C = crystals.Tableaux(['C',Integer(4)], shape=[Integer(1)])
          >>> R = ZZ['q'].fraction_field()
          >>> V = MinusculeRepresentation(R, C)
          >>> V.q()
          q

  class TensorProducts(category, *args)

    Bases: `TensorProductsCategory`

    The category of quantum group representations constructed by tensor product of quantum group representations.

    Warning

    We use the reversed coproduct in order to match the tensor product rule on crystals.

    class ParentMethods

      Bases: `object`

      cartan_type()

        Return the Cartan type of `self`.

        EXAMPLES:

        Sage

            sage: # needs sage.combinat sage.graphs sage.modules
            sage: from sage.algebras.quantum_groups.representations import MinusculeRepresentation
            sage: C = crystals.Tableaux(['C',2], shape=[1])
            sage: R = ZZ['q'].fraction_field()
            sage: V = MinusculeRepresentation(R, C)
            sage: T = tensor([V,V])
            sage: T.cartan_type()
            ['C', 2]

        Python

            >>> from sage.all import *
            >>> # needs sage.combinat sage.graphs sage.modules
            >>> from sage.algebras.quantum_groups.representations import MinusculeRepresentation
            >>> C = crystals.Tableaux(['C',Integer(2)], shape=[Integer(1)])
            >>> R = ZZ['q'].fraction_field()
            >>> V = MinusculeRepresentation(R, C)
            >>> T = tensor([V,V])
            >>> T.cartan_type()
            ['C', 2]

    extra_super_categories()

      EXAMPLES:

      Sage

          sage: from sage.categories.quantum_group_representations import QuantumGroupRepresentations
          sage: Cat = QuantumGroupRepresentations(ZZ['q'].fraction_field())
          sage: Cat.TensorProducts().extra_super_categories()
          [Category of quantum group representations over
           Fraction Field of Univariate Polynomial Ring in q over Integer Ring]

      Python

          >>> from sage.all import *
          >>> from sage.categories.quantum_group_representations import QuantumGroupRepresentations
          >>> Cat = QuantumGroupRepresentations(ZZ['q'].fraction_field())
          >>> Cat.TensorProducts().extra_super_categories()
          [Category of quantum group representations over
           Fraction Field of Univariate Polynomial Ring in q over Integer Ring]

  class WithBasis(base_category)

    Bases: `CategoryWithAxiom_over_base_ring`

    The category of quantum group representations with a distinguished basis.

    class ElementMethods

      Bases: `object`

      K(i, power=1)

        Return the action of \(K_i\) on `self` to the power `power`.

        INPUT:

        - `i` – an element of the index set

        - `power` – (default: 1) the power of \(K_i\)

        EXAMPLES:

        Sage

            sage: # needs sage.combinat sage.graphs sage.modules
            sage: from sage.algebras.quantum_groups.representations import AdjointRepresentation
            sage: K = crystals.KirillovReshetikhin(['D',4,2], 1,1)
            sage: R = ZZ['q'].fraction_field()
            sage: V = AdjointRepresentation(R, K)
            sage: v = V.an_element(); v
            2*B[[]] + 2*B[[[1]]] + 3*B[[[2]]]
            sage: v.K(0)
            2*B[[]] + 2/q^2*B[[[1]]] + 3*B[[[2]]]
            sage: v.K(1)
            2*B[[]] + 2*q^2*B[[[1]]] + 3/q^2*B[[[2]]]
            sage: v.K(1, 2)
            2*B[[]] + 2*q^4*B[[[1]]] + 3/q^4*B[[[2]]]
            sage: v.K(1, -1)
            2*B[[]] + 2/q^2*B[[[1]]] + 3*q^2*B[[[2]]]

        Python

            >>> from sage.all import *
            >>> # needs sage.combinat sage.graphs sage.modules
            >>> from sage.algebras.quantum_groups.representations import AdjointRepresentation
            >>> K = crystals.KirillovReshetikhin(['D',Integer(4),Integer(2)], Integer(1),Integer(1))
            >>> R = ZZ['q'].fraction_field()
            >>> V = AdjointRepresentation(R, K)
            >>> v = V.an_element(); v
            2*B[[]] + 2*B[[[1]]] + 3*B[[[2]]]
            >>> v.K(Integer(0))
            2*B[[]] + 2/q^2*B[[[1]]] + 3*B[[[2]]]
            >>> v.K(Integer(1))
            2*B[[]] + 2*q^2*B[[[1]]] + 3/q^2*B[[[2]]]
            >>> v.K(Integer(1), Integer(2))
            2*B[[]] + 2*q^4*B[[[1]]] + 3/q^4*B[[[2]]]
            >>> v.K(Integer(1), -Integer(1))
            2*B[[]] + 2/q^2*B[[[1]]] + 3*q^2*B[[[2]]]

      e(i)

        Return the action of \(e_i\) on `self`.

        INPUT:

        - `i` – an element of the index set

        EXAMPLES:

        Sage

            sage: # needs sage.combinat sage.graphs sage.modules
            sage: from sage.algebras.quantum_groups.representations import AdjointRepresentation
            sage: C = crystals.Tableaux(['G',2], shape=[1,1])
            sage: R = ZZ['q'].fraction_field()
            sage: V = AdjointRepresentation(R, C)
            sage: v = V.an_element(); v
            2*B[[[1], [2]]] + 2*B[[[1], [3]]] + 3*B[[[2], [3]]]
            sage: v.e(1)
            ((3*q^4+3*q^2+3)/q^2)*B[[[1], [3]]]
            sage: v.e(2)
            2*B[[[1], [2]]]

        Python

            >>> from sage.all import *
            >>> # needs sage.combinat sage.graphs sage.modules
            >>> from sage.algebras.quantum_groups.representations import AdjointRepresentation
            >>> C = crystals.Tableaux(['G',Integer(2)], shape=[Integer(1),Integer(1)])
            >>> R = ZZ['q'].fraction_field()
            >>> V = AdjointRepresentation(R, C)
            >>> v = V.an_element(); v
            2*B[[[1], [2]]] + 2*B[[[1], [3]]] + 3*B[[[2], [3]]]
            >>> v.e(Integer(1))
            ((3*q^4+3*q^2+3)/q^2)*B[[[1], [3]]]
            >>> v.e(Integer(2))
            2*B[[[1], [2]]]

      f(i)

        Return the action of \(f_i\) on `self`.

        INPUT:

        - `i` – an element of the index set

        EXAMPLES:

        Sage

            sage: # needs sage.combinat sage.graphs sage.modules
            sage: from sage.algebras.quantum_groups.representations import AdjointRepresentation
            sage: K = crystals.KirillovReshetikhin(['D',4,1], 2,1)
            sage: R = ZZ['q'].fraction_field()
            sage: V = AdjointRepresentation(R, K)
            sage: v = V.an_element(); v
            2*B[[]] + 2*B[[[1], [2]]] + 3*B[[[1], [3]]]
            sage: v.f(0)
            ((2*q^2+2)/q)*B[[[1], [2]]]
            sage: v.f(1)
            3*B[[[2], [3]]]
            sage: v.f(2)
            2*B[[[1], [3]]]
            sage: v.f(3)
            3*B[[[1], [4]]]
            sage: v.f(4)
            3*B[[[1], [-4]]]

        Python

            >>> from sage.all import *
            >>> # needs sage.combinat sage.graphs sage.modules
            >>> from sage.algebras.quantum_groups.representations import AdjointRepresentation
            >>> K = crystals.KirillovReshetikhin(['D',Integer(4),Integer(1)], Integer(2),Integer(1))
            >>> R = ZZ['q'].fraction_field()
            >>> V = AdjointRepresentation(R, K)
            >>> v = V.an_element(); v
            2*B[[]] + 2*B[[[1], [2]]] + 3*B[[[1], [3]]]
            >>> v.f(Integer(0))
            ((2*q^2+2)/q)*B[[[1], [2]]]
            >>> v.f(Integer(1))
            3*B[[[2], [3]]]
            >>> v.f(Integer(2))
            2*B[[[1], [3]]]
            >>> v.f(Integer(3))
            3*B[[[1], [4]]]
            >>> v.f(Integer(4))
            3*B[[[1], [-4]]]

    class ParentMethods

      Bases: `object`

      tensor(*factors)

        Return the tensor product of `self` with the representations `factors`.

        EXAMPLES:

        Sage

            sage: # needs sage.combinat sage.graphs sage.modules
            sage: from sage.algebras.quantum_groups.representations import (
            ....:     MinusculeRepresentation, AdjointRepresentation)
            sage: R = ZZ['q'].fraction_field()
            sage: CM = crystals.Tableaux(['D',4], shape=[1])
            sage: CA = crystals.Tableaux(['D',4], shape=[1,1])
            sage: V = MinusculeRepresentation(R, CM)
            sage: V.tensor(V, V)
            V((1, 0, 0, 0)) # V((1, 0, 0, 0)) # V((1, 0, 0, 0))
            sage: A = MinusculeRepresentation(R, CA)
            sage: V.tensor(A)
            V((1, 0, 0, 0)) # V((1, 1, 0, 0))
            sage: B = crystals.Tableaux(['A',2], shape=[1])
            sage: W = MinusculeRepresentation(R, B)
            sage: tensor([W,V])
            Traceback (most recent call last):
            ...
            ValueError: all factors must be of the same Cartan type
            sage: tensor([V,A,W])
            Traceback (most recent call last):
            ...
            ValueError: all factors must be of the same Cartan type

        Python

            >>> from sage.all import *
            >>> # needs sage.combinat sage.graphs sage.modules
            >>> from sage.algebras.quantum_groups.representations import (
            ...     MinusculeRepresentation, AdjointRepresentation)
            >>> R = ZZ['q'].fraction_field()
            >>> CM = crystals.Tableaux(['D',Integer(4)], shape=[Integer(1)])
            >>> CA = crystals.Tableaux(['D',Integer(4)], shape=[Integer(1),Integer(1)])
            >>> V = MinusculeRepresentation(R, CM)
            >>> V.tensor(V, V)
            V((1, 0, 0, 0)) # V((1, 0, 0, 0)) # V((1, 0, 0, 0))
            >>> A = MinusculeRepresentation(R, CA)
            >>> V.tensor(A)
            V((1, 0, 0, 0)) # V((1, 1, 0, 0))
            >>> B = crystals.Tableaux(['A',Integer(2)], shape=[Integer(1)])
            >>> W = MinusculeRepresentation(R, B)
            >>> tensor([W,V])
            Traceback (most recent call last):
            ...
            ValueError: all factors must be of the same Cartan type
            >>> tensor([V,A,W])
            Traceback (most recent call last):
            ...
            ValueError: all factors must be of the same Cartan type

    class TensorProducts(category, *args)

      Bases: `TensorProductsCategory`

      The category of quantum group representations with a distinguished basis constructed by tensor product of quantum group representations with a distinguished basis.

      class ParentMethods

        Bases: `object`

        K_on_basis(i, b, power=1)

          Return the action of \(K_i\) on the basis element indexed by `b` to the power `power`.

          INPUT:

          - `i` – an element of the index set

          - `b` – an element of basis keys

          - `power` – (default: 1) the power of \(K_i\)

          EXAMPLES:

          Sage

              sage: # needs sage.combinat sage.graphs sage.modules
              sage: from sage.algebras.quantum_groups.representations import (
              ....:     MinusculeRepresentation, AdjointRepresentation)
              sage: R = ZZ['q'].fraction_field()
              sage: CM = crystals.Tableaux(['A',2], shape=[1])
              sage: VM = MinusculeRepresentation(R, CM)
              sage: CA = crystals.Tableaux(['A',2], shape=[2,1])
              sage: VA = AdjointRepresentation(R, CA)
              sage: v = tensor([sum(VM.basis()), VA.module_generator()]); v
              B[[[1]]] # B[[[1, 1], [2]]]
               + B[[[2]]] # B[[[1, 1], [2]]]
               + B[[[3]]] # B[[[1, 1], [2]]]
              sage: v.K(1)  # indirect doctest
              q^2*B[[[1]]] # B[[[1, 1], [2]]]
               + B[[[2]]] # B[[[1, 1], [2]]]
               + q*B[[[3]]] # B[[[1, 1], [2]]]
              sage: v.K(2, -1)  # indirect doctest
              1/q*B[[[1]]] # B[[[1, 1], [2]]]
               + 1/q^2*B[[[2]]] # B[[[1, 1], [2]]]
               + B[[[3]]] # B[[[1, 1], [2]]]

          Python

              >>> from sage.all import *
              >>> # needs sage.combinat sage.graphs sage.modules
              >>> from sage.algebras.quantum_groups.representations import (
              ...     MinusculeRepresentation, AdjointRepresentation)
              >>> R = ZZ['q'].fraction_field()
              >>> CM = crystals.Tableaux(['A',Integer(2)], shape=[Integer(1)])
              >>> VM = MinusculeRepresentation(R, CM)
              >>> CA = crystals.Tableaux(['A',Integer(2)], shape=[Integer(2),Integer(1)])
              >>> VA = AdjointRepresentation(R, CA)
              >>> v = tensor([sum(VM.basis()), VA.module_generator()]); v
              B[[[1]]] # B[[[1, 1], [2]]]
               + B[[[2]]] # B[[[1, 1], [2]]]
               + B[[[3]]] # B[[[1, 1], [2]]]
              >>> v.K(Integer(1))  # indirect doctest
              q^2*B[[[1]]] # B[[[1, 1], [2]]]
               + B[[[2]]] # B[[[1, 1], [2]]]
               + q*B[[[3]]] # B[[[1, 1], [2]]]
              >>> v.K(Integer(2), -Integer(1))  # indirect doctest
              1/q*B[[[1]]] # B[[[1, 1], [2]]]
               + 1/q^2*B[[[2]]] # B[[[1, 1], [2]]]
               + B[[[3]]] # B[[[1, 1], [2]]]

        e_on_basis(i, b)

          Return the action of \(e_i\) on the basis element indexed by `b`.

          INPUT:

          - `i` – an element of the index set

          - `b` – an element of basis keys

          EXAMPLES:

          Sage

              sage: # needs sage.combinat sage.graphs sage.modules
              sage: from sage.algebras.quantum_groups.representations import (
              ....:     MinusculeRepresentation, AdjointRepresentation)
              sage: R = ZZ['q'].fraction_field()
              sage: CM = crystals.Tableaux(['D',4], shape=[1])
              sage: VM = MinusculeRepresentation(R, CM)
              sage: CA = crystals.Tableaux(['D',4], shape=[1,1])
              sage: VA = AdjointRepresentation(R, CA)
              sage: v = tensor([VM.an_element(), VA.an_element()]); v
              4*B[[[1]]] # B[[[1], [2]]] + 4*B[[[1]]] # B[[[1], [3]]]
               + 6*B[[[1]]] # B[[[2], [3]]] + 4*B[[[2]]] # B[[[1], [2]]]
               + 4*B[[[2]]] # B[[[1], [3]]] + 6*B[[[2]]] # B[[[2], [3]]]
               + 6*B[[[3]]] # B[[[1], [2]]] + 6*B[[[3]]] # B[[[1], [3]]]
               + 9*B[[[3]]] # B[[[2], [3]]]
              sage: v.e(1)  # indirect doctest
              4*B[[[1]]] # B[[[1], [2]]]
               + ((4*q+6)/q)*B[[[1]]] # B[[[1], [3]]]
               + 6*B[[[1]]] # B[[[2], [3]]]
               + 6*q*B[[[2]]] # B[[[1], [3]]]
               + 9*B[[[3]]] # B[[[1], [3]]]
              sage: v.e(2)  # indirect doctest
              4*B[[[1]]] # B[[[1], [2]]]
               + ((6*q+4)/q)*B[[[2]]] # B[[[1], [2]]]
               + 6*B[[[2]]] # B[[[1], [3]]]
               + 9*B[[[2]]] # B[[[2], [3]]]
               + 6*q*B[[[3]]] # B[[[1], [2]]]
              sage: v.e(3)  # indirect doctest
              0
              sage: v.e(4)  # indirect doctest
              0

          Python

              >>> from sage.all import *
              >>> # needs sage.combinat sage.graphs sage.modules
              >>> from sage.algebras.quantum_groups.representations import (
              ...     MinusculeRepresentation, AdjointRepresentation)
              >>> R = ZZ['q'].fraction_field()
              >>> CM = crystals.Tableaux(['D',Integer(4)], shape=[Integer(1)])
              >>> VM = MinusculeRepresentation(R, CM)
              >>> CA = crystals.Tableaux(['D',Integer(4)], shape=[Integer(1),Integer(1)])
              >>> VA = AdjointRepresentation(R, CA)
              >>> v = tensor([VM.an_element(), VA.an_element()]); v
              4*B[[[1]]] # B[[[1], [2]]] + 4*B[[[1]]] # B[[[1], [3]]]
               + 6*B[[[1]]] # B[[[2], [3]]] + 4*B[[[2]]] # B[[[1], [2]]]
               + 4*B[[[2]]] # B[[[1], [3]]] + 6*B[[[2]]] # B[[[2], [3]]]
               + 6*B[[[3]]] # B[[[1], [2]]] + 6*B[[[3]]] # B[[[1], [3]]]
               + 9*B[[[3]]] # B[[[2], [3]]]
              >>> v.e(Integer(1))  # indirect doctest
              4*B[[[1]]] # B[[[1], [2]]]
               + ((4*q+6)/q)*B[[[1]]] # B[[[1], [3]]]
               + 6*B[[[1]]] # B[[[2], [3]]]
               + 6*q*B[[[2]]] # B[[[1], [3]]]
               + 9*B[[[3]]] # B[[[1], [3]]]
              >>> v.e(Integer(2))  # indirect doctest
              4*B[[[1]]] # B[[[1], [2]]]
               + ((6*q+4)/q)*B[[[2]]] # B[[[1], [2]]]
               + 6*B[[[2]]] # B[[[1], [3]]]
               + 9*B[[[2]]] # B[[[2], [3]]]
               + 6*q*B[[[3]]] # B[[[1], [2]]]
              >>> v.e(Integer(3))  # indirect doctest
              0
              >>> v.e(Integer(4))  # indirect doctest
              0

        f_on_basis(i, b)

          Return the action of \(f_i\) on the basis element indexed by `b`.

          INPUT:

          - `i` – an element of the index set

          - `b` – an element of basis keys

          EXAMPLES:

          Sage

              sage: # needs sage.combinat sage.graphs sage.modules
              sage: from sage.algebras.quantum_groups.representations import (
              ....:     MinusculeRepresentation, AdjointRepresentation)
              sage: R = ZZ['q'].fraction_field()
              sage: KM = crystals.KirillovReshetikhin(['B',3,1], 3,1)
              sage: VM = MinusculeRepresentation(R, KM)
              sage: KA = crystals.KirillovReshetikhin(['B',3,1], 2,1)
              sage: VA = AdjointRepresentation(R, KA)
              sage: v = tensor([VM.an_element(), VA.an_element()]); v
              4*B[[+++, []]] # B[[]] + 4*B[[+++, []]] # B[[[1], [2]]]
               + 6*B[[+++, []]] # B[[[1], [3]]] + 4*B[[++-, []]] # B[[]]
               + 4*B[[++-, []]] # B[[[1], [2]]]
               + 6*B[[++-, []]] # B[[[1], [3]]] + 6*B[[+-+, []]] # B[[]]
               + 6*B[[+-+, []]] # B[[[1], [2]]]
               + 9*B[[+-+, []]] # B[[[1], [3]]]
              sage: v.f(0)  # indirect doctest
              ((4*q^4+4)/q^2)*B[[+++, []]] # B[[[1], [2]]]
               + ((4*q^4+4)/q^2)*B[[++-, []]] # B[[[1], [2]]]
               + ((6*q^4+6)/q^2)*B[[+-+, []]] # B[[[1], [2]]]
              sage: v.f(1)  # indirect doctest
              6*B[[+++, []]] # B[[[2], [3]]]
               + 6*B[[++-, []]] # B[[[2], [3]]]
               + 9*B[[+-+, []]] # B[[[2], [3]]]
               + 6*B[[-++, []]] # B[[]]
               + 6*B[[-++, []]] # B[[[1], [2]]]
               + 9*q^2*B[[-++, []]] # B[[[1], [3]]]
              sage: v.f(2)  # indirect doctest
              4*B[[+++, []]] # B[[[1], [3]]]
               + 4*B[[++-, []]] # B[[[1], [3]]]
               + 4*B[[+-+, []]] # B[[]]
               + 4*q^2*B[[+-+, []]] # B[[[1], [2]]]
               + ((6*q^2+6)/q^2)*B[[+-+, []]] # B[[[1], [3]]]
              sage: v.f(3)  # indirect doctest
              6*B[[+++, []]] # B[[[1], [0]]]
               + 4*B[[++-, []]] # B[[]]
               + 4*B[[++-, []]] # B[[[1], [2]]]
               + 6*q^2*B[[++-, []]] # B[[[1], [3]]]
               + 6*B[[++-, []]] # B[[[1], [0]]]
               + 9*B[[+-+, []]] # B[[[1], [0]]]
               + 6*B[[+--, []]] # B[[]]
               + 6*B[[+--, []]] # B[[[1], [2]]]
               + 9*q^2*B[[+--, []]] # B[[[1], [3]]]

          Python

              >>> from sage.all import *
              >>> # needs sage.combinat sage.graphs sage.modules
              >>> from sage.algebras.quantum_groups.representations import (
              ...     MinusculeRepresentation, AdjointRepresentation)
              >>> R = ZZ['q'].fraction_field()
              >>> KM = crystals.KirillovReshetikhin(['B',Integer(3),Integer(1)], Integer(3),Integer(1))
              >>> VM = MinusculeRepresentation(R, KM)
              >>> KA = crystals.KirillovReshetikhin(['B',Integer(3),Integer(1)], Integer(2),Integer(1))
              >>> VA = AdjointRepresentation(R, KA)
              >>> v = tensor([VM.an_element(), VA.an_element()]); v
              4*B[[+++, []]] # B[[]] + 4*B[[+++, []]] # B[[[1], [2]]]
               + 6*B[[+++, []]] # B[[[1], [3]]] + 4*B[[++-, []]] # B[[]]
               + 4*B[[++-, []]] # B[[[1], [2]]]
               + 6*B[[++-, []]] # B[[[1], [3]]] + 6*B[[+-+, []]] # B[[]]
               + 6*B[[+-+, []]] # B[[[1], [2]]]
               + 9*B[[+-+, []]] # B[[[1], [3]]]
              >>> v.f(Integer(0))  # indirect doctest
              ((4*q^4+4)/q^2)*B[[+++, []]] # B[[[1], [2]]]
               + ((4*q^4+4)/q^2)*B[[++-, []]] # B[[[1], [2]]]
               + ((6*q^4+6)/q^2)*B[[+-+, []]] # B[[[1], [2]]]
              >>> v.f(Integer(1))  # indirect doctest
              6*B[[+++, []]] # B[[[2], [3]]]
               + 6*B[[++-, []]] # B[[[2], [3]]]
               + 9*B[[+-+, []]] # B[[[2], [3]]]
               + 6*B[[-++, []]] # B[[]]
               + 6*B[[-++, []]] # B[[[1], [2]]]
               + 9*q^2*B[[-++, []]] # B[[[1], [3]]]
              >>> v.f(Integer(2))  # indirect doctest
              4*B[[+++, []]] # B[[[1], [3]]]
               + 4*B[[++-, []]] # B[[[1], [3]]]
               + 4*B[[+-+, []]] # B[[]]
               + 4*q^2*B[[+-+, []]] # B[[[1], [2]]]
               + ((6*q^2+6)/q^2)*B[[+-+, []]] # B[[[1], [3]]]
              >>> v.f(Integer(3))  # indirect doctest
              6*B[[+++, []]] # B[[[1], [0]]]
               + 4*B[[++-, []]] # B[[]]
               + 4*B[[++-, []]] # B[[[1], [2]]]
               + 6*q^2*B[[++-, []]] # B[[[1], [3]]]
               + 6*B[[++-, []]] # B[[[1], [0]]]
               + 9*B[[+-+, []]] # B[[[1], [0]]]
               + 6*B[[+--, []]] # B[[]]
               + 6*B[[+--, []]] # B[[[1], [2]]]
               + 9*q^2*B[[+--, []]] # B[[[1], [3]]]

      extra_super_categories()

        EXAMPLES:

        Sage

            sage: from sage.categories.quantum_group_representations import QuantumGroupRepresentations
            sage: Cat = QuantumGroupRepresentations(ZZ['q'].fraction_field())
            sage: Cat.WithBasis().TensorProducts().extra_super_categories()
            [Category of quantum group representations with basis over
              Fraction Field of Univariate Polynomial Ring in q over Integer Ring]

        Python

            >>> from sage.all import *
            >>> from sage.categories.quantum_group_representations import QuantumGroupRepresentations
            >>> Cat = QuantumGroupRepresentations(ZZ['q'].fraction_field())
            >>> Cat.WithBasis().TensorProducts().extra_super_categories()
            [Category of quantum group representations with basis over
              Fraction Field of Univariate Polynomial Ring in q over Integer Ring]

  example()

    Return an example of a quantum group representation as per `Category.example`.

    EXAMPLES:

    Sage

        sage: from sage.categories.quantum_group_representations import QuantumGroupRepresentations
        sage: Cat = QuantumGroupRepresentations(ZZ['q'].fraction_field())
        sage: Cat.example()                                                         # needs sage.combinat sage.graphs sage.modules
        V((2, 1, 0))

    Python

        >>> from sage.all import *
        >>> from sage.categories.quantum_group_representations import QuantumGroupRepresentations
        >>> Cat = QuantumGroupRepresentations(ZZ['q'].fraction_field())
        >>> Cat.example()                                                         # needs sage.combinat sage.graphs sage.modules
        V((2, 1, 0))

  super_categories()

    Return the super categories of `self`.

    EXAMPLES:

    Sage

        sage: from sage.categories.quantum_group_representations import QuantumGroupRepresentations
        sage: QuantumGroupRepresentations(ZZ['q'].fraction_field()).super_categories()
        [Category of vector spaces over
          Fraction Field of Univariate Polynomial Ring in q over Integer Ring]

    Python

        >>> from sage.all import *
        >>> from sage.categories.quantum_group_representations import QuantumGroupRepresentations
        >>> QuantumGroupRepresentations(ZZ['q'].fraction_field()).super_categories()
        [Category of vector spaces over
          Fraction Field of Univariate Polynomial Ring in q over Integer Ring]