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: from sage.algebras.quantum_groups.representations import MinusculeRepresentation # optional - sage.combinat sage.modules sage: C = crystals.Tableaux(['C',4], shape=[1]) # optional - sage.combinat sage.modules sage: R = ZZ['q'].fraction_field() # optional - sage.combinat sage.modules sage: V = MinusculeRepresentation(R, C) # optional - sage.combinat sage.modules sage: V.cartan_type() # optional - sage.combinat sage.modules ['C', 4]
- index_set()#
Return the index set of
self
.EXAMPLES:
sage: from sage.algebras.quantum_groups.representations import MinusculeRepresentation # optional - sage.combinat sage.modules sage: C = crystals.Tableaux(['C',4], shape=[1]) # optional - sage.combinat sage.modules sage: R = ZZ['q'].fraction_field() # optional - sage.combinat sage.modules sage: V = MinusculeRepresentation(R, C) # optional - sage.combinat sage.modules sage: V.index_set() # optional - sage.combinat sage.modules (1, 2, 3, 4)
- q()#
Return the quantum parameter \(q\) of
self
.EXAMPLES:
sage: from sage.algebras.quantum_groups.representations import MinusculeRepresentation # optional - sage.combinat sage.modules sage: C = crystals.Tableaux(['C',4], shape=[1]) # optional - sage.combinat sage.modules sage: R = ZZ['q'].fraction_field() # optional - sage.combinat sage.modules sage: V = MinusculeRepresentation(R, C) # optional - sage.combinat sage.modules sage: V.q() # optional - sage.combinat sage.modules 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: from sage.algebras.quantum_groups.representations import MinusculeRepresentation # optional - sage.combinat sage.modules sage: C = crystals.Tableaux(['C',2], shape=[1]) # optional - sage.combinat sage.modules sage: R = ZZ['q'].fraction_field() # optional - sage.combinat sage.modules sage: V = MinusculeRepresentation(R, C) # optional - sage.combinat sage.modules sage: T = tensor([V,V]) # optional - sage.combinat sage.modules sage: T.cartan_type() # optional - sage.combinat sage.modules ['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 powerpower
.INPUT:
i
– an element of the index setpower
– (default: 1) the power of \(K_i\)
EXAMPLES:
sage: from sage.algebras.quantum_groups.representations import AdjointRepresentation # optional - sage.combinat sage.modules sage: K = crystals.KirillovReshetikhin(['D',4,2], 1,1) # optional - sage.combinat sage.modules sage: R = ZZ['q'].fraction_field() # optional - sage.combinat sage.modules sage: V = AdjointRepresentation(R, K) # optional - sage.combinat sage.modules sage: v = V.an_element(); v # optional - sage.combinat sage.modules 2*B[[]] + 2*B[[[1]]] + 3*B[[[2]]] sage: v.K(0) # optional - sage.combinat sage.modules 2*B[[]] + 2/q^2*B[[[1]]] + 3*B[[[2]]] sage: v.K(1) # optional - sage.combinat sage.modules 2*B[[]] + 2*q^2*B[[[1]]] + 3/q^2*B[[[2]]] sage: v.K(1, 2) # optional - sage.combinat sage.modules 2*B[[]] + 2*q^4*B[[[1]]] + 3/q^4*B[[[2]]] sage: v.K(1, -1) # optional - sage.combinat sage.modules 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 # optional - sage.combinat sage.modules sage: C = crystals.Tableaux(['G',2], shape=[1,1]) # optional - sage.combinat sage.modules sage: R = ZZ['q'].fraction_field() # optional - sage.combinat sage.modules sage: V = AdjointRepresentation(R, C) # optional - sage.combinat sage.modules sage: v = V.an_element(); v # optional - sage.combinat sage.modules 2*B[[[1], [2]]] + 2*B[[[1], [3]]] + 3*B[[[2], [3]]] sage: v.e(1) # optional - sage.combinat sage.modules ((3*q^4+3*q^2+3)/q^2)*B[[[1], [3]]] sage: v.e(2) # optional - sage.combinat sage.modules 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 # optional - sage.combinat sage.modules sage: K = crystals.KirillovReshetikhin(['D',4,1], 2,1) # optional - sage.combinat sage.modules sage: R = ZZ['q'].fraction_field() # optional - sage.combinat sage.modules sage: V = AdjointRepresentation(R, K) # optional - sage.combinat sage.modules sage: v = V.an_element(); v # optional - sage.combinat sage.modules 2*B[[]] + 2*B[[[1], [2]]] + 3*B[[[1], [3]]] sage: v.f(0) # optional - sage.combinat sage.modules ((2*q^2+2)/q)*B[[[1], [2]]] sage: v.f(1) # optional - sage.combinat sage.modules 3*B[[[2], [3]]] sage: v.f(2) # optional - sage.combinat sage.modules 2*B[[[1], [3]]] sage: v.f(3) # optional - sage.combinat sage.modules 3*B[[[1], [4]]] sage: v.f(4) # optional - sage.combinat sage.modules 3*B[[[1], [-4]]]
- class ParentMethods#
Bases:
object
- tensor(*factors)#
Return the tensor product of
self
with the representationsfactors
.EXAMPLES:
sage: from sage.algebras.quantum_groups.representations import ( # optional - sage.combinat sage.modules ....: MinusculeRepresentation, AdjointRepresentation) sage: R = ZZ['q'].fraction_field() sage: CM = crystals.Tableaux(['D',4], shape=[1]) # optional - sage.combinat sage.modules sage: CA = crystals.Tableaux(['D',4], shape=[1,1]) # optional - sage.combinat sage.modules sage: V = MinusculeRepresentation(R, CM) # optional - sage.combinat sage.modules sage: V.tensor(V, V) # optional - sage.combinat sage.modules V((1, 0, 0, 0)) # V((1, 0, 0, 0)) # V((1, 0, 0, 0)) sage: A = MinusculeRepresentation(R, CA) # optional - sage.combinat sage.modules sage: V.tensor(A) # optional - sage.combinat sage.modules V((1, 0, 0, 0)) # V((1, 1, 0, 0)) sage: B = crystals.Tableaux(['A',2], shape=[1]) # optional - sage.combinat sage.modules sage: W = MinusculeRepresentation(R, B) # optional - sage.combinat sage.modules sage: tensor([W,V]) # optional - sage.combinat sage.modules Traceback (most recent call last): ... ValueError: all factors must be of the same Cartan type sage: tensor([V,A,W]) # optional - sage.combinat sage.modules 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 powerpower
.INPUT:
i
– an element of the index setb
– an element of basis keyspower
– (default: 1) the power of \(K_i\)
EXAMPLES:
sage: from sage.algebras.quantum_groups.representations import ( # optional - sage.combinat sage.modules ....: MinusculeRepresentation, AdjointRepresentation) sage: R = ZZ['q'].fraction_field() sage: CM = crystals.Tableaux(['A',2], shape=[1]) # optional - sage.combinat sage.modules sage: VM = MinusculeRepresentation(R, CM) # optional - sage.combinat sage.modules sage: CA = crystals.Tableaux(['A',2], shape=[2,1]) # optional - sage.combinat sage.modules sage: VA = AdjointRepresentation(R, CA) # optional - sage.combinat sage.modules sage: v = tensor([sum(VM.basis()), VA.module_generator()]); v # optional - sage.combinat sage.modules B[[[1]]] # B[[[1, 1], [2]]] + B[[[2]]] # B[[[1, 1], [2]]] + B[[[3]]] # B[[[1, 1], [2]]] sage: v.K(1) # indirect doctest # optional - sage.combinat sage.modules 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 # optional - sage.combinat sage.modules 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 setb
– an element of basis keys
EXAMPLES:
sage: from sage.algebras.quantum_groups.representations import ( # optional - sage.combinat sage.modules ....: MinusculeRepresentation, AdjointRepresentation) sage: R = ZZ['q'].fraction_field() sage: CM = crystals.Tableaux(['D',4], shape=[1]) # optional - sage.combinat sage.modules sage: VM = MinusculeRepresentation(R, CM) # optional - sage.combinat sage.modules sage: CA = crystals.Tableaux(['D',4], shape=[1,1]) # optional - sage.combinat sage.modules sage: VA = AdjointRepresentation(R, CA) # optional - sage.combinat sage.modules sage: v = tensor([VM.an_element(), VA.an_element()]); v # optional - sage.combinat sage.modules 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 # optional - sage.combinat sage.modules 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 # optional - sage.combinat sage.modules 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 # optional - sage.combinat sage.modules 0 sage: v.e(4) # indirect doctest # optional - sage.combinat sage.modules 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 setb
– an element of basis keys
EXAMPLES:
sage: from sage.algebras.quantum_groups.representations import ( # optional - sage.combinat sage.modules ....: MinusculeRepresentation, AdjointRepresentation) sage: R = ZZ['q'].fraction_field() sage: KM = crystals.KirillovReshetikhin(['B',3,1], 3,1) # optional - sage.combinat sage.modules sage: VM = MinusculeRepresentation(R, KM) # optional - sage.combinat sage.modules sage: KA = crystals.KirillovReshetikhin(['B',3,1], 2,1) # optional - sage.combinat sage.modules sage: VA = AdjointRepresentation(R, KA) # optional - sage.combinat sage.modules sage: v = tensor([VM.an_element(), VA.an_element()]); v # optional - sage.combinat sage.modules 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 # optional - sage.combinat sage.modules ((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 # optional - sage.combinat sage.modules 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 # optional - sage.combinat sage.modules 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 # optional - sage.combinat sage.modules 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() # optional - 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]