Lie Algebras Given By Structure Coefficients

AUTHORS:

  • Travis Scrimshaw (2013-05-03): Initial version
sage.algebras.lie_algebras.structure_coefficients.LieAlgebraWithStructureCoefficients

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