# Finite Dimensional Nilpotent Lie Algebras With Basis#

AUTHORS:

• Eero Hakavuori (2018-08-16): initial version

class sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis.FiniteDimensionalNilpotentLieAlgebrasWithBasis(base_category)[source]#

Category of finite dimensional nilpotent Lie algebras with basis.

class ParentMethods[source]#

Bases: `object`

is_nilpotent()[source]#

Return `True` since `self` is nilpotent.

EXAMPLES:

```sage: L = LieAlgebra(QQ, {('x','y'): {'z': 1}}, nilpotent=True)         # needs sage.combinat sage.modules
sage: L.is_nilpotent()                                                  # needs sage.combinat sage.modules
True
```
```>>> from sage.all import *
>>> L = LieAlgebra(QQ, {('x','y'): {'z': Integer(1)}}, nilpotent=True)         # needs sage.combinat sage.modules
>>> L.is_nilpotent()                                                  # needs sage.combinat sage.modules
True
```
lie_group(name='G', **kwds)[source]#

Return the Lie group associated to `self`.

INPUT:

• `name` – string (default: `'G'`); the name (symbol) given to the Lie group

EXAMPLES:

We define the Heisenberg group:

```sage: L = lie_algebras.Heisenberg(QQ, 1)                                # needs sage.combinat sage.modules
sage: G = L.lie_group('G'); G                                           # needs sage.combinat sage.modules sage.symbolic
Lie group G of Heisenberg algebra of rank 1 over Rational Field
```
```>>> from sage.all import *
>>> L = lie_algebras.Heisenberg(QQ, Integer(1))                                # needs sage.combinat sage.modules
>>> G = L.lie_group('G'); G                                           # needs sage.combinat sage.modules sage.symbolic
Lie group G of Heisenberg algebra of rank 1 over Rational Field
```

We test multiplying elements of the group:

```sage: # needs sage.combinat sage.modules sage.symbolic
sage: p, q, z = L.basis()
sage: g = G.exp(p); g
exp(p1)
sage: h = G.exp(q); h
exp(q1)
sage: g * h
exp(p1 + q1 + 1/2*z)
```
```>>> from sage.all import *
>>> # needs sage.combinat sage.modules sage.symbolic
>>> p, q, z = L.basis()
>>> g = G.exp(p); g
exp(p1)
>>> h = G.exp(q); h
exp(q1)
>>> g * h
exp(p1 + q1 + 1/2*z)
```

We extend an element of the Lie algebra to a left-invariant vector field:

```sage: X = G.left_invariant_extension(2*p + 3*q, name='X'); X            # needs sage.combinat sage.modules sage.symbolic
Vector field X on the Lie group G of
Heisenberg algebra of rank 1 over Rational Field
sage: X.at(G.one()).display()                                           # needs sage.combinat sage.modules sage.symbolic
X = 2 ∂/∂x_0 + 3 ∂/∂x_1
sage: X.display()                                                       # needs sage.combinat sage.modules sage.symbolic
X = 2 ∂/∂x_0 + 3 ∂/∂x_1 + (3/2*x_0 - x_1) ∂/∂x_2
```
```>>> from sage.all import *
>>> X = G.left_invariant_extension(Integer(2)*p + Integer(3)*q, name='X'); X            # needs sage.combinat sage.modules sage.symbolic
Vector field X on the Lie group G of
Heisenberg algebra of rank 1 over Rational Field
>>> X.at(G.one()).display()                                           # needs sage.combinat sage.modules sage.symbolic
X = 2 ∂/∂x_0 + 3 ∂/∂x_1
>>> X.display()                                                       # needs sage.combinat sage.modules sage.symbolic
X = 2 ∂/∂x_0 + 3 ∂/∂x_1 + (3/2*x_0 - x_1) ∂/∂x_2
```
step()[source]#

Return the nilpotency step of `self`.

EXAMPLES:

```sage: # needs sage.combinat sage.modules
sage: L = LieAlgebra(QQ, {('X','Y'): {'Z': 1}}, nilpotent=True)
sage: L.step()
2
sage: sc = {('X','Y'): {'Z': 1}, ('X','Z'): {'W': 1}}
sage: LieAlgebra(QQ, sc, nilpotent=True).step()
3
```
```>>> from sage.all import *
>>> # needs sage.combinat sage.modules
>>> L = LieAlgebra(QQ, {('X','Y'): {'Z': Integer(1)}}, nilpotent=True)
>>> L.step()
2
>>> sc = {('X','Y'): {'Z': Integer(1)}, ('X','Z'): {'W': Integer(1)}}
>>> LieAlgebra(QQ, sc, nilpotent=True).step()
3
```