# Examples of a finite dimensional Lie algebra with basis#

class sage.categories.examples.finite_dimensional_lie_algebras_with_basis.AbelianLieAlgebra(R, n=None, M=None, ambient=None)[source]#

An example of a finite dimensional Lie algebra with basis: the abelian Lie algebra.

Let $$R$$ be a commutative ring, and $$M$$ an $$R$$-module. The abelian Lie algebra on $$M$$ is the $$R$$-Lie algebra obtained by endowing $$M$$ with the trivial Lie bracket ($$[a, b] = 0$$ for all $$a, b \in M$$).

This class illustrates a minimal implementation of a finite dimensional Lie algebra with basis.

INPUT:

• R – base ring

• n – (optional) a nonnegative integer (default: None)

• M – an $$R$$-module (default: the free $$R$$-module of rank n) to serve as the ground space for the Lie algebra

• ambient – (optional) a Lie algebra; if this is set, then the resulting Lie algebra is declared a Lie subalgebra of ambient

OUTPUT:

The abelian Lie algebra on $$M$$.

class Element(parent, value)[source]#

Bases: Element

Initialize self.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: a, b, c = L.lie_algebra_generators()
sage: TestSuite(a).run()

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> a, b, c = L.lie_algebra_generators()
>>> TestSuite(a).run()

lift()[source]#

Return the lift of self to the universal enveloping algebra.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: a, b, c = L.lie_algebra_generators()
sage: elt = 2*a + 2*b + 3*c
sage: elt.lift()                                                        # needs sage.combinat sage.libs.singular
2*b0 + 2*b1 + 3*b2

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> a, b, c = L.lie_algebra_generators()
>>> elt = Integer(2)*a + Integer(2)*b + Integer(3)*c
>>> elt.lift()                                                        # needs sage.combinat sage.libs.singular
2*b0 + 2*b1 + 3*b2

monomial_coefficients(copy=True)[source]#

Return the monomial coefficients of self.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: a, b, c = L.lie_algebra_generators()
sage: elt = 2*a + 2*b + 3*c
sage: elt.monomial_coefficients()
{0: 2, 1: 2, 2: 3}

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> a, b, c = L.lie_algebra_generators()
>>> elt = Integer(2)*a + Integer(2)*b + Integer(3)*c
>>> elt.monomial_coefficients()
{0: 2, 1: 2, 2: 3}

to_vector(order=None, sparse=False)[source]#

Return self as a vector in self.parent().module().

See the docstring of the latter method for the meaning of this.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: a, b, c = L.lie_algebra_generators()
sage: elt = 2*a + 2*b + 3*c
sage: elt.to_vector()
(2, 2, 3)

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> a, b, c = L.lie_algebra_generators()
>>> elt = Integer(2)*a + Integer(2)*b + Integer(3)*c
>>> elt.to_vector()
(2, 2, 3)

ambient()[source]#

Return the ambient Lie algebra of self.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: a, b, c = L.lie_algebra_generators()
sage: S = L.subalgebra([2*a+b, b + c])
sage: S.ambient() == L
True

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> a, b, c = L.lie_algebra_generators()
>>> S = L.subalgebra([Integer(2)*a+b, b + c])
>>> S.ambient() == L
True

basis()[source]#

Return the basis of self.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: L.basis()
Finite family {0: (1, 0, 0), 1: (0, 1, 0), 2: (0, 0, 1)}

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> L.basis()
Finite family {0: (1, 0, 0), 1: (0, 1, 0), 2: (0, 0, 1)}

basis_matrix()[source]#

Return the basis matrix of self.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: L.basis_matrix()
[1 0 0]
[0 1 0]
[0 0 1]

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> L.basis_matrix()
[1 0 0]
[0 1 0]
[0 0 1]

from_vector(v, order=None)[source]#

Return the element of self corresponding to the vector v in self.module().

Implement this if you implement module(); see the documentation of sage.categories.lie_algebras.LieAlgebras.module() for how this is to be done.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: u = L.from_vector(vector(QQ, (1, 0, 0))); u
(1, 0, 0)
sage: parent(u) is L
True

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> u = L.from_vector(vector(QQ, (Integer(1), Integer(0), Integer(0)))); u
(1, 0, 0)
>>> parent(u) is L
True

gens()[source]#

Return the generators of self.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: L.gens()
((1, 0, 0), (0, 1, 0), (0, 0, 1))

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> L.gens()
((1, 0, 0), (0, 1, 0), (0, 0, 1))

ideal(gens)[source]#

Return the Lie subalgebra of self generated by the elements of the iterable gens.

This currently requires the ground ring $$R$$ to be a field.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: a, b, c = L.lie_algebra_generators()
sage: L.subalgebra([2*a+b, b + c])
An example of a finite dimensional Lie algebra with basis:
the 2-dimensional abelian Lie algebra over Rational Field with
basis matrix:
[   1    0 -1/2]
[   0    1    1]

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> a, b, c = L.lie_algebra_generators()
>>> L.subalgebra([Integer(2)*a+b, b + c])
An example of a finite dimensional Lie algebra with basis:
the 2-dimensional abelian Lie algebra over Rational Field with
basis matrix:
[   1    0 -1/2]
[   0    1    1]

is_ideal(A)[source]#

Return if self is an ideal of the ambient space A.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: a, b, c = L.lie_algebra_generators()
sage: L.is_ideal(L)
True
sage: S1 = L.subalgebra([2*a+b, b + c])
sage: S1.is_ideal(L)
True
sage: S2 = L.subalgebra([2*a+b])
sage: S2.is_ideal(S1)
True
sage: S1.is_ideal(S2)
False

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> a, b, c = L.lie_algebra_generators()
>>> L.is_ideal(L)
True
>>> S1 = L.subalgebra([Integer(2)*a+b, b + c])
>>> S1.is_ideal(L)
True
>>> S2 = L.subalgebra([Integer(2)*a+b])
>>> S2.is_ideal(S1)
True
>>> S1.is_ideal(S2)
False


Return the set of leading monomials of the basis of self.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: a, b, c = L.lie_algebra_generators()
sage: I = L.ideal([2*a + b, b + c])
((1, 0, 0), (0, 1, 0))

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> a, b, c = L.lie_algebra_generators()
>>> I = L.ideal([Integer(2)*a + b, b + c])
((1, 0, 0), (0, 1, 0))

lie_algebra_generators()[source]#

Return the basis of self.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: L.basis()
Finite family {0: (1, 0, 0), 1: (0, 1, 0), 2: (0, 0, 1)}

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> L.basis()
Finite family {0: (1, 0, 0), 1: (0, 1, 0), 2: (0, 0, 1)}

lift(x)[source]#

Return the lift of self.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: a, b, c = L.gens()
sage: L.lift(a)
b0
sage: L.lift(b).parent() is L.universal_enveloping_algebra()
True

sage: I = L.ideal([a + 2*b, b + 3*c])
sage: I.lift(I.basis()[0])
(1, 0, -6)

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> a, b, c = L.gens()
>>> L.lift(a)
b0
>>> L.lift(b).parent() is L.universal_enveloping_algebra()
True

>>> I = L.ideal([a + Integer(2)*b, b + Integer(3)*c])
>>> I.lift(I.basis()[Integer(0)])
(1, 0, -6)

module()[source]#

Return an $$R$$-module which is isomorphic to the underlying $$R$$-module of self.

See sage.categories.lie_algebras.LieAlgebras.module() for an explanation.

In this particular example, this returns the module $$M$$ that was used to construct self.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: L.module()
Vector space of dimension 3 over Rational Field

sage: a, b, c = L.lie_algebra_generators()
sage: S = L.subalgebra([2*a+b, b + c])
sage: S.module()
Vector space of degree 3 and dimension 2 over Rational Field
Basis matrix:
[   1    0 -1/2]
[   0    1    1]

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> L.module()
Vector space of dimension 3 over Rational Field

>>> a, b, c = L.lie_algebra_generators()
>>> S = L.subalgebra([Integer(2)*a+b, b + c])
>>> S.module()
Vector space of degree 3 and dimension 2 over Rational Field
Basis matrix:
[   1    0 -1/2]
[   0    1    1]

subalgebra(gens)[source]#

Return the Lie subalgebra of self generated by the elements of the iterable gens.

This currently requires the ground ring $$R$$ to be a field.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: a, b, c = L.lie_algebra_generators()
sage: L.subalgebra([2*a+b, b + c])
An example of a finite dimensional Lie algebra with basis:
the 2-dimensional abelian Lie algebra over Rational Field with
basis matrix:
[   1    0 -1/2]
[   0    1    1]

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> a, b, c = L.lie_algebra_generators()
>>> L.subalgebra([Integer(2)*a+b, b + c])
An example of a finite dimensional Lie algebra with basis:
the 2-dimensional abelian Lie algebra over Rational Field with
basis matrix:
[   1    0 -1/2]
[   0    1    1]

universal_enveloping_algebra()[source]#

Return the universal enveloping algebra of self.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: L.universal_enveloping_algebra()
Noncommutative Multivariate Polynomial Ring in b0, b1, b2
over Rational Field, nc-relations: {}

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> L.universal_enveloping_algebra()
Noncommutative Multivariate Polynomial Ring in b0, b1, b2
over Rational Field, nc-relations: {}

zero()[source]#

Return the zero element.

EXAMPLES:

sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
sage: L.zero()
(0, 0, 0)

>>> from sage.all import *
>>> L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example()
>>> L.zero()
(0, 0, 0)

sage.categories.examples.finite_dimensional_lie_algebras_with_basis.Example[source]#

alias of AbelianLieAlgebra