Quantum Group Representations#

AUTHORS:

  • Travis Scrimshaw (2018): initial version

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

Bases: sage.categories.category_types.Category_module

The category of quantum group representations.

class ParentMethods#

Bases: object

cartan_type()#

Return the Cartan type of self.

EXAMPLES:

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: 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: 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: sage.categories.tensor.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: 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: sage.categories.category_with_axiom.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: 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: 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: 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: 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: sage.categories.tensor.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: 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: 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: 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()
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]