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: # needs sage.combinat 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]
index_set()#

Return the index set of self.

EXAMPLES:

sage: # needs sage.combinat 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)
q()#

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

EXAMPLES:

sage: # needs sage.combinat 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
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: # needs sage.combinat 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]
extra_super_categories()#

EXAMPLES:

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]
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: # needs sage.combinat 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]]]
e(i)#

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

INPUT:

  • i – an element of the index set

EXAMPLES:

sage: # needs sage.combinat 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]]]
f(i)#

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

INPUT:

  • i – an element of the index set

EXAMPLES:

sage: # needs sage.combinat 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]]]
class ParentMethods#

Bases: object

tensor(*factors)#

Return the tensor product of self with the representations factors.

EXAMPLES:

sage: # needs sage.combinat 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
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: # needs sage.combinat 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]]]
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: # needs sage.combinat 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
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: # needs sage.combinat 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]]]
extra_super_categories()#

EXAMPLES:

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]
example()#

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

EXAMPLES:

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

Return the super categories of self.

EXAMPLES:

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]