Free Lie Algebras#
AUTHORS:
Travis Scrimshaw (2013-05-03): Initial version
REFERENCES:
- class sage.algebras.lie_algebras.free_lie_algebra.FreeLieAlgebra(R, names, index_set)#
Bases:
sage.structure.parent.Parent
,sage.structure.unique_representation.UniqueRepresentation
The free Lie algebra of a set
.The free Lie algebra
of a set is the Lie algebra with generators where there are no other relations beyond the defining relations. This can be constructed as the free magmatic algebra quotiented by the ideal generated by .EXAMPLES:
We first construct the free Lie algebra in the Hall basis:
sage: L = LieAlgebra(QQ, 'x,y,z') sage: H = L.Hall() sage: x,y,z = H.gens() sage: h_elt = H([x, [y, z]]) + H([x - H([y, x]), H([x, z])]); h_elt [x, [x, z]] + [y, [x, z]] - [z, [x, y]] + [[x, y], [x, z]]
We can also use the Lyndon basis and go between the two:
sage: Lyn = L.Lyndon() sage: l_elt = Lyn([x, [y, z]]) + Lyn([x - Lyn([y, x]), Lyn([x, z])]); l_elt [x, [x, z]] + [[x, y], [x, z]] + [x, [y, z]] sage: Lyn(h_elt) == l_elt True sage: H(l_elt) == h_elt True
- class Hall(lie)#
Bases:
sage.algebras.lie_algebras.free_lie_algebra.FreeLieBasis_abstract
The free Lie algebra in the Hall basis.
The basis keys are objects of class
LieObject
, each of which is either aLieGenerator
(in degree ) or aGradedLieBracket
(in degree ).- graded_basis(k)#
Return the basis for the
k
-th graded piece ofself
.EXAMPLES:
sage: L = LieAlgebra(QQ, 'x,y,z') sage: H = L.Hall() sage: H.graded_basis(2) ([x, y], [x, z], [y, z]) sage: H.graded_basis(4) ([x, [x, [x, y]]], [x, [x, [x, z]]], [y, [x, [x, y]]], [y, [x, [x, z]]], [y, [y, [x, y]]], [y, [y, [x, z]]], [y, [y, [y, z]]], [z, [x, [x, y]]], [z, [x, [x, z]]], [z, [y, [x, y]]], [z, [y, [x, z]]], [z, [y, [y, z]]], [z, [z, [x, y]]], [z, [z, [x, z]]], [z, [z, [y, z]]], [[x, y], [x, z]], [[x, y], [y, z]], [[x, z], [y, z]])
- class Lyndon(lie)#
Bases:
sage.algebras.lie_algebras.free_lie_algebra.FreeLieBasis_abstract
The free Lie algebra in the Lyndon basis.
The basis keys are objects of class
LieObject
, each of which is either aLieGenerator
(in degree ) or aLyndonBracket
(in degree ).- graded_basis(k)#
Return the basis for the
k
-th graded piece ofself
.EXAMPLES:
sage: L = LieAlgebra(QQ, 'x', 3) sage: Lyn = L.Lyndon() sage: Lyn.graded_basis(1) (x0, x1, x2) sage: Lyn.graded_basis(2) ([x0, x1], [x0, x2], [x1, x2]) sage: Lyn.graded_basis(4) ([x0, [x0, [x0, x1]]], [x0, [x0, [x0, x2]]], [x0, [[x0, x1], x1]], [x0, [x0, [x1, x2]]], [x0, [[x0, x2], x1]], [x0, [[x0, x2], x2]], [[x0, x1], [x0, x2]], [[[x0, x1], x1], x1], [x0, [x1, [x1, x2]]], [[x0, [x1, x2]], x1], [x0, [[x1, x2], x2]], [[[x0, x2], x1], x1], [[x0, x2], [x1, x2]], [[[x0, x2], x2], x1], [[[x0, x2], x2], x2], [x1, [x1, [x1, x2]]], [x1, [[x1, x2], x2]], [[[x1, x2], x2], x2])
- pbw_basis(**kwds)#
Return the Poincare-Birkhoff-Witt basis corresponding to
self
.EXAMPLES:
sage: L = LieAlgebra(QQ, 'x,y,z', 3) sage: Lyn = L.Lyndon() sage: Lyn.pbw_basis() The Poincare-Birkhoff-Witt basis of Free Algebra on 3 generators (x, y, z) over Rational Field
- poincare_birkhoff_witt_basis(**kwds)#
Return the Poincare-Birkhoff-Witt basis corresponding to
self
.EXAMPLES:
sage: L = LieAlgebra(QQ, 'x,y,z', 3) sage: Lyn = L.Lyndon() sage: Lyn.pbw_basis() The Poincare-Birkhoff-Witt basis of Free Algebra on 3 generators (x, y, z) over Rational Field
- a_realization()#
Return a particular realization of
self
(the Lyndon basis).EXAMPLES:
sage: L.<x, y> = LieAlgebra(QQ) sage: L.a_realization() Free Lie algebra generated by (x, y) over Rational Field in the Lyndon basis
- gen(i)#
Return the
i
-th generator ofself
in the Lyndon basis.EXAMPLES:
sage: L.<x, y> = LieAlgebra(QQ) sage: L.gen(0) x sage: L.gen(1) y sage: L.gen(0).parent() Free Lie algebra generated by (x, y) over Rational Field in the Lyndon basis
- gens()#
Return the generators of
self
in the Lyndon basis.EXAMPLES:
sage: L.<x, y> = LieAlgebra(QQ) sage: L.gens() (x, y) sage: L.gens()[0].parent() Free Lie algebra generated by (x, y) over Rational Field in the Lyndon basis
- lie_algebra_generators()#
Return the Lie algebra generators of
self
in the Lyndon basis.EXAMPLES:
sage: L.<x, y> = LieAlgebra(QQ) sage: L.lie_algebra_generators() Finite family {'x': x, 'y': y} sage: L.lie_algebra_generators()['x'].parent() Free Lie algebra generated by (x, y) over Rational Field in the Lyndon basis
- class sage.algebras.lie_algebras.free_lie_algebra.FreeLieAlgebraBases(base)#
Bases:
sage.categories.realizations.Category_realization_of_parent
The category of bases of a free Lie algebra.
- super_categories()#
The super categories of
self
.EXAMPLES:
sage: from sage.algebras.lie_algebras.free_lie_algebra import FreeLieAlgebraBases sage: L.<x, y> = LieAlgebra(QQ) sage: bases = FreeLieAlgebraBases(L) sage: bases.super_categories() [Category of lie algebras with basis over Rational Field, Category of realizations of Free Lie algebra generated by (x, y) over Rational Field]
- class sage.algebras.lie_algebras.free_lie_algebra.FreeLieBasis_abstract(lie, basis_name)#
Bases:
sage.algebras.lie_algebras.lie_algebra.FinitelyGeneratedLieAlgebra
,sage.structure.indexed_generators.IndexedGenerators
,sage.misc.bindable_class.BindableClass
Abstract base class for all bases of a free Lie algebra.
- basis()#
Return the basis of
self
.EXAMPLES:
sage: L = LieAlgebra(QQ, 3, 'x') sage: L.Hall().basis() Disjoint union of Lazy family (graded basis(i))_{i in Positive integers}
- graded_basis(k)#
Return the basis for the
k
-th graded piece ofself
.EXAMPLES:
sage: H = LieAlgebra(QQ, 3, 'x').Hall() sage: H.graded_basis(2) ([x0, x1], [x0, x2], [x1, x2])
- graded_dimension(k)#
Return the dimension of the
k
-th graded piece ofself
.The
-th graded part of a free Lie algebra on generators has dimensionwhere
is the Mobius function.REFERENCES:
EXAMPLES:
sage: L = LieAlgebra(QQ, 'x', 3) sage: H = L.Hall() sage: [H.graded_dimension(i) for i in range(1, 11)] [3, 3, 8, 18, 48, 116, 312, 810, 2184, 5880] sage: H.graded_dimension(0) 0
- is_abelian()#
Return
True
if this is an abelian Lie algebra.EXAMPLES:
sage: L = LieAlgebra(QQ, 3, 'x') sage: L.is_abelian() False sage: L = LieAlgebra(QQ, 1, 'x') sage: L.is_abelian() True
- monomial(x)#
Return the monomial indexed by
x
.EXAMPLES:
sage: Lyn = LieAlgebra(QQ, 'x,y').Lyndon() sage: x = Lyn.monomial('x'); x x sage: x.parent() is Lyn True
- sage.algebras.lie_algebras.free_lie_algebra.is_lyndon(w)#
Modified form of
Word(w).is_lyndon()
which uses the default order (this will either be the natural integer order or lex order) and assumes the inputw
behaves like a nonempty list. This function here is designed for speed.EXAMPLES:
sage: from sage.algebras.lie_algebras.free_lie_algebra import is_lyndon sage: is_lyndon([1]) True sage: is_lyndon([1,3,1]) False sage: is_lyndon((2,2,3)) True sage: all(is_lyndon(x) for x in LyndonWords(3, 5)) True sage: all(is_lyndon(x) for x in LyndonWords(6, 4)) True