Lie Algebras Given By Structure Coefficients#
AUTHORS:
Travis Scrimshaw (2013-05-03): Initial version
- class sage.algebras.lie_algebras.structure_coefficients.LieAlgebraWithStructureCoefficients(R, s_coeff, names, index_set, category=None, prefix=None, bracket=None, latex_bracket=None, string_quotes=None, **kwds)#
Bases:
FinitelyGeneratedLieAlgebra
,IndexedGenerators
A Lie algebra with a set of specified structure coefficients.
The structure coefficients are specified as a dictionary \(d\) whose keys are pairs of basis indices, and whose values are dictionaries which in turn are indexed by basis indices. The value of \(d\) at a pair \((u, v)\) of basis indices is the dictionary whose \(w\)-th entry (for \(w\) a basis index) is the coefficient of \(b_w\) in the Lie bracket \([b_u, b_v]\) (where \(b_x\) means the basis element with index \(x\)).
INPUT:
R
– a ring, to be used as the base rings_coeff
– a dictionary, indexed by pairs of basis indices (see below), and whose values are dictionaries which are indexed by (single) basis indices and whose values are elements of \(R\)names
– list or tuple of stringsindex_set
– (default:names
) list or tuple of hashable and comparable elements
OUTPUT:
A Lie algebra over
R
which (as an \(R\)-module) is free with a basis indexed by the elements ofindex_set
. The \(i\)-th basis element is displayed using the namenames[i]
. If we let \(b_i\) denote this \(i\)-th basis element, then the Lie bracket is given by the requirement that the \(b_k\)-coefficient of \([b_i, b_j]\) iss_coeff[(i, j)][k]
ifs_coeff[(i, j)]
exists, otherwise-s_coeff[(j, i)][k]
ifs_coeff[(j, i)]
exists, otherwise \(0\).EXAMPLES:
We create the Lie algebra of \(\QQ^3\) under the Lie bracket defined by \(\times\) (cross-product):
sage: L = LieAlgebra(QQ, 'x,y,z', {('x','y'): {'z':1}, ('y','z'): {'x':1}, ('z','x'): {'y':1}}) sage: (x,y,z) = L.gens() sage: L.bracket(x, y) z sage: L.bracket(y, x) -z
- class Element#
Bases:
StructureCoefficientsElement
- change_ring(R)#
Return a Lie algebra with identical structure coefficients over
R
.INPUT:
R
– a ring
EXAMPLES:
sage: L.<x,y,z> = LieAlgebra(ZZ, {('x','y'): {'z':1}}) sage: L.structure_coefficients() Finite family {('x', 'y'): z} sage: LQQ = L.change_ring(QQ) sage: LQQ.structure_coefficients() Finite family {('x', 'y'): z} sage: LSR = LQQ.change_ring(SR) sage: LSR.structure_coefficients() Finite family {('x', 'y'): z}
- dimension()#
Return the dimension of
self
.EXAMPLES:
sage: L = LieAlgebra(QQ, 'x,y', {('x','y'):{'x':1}}) sage: L.dimension() 2
- from_vector(v, order=None, coerce=True)#
Return an element of
self
from the vectorv
.EXAMPLES:
sage: L.<x,y,z> = LieAlgebra(QQ, {('x','y'): {'z':1}}) sage: L.from_vector([1, 2, -2]) x + 2*y - 2*z
- module(sparse=True)#
Return
self
as a free module.EXAMPLES:
sage: L.<x,y,z> = LieAlgebra(QQ, {('x','y'):{'z':1}}) sage: L.module() Sparse vector space of dimension 3 over Rational Field
- monomial(k)#
Return the monomial indexed by
k
.EXAMPLES:
sage: L.<x,y,z> = LieAlgebra(QQ, {('x','y'): {'z':1}}) sage: L.monomial('x') x
- some_elements()#
Return some elements of
self
.EXAMPLES:
sage: L = lie_algebras.three_dimensional(QQ, 4, 1, -1, 2) sage: L.some_elements() [X, Y, Z, X + Y + Z]
- structure_coefficients(include_zeros=False)#
Return the dictionary of structure coefficients of
self
.EXAMPLES:
sage: L = LieAlgebra(QQ, 'x,y,z', {('x','y'): {'x':1}}) sage: L.structure_coefficients() Finite family {('x', 'y'): x} sage: S = L.structure_coefficients(True); S Finite family {('x', 'y'): x, ('x', 'z'): 0, ('y', 'z'): 0} sage: S['x','z'].parent() is L True
- term(k, c=None)#
Return the term indexed by
i
with coefficientc
.EXAMPLES:
sage: L.<x,y,z> = LieAlgebra(QQ, {('x','y'): {'z':1}}) sage: L.term('x', 4) 4*x
- zero()#
Return the element \(0\) in
self
.EXAMPLES:
sage: L.<x,y,z> = LieAlgebra(QQ, {('x','y'): {'z':1}}) sage: L.zero() 0