Finite Dimensional Nilpotent Lie Algebras With Basis - Category Framework

Skip to content
Back to top
View this page
Edit this page

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

  Bases: `CategoryWithAxiom_over_base_ring`

  Category of finite dimensional nilpotent Lie algebras with basis.

  class ParentMethods

    Bases: `object`

    is_nilpotent()

      Return `True` since `self` is nilpotent.

      EXAMPLES:

      Sage

          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

      Python

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

      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

          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

      Python

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

          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)

      [Python]

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

          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

      Python

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

      See also

      `NilpotentLieGroup`

    step()

      Return the nilpotency step of `self`.

      EXAMPLES:

      Sage

          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

      Python

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