# 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)

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 ring

• s_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 strings

• index_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 of index_set. The $$i$$-th basis element is displayed using the name names[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]$$ is s_coeff[(i, j)][k] if s_coeff[(i, j)] exists, otherwise -s_coeff[(j, i)][k] if s_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
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 vector v.

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 coefficient c.

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