Kac-Moody Algebras With Triangular Decomposition Basis¶
AUTHORS:
Travis Scrimshaw (07-15-2017): Initial implementation
- class sage.categories.triangular_kac_moody_algebras.TriangularKacMoodyAlgebras(base, name=None)[source]¶
Bases:
Category_over_base_ring
Category of Kac-Moody algebras with a distinguished basis that respects the triangular decomposition.
We require that the grading group is the root lattice of the appropriate Cartan type.
- class ElementMethods[source]¶
Bases:
object
- part()[source]¶
Return whether the element
v
is in the lower, zero, or upper part ofself
.OUTPUT:
\(-1\) if
v
is in the lower part, \(0\) if in the zero part, or \(1\) if in the upper partEXAMPLES:
sage: # needs sage.combinat sage.modules sage: L = LieAlgebra(QQ, cartan_type='F4') sage: L.inject_variables() Defining e1, e2, e3, e4, f1, f2, f3, f4, h1, h2, h3, h4 sage: e1.part() 1 sage: f4.part() -1 sage: (h2 + h3).part() 0 sage: (f1.bracket(f2) + 4*f4).part() -1 sage: (e1 + f1).part() Traceback (most recent call last): ... ValueError: element is not in one part
>>> from sage.all import * >>> # needs sage.combinat sage.modules >>> L = LieAlgebra(QQ, cartan_type='F4') >>> L.inject_variables() Defining e1, e2, e3, e4, f1, f2, f3, f4, h1, h2, h3, h4 >>> e1.part() 1 >>> f4.part() -1 >>> (h2 + h3).part() 0 >>> (f1.bracket(f2) + Integer(4)*f4).part() -1 >>> (e1 + f1).part() Traceback (most recent call last): ... ValueError: element is not in one part
- class FiniteDimensional(base_category)[source]¶
Bases:
CategoryWithAxiom_over_base_ring
Category of finite dimensional Kac-Moody algebras (which correspond to semisimple Lie algebras) with a distinguished basis that respects the triangular decomposition.
- class ElementMethods[source]¶
Bases:
object
- transpose()[source]¶
Return the transpose of
self
.The transpose \(\tau\) is the map that sends the root basis elements \(e_{\alpha} \leftrightarrow e_{-\alpha}\) and fixes the Cartan subalgebra \(h_{\alpha}\). It is an anti-involution in the sense \([\tau(a), \tau(b)] = \tau([b, a])\).
EXAMPLES:
sage: # needs sage.combinat sage.modules sage: g = LieAlgebra(QQ, cartan_type=['G', 2]) sage: for b in g.basis(): ....: for bp in g.basis(): ....: a = g[b.transpose(), bp.transpose()] ....: ap = g[bp, b].transpose() ....: assert a == ap
>>> from sage.all import * >>> # needs sage.combinat sage.modules >>> g = LieAlgebra(QQ, cartan_type=['G', Integer(2)]) >>> for b in g.basis(): ... for bp in g.basis(): ... a = g[b.transpose(), bp.transpose()] ... ap = g[bp, b].transpose() ... assert a == ap
- class ParentMethods[source]¶
Bases:
object
- transpose()[source]¶
The transpose map of
self
.EXAMPLES:
sage: # needs sage.combinat sage.modules sage: g = LieAlgebra(QQ, cartan_type=['B', 2]) sage: g.transpose Generic endomorphism of Lie algebra of ['B', 2] in the Chevalley basis
>>> from sage.all import * >>> # needs sage.combinat sage.modules >>> g = LieAlgebra(QQ, cartan_type=['B', Integer(2)]) >>> g.transpose Generic endomorphism of Lie algebra of ['B', 2] in the Chevalley basis
- class ParentMethods[source]¶
Bases:
object
- e(i=None)[source]¶
Return the generators \(e\) of
self
.INPUT:
i
– (optional) if specified, return just the generator \(e_i\)
EXAMPLES:
sage: L = lie_algebras.so(QQ, 5) # needs sage.combinat sage.modules sage: L.e() # needs sage.combinat sage.modules Finite family {1: E[alpha[1]], 2: E[alpha[2]]} sage: L.e(1) # needs sage.combinat sage.modules E[alpha[1]]
>>> from sage.all import * >>> L = lie_algebras.so(QQ, Integer(5)) # needs sage.combinat sage.modules >>> L.e() # needs sage.combinat sage.modules Finite family {1: E[alpha[1]], 2: E[alpha[2]]} >>> L.e(Integer(1)) # needs sage.combinat sage.modules E[alpha[1]]
- f(i=None)[source]¶
Return the generators \(f\) of
self
.INPUT:
i
– (optional) if specified, return just the generator \(f_i\)
EXAMPLES:
sage: L = lie_algebras.so(QQ, 5) # needs sage.combinat sage.modules sage: L.f() # needs sage.combinat sage.modules Finite family {1: E[-alpha[1]], 2: E[-alpha[2]]} sage: L.f(1) # needs sage.combinat sage.modules E[-alpha[1]]
>>> from sage.all import * >>> L = lie_algebras.so(QQ, Integer(5)) # needs sage.combinat sage.modules >>> L.f() # needs sage.combinat sage.modules Finite family {1: E[-alpha[1]], 2: E[-alpha[2]]} >>> L.f(Integer(1)) # needs sage.combinat sage.modules E[-alpha[1]]
- simple_module(la, basis_key=None, **kwds)[source]¶
Return the simple module with highest weight
la
overself
.INPUT:
la
– the weightbasis_key
– (optional) a key function for the indexing set of the basis elements ofself
OUTPUT:
If
la
isVerma antidominant
, then this returns theVermaModule
of highest weightla
(which is simple and more efficient). Otherwise this returns aSimpleModule
.EXAMPLES:
sage: # needs sage.combinat sage.modules sage: g = lie_algebras.sl(QQ, 3) sage: P = g.cartan_type().root_system().weight_lattice() sage: La = P.fundamental_weights() sage: L = g.simple_module(La[1] + La[2]) sage: L Simple module with highest weight Lambda[1] + Lambda[2] of Lie algebra of ['A', 2] in the Chevalley basis sage: L = g.simple_module(-La[1] - La[2]) sage: L Verma module with highest weight -Lambda[1] - Lambda[2] of Lie algebra of ['A', 2] in the Chevalley basis
>>> from sage.all import * >>> # needs sage.combinat sage.modules >>> g = lie_algebras.sl(QQ, Integer(3)) >>> P = g.cartan_type().root_system().weight_lattice() >>> La = P.fundamental_weights() >>> L = g.simple_module(La[Integer(1)] + La[Integer(2)]) >>> L Simple module with highest weight Lambda[1] + Lambda[2] of Lie algebra of ['A', 2] in the Chevalley basis >>> L = g.simple_module(-La[Integer(1)] - La[Integer(2)]) >>> L Verma module with highest weight -Lambda[1] - Lambda[2] of Lie algebra of ['A', 2] in the Chevalley basis
- verma_module(la, basis_key=None, **kwds)[source]¶
Return the Verma module with highest weight
la
overself
.INPUT:
basis_key
– (optional) a key function for the indexing set of the basis elements ofself
EXAMPLES:
sage: # needs sage.combinat sage.modules sage: L = lie_algebras.sl(QQ, 3) sage: P = L.cartan_type().root_system().weight_lattice() sage: La = P.fundamental_weights() sage: M = L.verma_module(La[1] + La[2]) sage: M Verma module with highest weight Lambda[1] + Lambda[2] of Lie algebra of ['A', 2] in the Chevalley basis
>>> from sage.all import * >>> # needs sage.combinat sage.modules >>> L = lie_algebras.sl(QQ, Integer(3)) >>> P = L.cartan_type().root_system().weight_lattice() >>> La = P.fundamental_weights() >>> M = L.verma_module(La[Integer(1)] + La[Integer(2)]) >>> M Verma module with highest weight Lambda[1] + Lambda[2] of Lie algebra of ['A', 2] in the Chevalley basis
- super_categories()[source]¶
EXAMPLES:
sage: from sage.categories.triangular_kac_moody_algebras import TriangularKacMoodyAlgebras sage: TriangularKacMoodyAlgebras(QQ).super_categories() [Join of Category of graded Lie algebras with basis over Rational Field and Category of kac moody algebras over Rational Field]
>>> from sage.all import * >>> from sage.categories.triangular_kac_moody_algebras import TriangularKacMoodyAlgebras >>> TriangularKacMoodyAlgebras(QQ).super_categories() [Join of Category of graded Lie algebras with basis over Rational Field and Category of kac moody algebras over Rational Field]