Quantum Group Representations - Algebras

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

# Quantum Group Representations

AUTHORS:

- Travis Scrimshaw (2018): initial version

class sage.algebras.quantum_groups.representations.AdjointRepresentation(R, C, q)

  Bases: `CyclicRepresentation`

  An (generalized) adjoint representation of a quantum group.

  We define an (generalized) adjoint representation \(V\) of a quantum group \(U_q\) to be a cyclic \(U_q\)-module with a weight space decomposition \(V = \bigoplus_{\mu} V_{\mu}\) such that \(\dim V_{\mu} \leq 1\) unless \(\mu = 0\). Moreover, we require that there exists a basis \(\{y_j | j \in J\}\) for \(V_0\) such that \(e_i y_j = 0\) for all \(j \neq i \in I\).

  For a base ring \(R\), we construct an adjoint representation from its (combinatorial) crystal \(B\) by \(V = R \{v_b | b \in B\}\) with

  \[\begin{split}\begin{aligned} e_i v_b & = \begin{cases} v_{e_i b} / [\varphi_i(e_i b)]_{q_i}, & \text{if } \operatorname{wt}(b) \neq 0, \\ v_{e_i b} + \sum_{j \neq i} [-A_{ij}]_{q_i} / [2]_{q_i} v_{y_j} & \text{otherwise} \end{cases} \\ f_i v_b & = \begin{cases} v_{f_i b} / [\varepsilon_i(f_i b)]_{q_i}, & \text{if } \operatorname{wt}(b) \neq 0, \\ v_{f_i b} + \sum_{j \neq i} [-A_{ij}]_{q_i} / [2]_{q_i} v_{y_j} & \text{otherwise} \end{cases} \\ K_i v_b & = q^{\langle h_i, \operatorname{wt}(b) \rangle} v_b, \end{aligned}\end{split}\]

  where \((A_{ij})_{i,j \in I}\) is the Cartan matrix, and we consider \(v_0 := 0\).

  INPUT:

  - `C` – the crystal corresponding to the representation

  - `R` – the base ring

  - `q` – (default: the generator of `R`) the parameter \(q\) of the quantum group

  Warning

  This assumes that \(q\) is generic.

  EXAMPLES:

  Sage

      sage: from sage.algebras.quantum_groups.representations import AdjointRepresentation
      sage: R = ZZ['q'].fraction_field()
      sage: C = crystals.Tableaux(['D',4], shape=[1,1])
      sage: V = AdjointRepresentation(R, C)
      sage: V
      V((1, 1, 0, 0))
      sage: v = V.an_element(); v
      2*B[[[1], [2]]] + 2*B[[[1], [3]]] + 3*B[[[2], [3]]]
      sage: v.e(2)
      2*B[[[1], [2]]]
      sage: v.f(2)
      2*B[[[1], [3]]]
      sage: v.f(4)
      2*B[[[1], [-4]]] + 3*B[[[2], [-4]]]
      sage: v.K(3)
      2*B[[[1], [2]]] + 2*q*B[[[1], [3]]] + 3*q*B[[[2], [3]]]
      sage: v.K(2,-2)
      2/q^2*B[[[1], [2]]] + 2*q^2*B[[[1], [3]]] + 3*B[[[2], [3]]]

      sage: La = RootSystem(['F',4,1]).weight_space().fundamental_weights()
      sage: K = crystals.ProjectedLevelZeroLSPaths(La[4])
      sage: A = AdjointRepresentation(R, K)
      sage: A
      V(-Lambda[0] + Lambda[4])

  Python

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

      >>> La = RootSystem(['F',Integer(4),Integer(1)]).weight_space().fundamental_weights()
      >>> K = crystals.ProjectedLevelZeroLSPaths(La[Integer(4)])
      >>> A = AdjointRepresentation(R, K)
      >>> A
      V(-Lambda[0] + Lambda[4])

  Sort the summands uniformly in Python 2 and Python 3:

  Sage

      sage: A.print_options(sorting_key=lambda x: str(x))
      sage: v = A.an_element(); v
      2*B[(-Lambda[0] + Lambda[3] - Lambda[4],)]
       + 2*B[(-Lambda[0] + Lambda[4],)]
       + 3*B[(Lambda[0] - Lambda[1] + Lambda[4],)]
      sage: v.e(0)
      2*B[(Lambda[0] - Lambda[1] + Lambda[3] - Lambda[4],)]
       + 2*B[(Lambda[0] - Lambda[1] + Lambda[4],)]
      sage: v.f(0)
      3*B[(-Lambda[0] + Lambda[4],)]

  [Python]

      >>> from sage.all import *
      >>> A.print_options(sorting_key=lambda x: str(x))
      >>> v = A.an_element(); v
      2*B[(-Lambda[0] + Lambda[3] - Lambda[4],)]
       + 2*B[(-Lambda[0] + Lambda[4],)]
       + 3*B[(Lambda[0] - Lambda[1] + Lambda[4],)]
      >>> v.e(Integer(0))
      2*B[(Lambda[0] - Lambda[1] + Lambda[3] - Lambda[4],)]
       + 2*B[(Lambda[0] - Lambda[1] + Lambda[4],)]
      >>> v.f(Integer(0))
      3*B[(-Lambda[0] + Lambda[4],)]

  REFERENCES:

  - [OS2018]

  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: from sage.algebras.quantum_groups.representations import AdjointRepresentation
        sage: K = crystals.KirillovReshetikhin(['D',3,2], 1,1)
        sage: R = ZZ['q'].fraction_field()
        sage: V = AdjointRepresentation(R, K)
        sage: mg0 = K.module_generators[0]; mg0
        []
        sage: mg1 = K.module_generators[1]; mg1
        [[1]]
        sage: V.e_on_basis(0, mg0)
        ((q^2+1)/q)*B[[[-1]]]
        sage: V.e_on_basis(0, mg1)
        B[[]]
        sage: V.e_on_basis(1, mg0)
        0
        sage: V.e_on_basis(1, mg1)
        0
        sage: V.e_on_basis(2, mg0)
        0
        sage: V.e_on_basis(2, mg1)
        0

        sage: K = crystals.KirillovReshetikhin(['D',4,3], 1,1)
        sage: V = AdjointRepresentation(R, K)
        sage: V.e_on_basis(0, K.module_generator())
        B[[]] + (q/(q^2+1))*B[[[0]]]

    Python

        >>> from sage.all import *
        >>> from sage.algebras.quantum_groups.representations import AdjointRepresentation
        >>> K = crystals.KirillovReshetikhin(['D',Integer(3),Integer(2)], Integer(1),Integer(1))
        >>> R = ZZ['q'].fraction_field()
        >>> V = AdjointRepresentation(R, K)
        >>> mg0 = K.module_generators[Integer(0)]; mg0
        []
        >>> mg1 = K.module_generators[Integer(1)]; mg1
        [[1]]
        >>> V.e_on_basis(Integer(0), mg0)
        ((q^2+1)/q)*B[[[-1]]]
        >>> V.e_on_basis(Integer(0), mg1)
        B[[]]
        >>> V.e_on_basis(Integer(1), mg0)
        0
        >>> V.e_on_basis(Integer(1), mg1)
        0
        >>> V.e_on_basis(Integer(2), mg0)
        0
        >>> V.e_on_basis(Integer(2), mg1)
        0

        >>> K = crystals.KirillovReshetikhin(['D',Integer(4),Integer(3)], Integer(1),Integer(1))
        >>> V = AdjointRepresentation(R, K)
        >>> V.e_on_basis(Integer(0), K.module_generator())
        B[[]] + (q/(q^2+1))*B[[[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: from sage.algebras.quantum_groups.representations import AdjointRepresentation
        sage: K = crystals.KirillovReshetikhin(['D',3,2], 1,1)
        sage: R = ZZ['q'].fraction_field()
        sage: V = AdjointRepresentation(R, K)
        sage: mg0 = K.module_generators[0]; mg0
        []
        sage: mg1 = K.module_generators[1]; mg1
        [[1]]
        sage: V.f_on_basis(0, mg0)
        ((q^2+1)/q)*B[[[1]]]
        sage: V.f_on_basis(0, mg1)
        0
        sage: V.f_on_basis(1, mg0)
        0
        sage: V.f_on_basis(1, mg1)
        B[[[2]]]
        sage: V.f_on_basis(2, mg0)
        0
        sage: V.f_on_basis(2, mg1)
        0

        sage: K = crystals.KirillovReshetikhin(['D',4,3], 1,1)
        sage: V = AdjointRepresentation(R, K)
        sage: lw = K.module_generator().to_lowest_weight([1,2])[0]
        sage: V.f_on_basis(0, lw)
        B[[]] + (q/(q^2+1))*B[[[0]]]

    Python

        >>> from sage.all import *
        >>> from sage.algebras.quantum_groups.representations import AdjointRepresentation
        >>> K = crystals.KirillovReshetikhin(['D',Integer(3),Integer(2)], Integer(1),Integer(1))
        >>> R = ZZ['q'].fraction_field()
        >>> V = AdjointRepresentation(R, K)
        >>> mg0 = K.module_generators[Integer(0)]; mg0
        []
        >>> mg1 = K.module_generators[Integer(1)]; mg1
        [[1]]
        >>> V.f_on_basis(Integer(0), mg0)
        ((q^2+1)/q)*B[[[1]]]
        >>> V.f_on_basis(Integer(0), mg1)
        0
        >>> V.f_on_basis(Integer(1), mg0)
        0
        >>> V.f_on_basis(Integer(1), mg1)
        B[[[2]]]
        >>> V.f_on_basis(Integer(2), mg0)
        0
        >>> V.f_on_basis(Integer(2), mg1)
        0

        >>> K = crystals.KirillovReshetikhin(['D',Integer(4),Integer(3)], Integer(1),Integer(1))
        >>> V = AdjointRepresentation(R, K)
        >>> lw = K.module_generator().to_lowest_weight([Integer(1),Integer(2)])[Integer(0)]
        >>> V.f_on_basis(Integer(0), lw)
        B[[]] + (q/(q^2+1))*B[[[0]]]

class sage.algebras.quantum_groups.representations.CyclicRepresentation(R, C, q)

  Bases: `QuantumGroupRepresentation`

  A cyclic quantum group representation that is indexed by either a highest weight crystal or Kirillov-Reshetikhin crystal.

  The crystal `C` must either allow `C.module_generator()`, otherwise it is assumed to be generated by `C.module_generators[0]`.

  This is meant as an abstract base class for `AdjointRepresentation` and `MinusculeRepresentation`.

  module_generator()

    Return the module generator of `self`.

    EXAMPLES:

    Sage

        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.module_generator()
        B[[[1], [2]]]

        sage: K = crystals.KirillovReshetikhin(['D',4,2], 1,1)
        sage: A = AdjointRepresentation(R, K)
        sage: A.module_generator()
        B[[[1]]]

    Python

        >>> from sage.all import *
        >>> 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.module_generator()
        B[[[1], [2]]]

        >>> K = crystals.KirillovReshetikhin(['D',Integer(4),Integer(2)], Integer(1),Integer(1))
        >>> A = AdjointRepresentation(R, K)
        >>> A.module_generator()
        B[[[1]]]

class sage.algebras.quantum_groups.representations.MinusculeRepresentation(R, C, q)

  Bases: `CyclicRepresentation`

  A minuscule representation of a quantum group.

  A quantum group representation \(V\) is minuscule if it is cyclic, there is a weight space decomposition \(V = \bigoplus_{\mu} V_{\mu}\) with \(\dim V_{\mu} \leq 1\), and \(e_i^2 V = 0\) and \(f_i^2 V = 0\).

  For a base ring \(R\), we construct a minuscule representation from its (combinatorial) crystal \(B\) by \(V = R \{v_b | b \in B\}\) with \(e_i v_b = v_{e_i b}\), \(f_i v_b = v_{f_i b}\), and \(K_i v_b = q^{\langle h_i, \operatorname{wt}(b) \rangle} v_b\), where we consider \(v_0 := 0\).

  INPUT:

  - `C` – the crystal corresponding to the representation

  - `R` – the base ring

  - `q` – (default: the generator of `R`) the parameter \(q\) of the quantum group

  Warning

  This assumes that \(q\) is generic.

  EXAMPLES:

  Sage

      sage: from sage.algebras.quantum_groups.representations import MinusculeRepresentation
      sage: R = ZZ['q'].fraction_field()
      sage: C = crystals.Tableaux(['B',3], shape=[1/2,1/2,1/2])
      sage: V = MinusculeRepresentation(R, C)
      sage: V
      V((1/2, 1/2, 1/2))
      sage: v = V.an_element(); v
      2*B[[+++, []]] + 2*B[[++-, []]] + 3*B[[+-+, []]]
      sage: v.e(3)
      2*B[[+++, []]]
      sage: v.f(1)
      3*B[[-++, []]]
      sage: v.f(3)
      2*B[[++-, []]] + 3*B[[+--, []]]
      sage: v.K(2)
      2*B[[+++, []]] + 2*q^2*B[[++-, []]] + 3/q^2*B[[+-+, []]]
      sage: v.K(3, -2)
      2/q^2*B[[+++, []]] + 2*q^2*B[[++-, []]] + 3/q^2*B[[+-+, []]]

      sage: K = crystals.KirillovReshetikhin(['D',4,2], 3,1)
      sage: A = MinusculeRepresentation(R, K)
      sage: A
      V(-Lambda[0] + Lambda[3])
      sage: v = A.an_element(); v
      2*B[[+++, []]] + 2*B[[++-, []]] + 3*B[[+-+, []]]
      sage: v.f(0)
      0
      sage: v.e(0)
      2*B[[-++, []]] + 2*B[[-+-, []]] + 3*B[[--+, []]]

  Python

      >>> from sage.all import *
      >>> from sage.algebras.quantum_groups.representations import MinusculeRepresentation
      >>> R = ZZ['q'].fraction_field()
      >>> C = crystals.Tableaux(['B',Integer(3)], shape=[Integer(1)/Integer(2),Integer(1)/Integer(2),Integer(1)/Integer(2)])
      >>> V = MinusculeRepresentation(R, C)
      >>> V
      V((1/2, 1/2, 1/2))
      >>> v = V.an_element(); v
      2*B[[+++, []]] + 2*B[[++-, []]] + 3*B[[+-+, []]]
      >>> v.e(Integer(3))
      2*B[[+++, []]]
      >>> v.f(Integer(1))
      3*B[[-++, []]]
      >>> v.f(Integer(3))
      2*B[[++-, []]] + 3*B[[+--, []]]
      >>> v.K(Integer(2))
      2*B[[+++, []]] + 2*q^2*B[[++-, []]] + 3/q^2*B[[+-+, []]]
      >>> v.K(Integer(3), -Integer(2))
      2/q^2*B[[+++, []]] + 2*q^2*B[[++-, []]] + 3/q^2*B[[+-+, []]]

      >>> K = crystals.KirillovReshetikhin(['D',Integer(4),Integer(2)], Integer(3),Integer(1))
      >>> A = MinusculeRepresentation(R, K)
      >>> A
      V(-Lambda[0] + Lambda[3])
      >>> v = A.an_element(); v
      2*B[[+++, []]] + 2*B[[++-, []]] + 3*B[[+-+, []]]
      >>> v.f(Integer(0))
      0
      >>> v.e(Integer(0))
      2*B[[-++, []]] + 2*B[[-+-, []]] + 3*B[[--+, []]]

  REFERENCES:

  - [OS2018]

  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: from sage.algebras.quantum_groups.representations import MinusculeRepresentation
        sage: C = crystals.Tableaux(['A',3], shape=[1,1])
        sage: R = ZZ['q'].fraction_field()
        sage: V = MinusculeRepresentation(R, C)
        sage: lw = C.lowest_weight_vectors()[0]
        sage: V.e_on_basis(1, lw)
        0
        sage: V.e_on_basis(2, lw)
        B[[[2], [4]]]
        sage: V.e_on_basis(3, lw)
        0
        sage: hw = C.highest_weight_vectors()[0]
        sage: all(V.e_on_basis(i, hw) == V.zero() for i in V.index_set())
        True

    Python

        >>> from sage.all import *
        >>> from sage.algebras.quantum_groups.representations import MinusculeRepresentation
        >>> C = crystals.Tableaux(['A',Integer(3)], shape=[Integer(1),Integer(1)])
        >>> R = ZZ['q'].fraction_field()
        >>> V = MinusculeRepresentation(R, C)
        >>> lw = C.lowest_weight_vectors()[Integer(0)]
        >>> V.e_on_basis(Integer(1), lw)
        0
        >>> V.e_on_basis(Integer(2), lw)
        B[[[2], [4]]]
        >>> V.e_on_basis(Integer(3), lw)
        0
        >>> hw = C.highest_weight_vectors()[Integer(0)]
        >>> all(V.e_on_basis(i, hw) == V.zero() for i in V.index_set())
        True

  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: from sage.algebras.quantum_groups.representations import MinusculeRepresentation
        sage: C = crystals.Tableaux(['A',3], shape=[1,1])
        sage: R = ZZ['q'].fraction_field()
        sage: V = MinusculeRepresentation(R, C)
        sage: hw = C.highest_weight_vectors()[0]
        sage: V.f_on_basis(1, hw)
        0
        sage: V.f_on_basis(2, hw)
        B[[[1], [3]]]
        sage: V.f_on_basis(3, hw)
        0
        sage: lw = C.lowest_weight_vectors()[0]
        sage: all(V.f_on_basis(i, lw) == V.zero() for i in V.index_set())
        True

    Python

        >>> from sage.all import *
        >>> from sage.algebras.quantum_groups.representations import MinusculeRepresentation
        >>> C = crystals.Tableaux(['A',Integer(3)], shape=[Integer(1),Integer(1)])
        >>> R = ZZ['q'].fraction_field()
        >>> V = MinusculeRepresentation(R, C)
        >>> hw = C.highest_weight_vectors()[Integer(0)]
        >>> V.f_on_basis(Integer(1), hw)
        0
        >>> V.f_on_basis(Integer(2), hw)
        B[[[1], [3]]]
        >>> V.f_on_basis(Integer(3), hw)
        0
        >>> lw = C.lowest_weight_vectors()[Integer(0)]
        >>> all(V.f_on_basis(i, lw) == V.zero() for i in V.index_set())
        True

class sage.algebras.quantum_groups.representations.QuantumGroupRepresentation(R, C, q)

  Bases: `CombinatorialFreeModule`

  A representation of a quantum group whose basis is indexed by the corresponding (combinatorial) crystal.

  INPUT:

  - `C` – the crystal corresponding to the representation

  - `R` – the base ring

  - `q` – (default: the generator of `R`) the parameter \(q\) of the quantum group

  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: from sage.algebras.quantum_groups.representations import MinusculeRepresentation
        sage: C = crystals.Tableaux(['A',3], shape=[1,1])
        sage: R = ZZ['q'].fraction_field()
        sage: V = MinusculeRepresentation(R, C)
        sage: [[V.K_on_basis(i, b) for i in V.index_set()] for b in C]
        [[B[[[1], [2]]], q*B[[[1], [2]]], B[[[1], [2]]]],
         [q*B[[[1], [3]]], 1/q*B[[[1], [3]]], q*B[[[1], [3]]]],
         [1/q*B[[[2], [3]]], B[[[2], [3]]], q*B[[[2], [3]]]],
         [q*B[[[1], [4]]], B[[[1], [4]]], 1/q*B[[[1], [4]]]],
         [1/q*B[[[2], [4]]], q*B[[[2], [4]]], 1/q*B[[[2], [4]]]],
         [B[[[3], [4]]], 1/q*B[[[3], [4]]], B[[[3], [4]]]]]
        sage: [[V.K_on_basis(i, b, -1) for i in V.index_set()] for b in C]
        [[B[[[1], [2]]], 1/q*B[[[1], [2]]], B[[[1], [2]]]],
         [1/q*B[[[1], [3]]], q*B[[[1], [3]]], 1/q*B[[[1], [3]]]],
         [q*B[[[2], [3]]], B[[[2], [3]]], 1/q*B[[[2], [3]]]],
         [1/q*B[[[1], [4]]], B[[[1], [4]]], q*B[[[1], [4]]]],
         [q*B[[[2], [4]]], 1/q*B[[[2], [4]]], q*B[[[2], [4]]]],
         [B[[[3], [4]]], q*B[[[3], [4]]], B[[[3], [4]]]]]

    Python

        >>> from sage.all import *
        >>> from sage.algebras.quantum_groups.representations import MinusculeRepresentation
        >>> C = crystals.Tableaux(['A',Integer(3)], shape=[Integer(1),Integer(1)])
        >>> R = ZZ['q'].fraction_field()
        >>> V = MinusculeRepresentation(R, C)
        >>> [[V.K_on_basis(i, b) for i in V.index_set()] for b in C]
        [[B[[[1], [2]]], q*B[[[1], [2]]], B[[[1], [2]]]],
         [q*B[[[1], [3]]], 1/q*B[[[1], [3]]], q*B[[[1], [3]]]],
         [1/q*B[[[2], [3]]], B[[[2], [3]]], q*B[[[2], [3]]]],
         [q*B[[[1], [4]]], B[[[1], [4]]], 1/q*B[[[1], [4]]]],
         [1/q*B[[[2], [4]]], q*B[[[2], [4]]], 1/q*B[[[2], [4]]]],
         [B[[[3], [4]]], 1/q*B[[[3], [4]]], B[[[3], [4]]]]]
        >>> [[V.K_on_basis(i, b, -Integer(1)) for i in V.index_set()] for b in C]
        [[B[[[1], [2]]], 1/q*B[[[1], [2]]], B[[[1], [2]]]],
         [1/q*B[[[1], [3]]], q*B[[[1], [3]]], 1/q*B[[[1], [3]]]],
         [q*B[[[2], [3]]], B[[[2], [3]]], 1/q*B[[[2], [3]]]],
         [1/q*B[[[1], [4]]], B[[[1], [4]]], q*B[[[1], [4]]]],
         [q*B[[[2], [4]]], 1/q*B[[[2], [4]]], q*B[[[2], [4]]]],
         [B[[[3], [4]]], q*B[[[3], [4]]], B[[[3], [4]]]]]

  cartan_type()

    Return the Cartan type of `self`.

    EXAMPLES:

    Sage

        sage: from sage.algebras.quantum_groups.representations import AdjointRepresentation
        sage: C = crystals.Tableaux(['C',3], shape=[1])
        sage: R = ZZ['q'].fraction_field()
        sage: V = AdjointRepresentation(R, C)
        sage: V.cartan_type()
        ['C', 3]

    Python

        >>> from sage.all import *
        >>> from sage.algebras.quantum_groups.representations import AdjointRepresentation
        >>> C = crystals.Tableaux(['C',Integer(3)], shape=[Integer(1)])
        >>> R = ZZ['q'].fraction_field()
        >>> V = AdjointRepresentation(R, C)
        >>> V.cartan_type()
        ['C', 3]