Lesson 1: Creating Lie Algebras - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


LieAlgebra Lessons

 

Lesson 1: Creating Lie Algebras

 

 

Overview

Construct a Lie algebra from its structure equations

Construct an abstract Lie algebra from a matrix Lie algebra

Construct an abstract Lie algebra from a Lie algebra of vector fields

Construct a Lie algebra by a change of basis in an existing Lie algebra

Construct a Lie algebra from a subalgebra of a Lie algebra

Using the DiffererentialGeometry Library to create a Lie algebra

DGsetup

Exercises

Overview

 

Lie algebras arise in many different ways.  In the LieAlgebras package, the command LieAlgebraData is used to convert the different ways of defining a Lie algebra into a common format, called a Lie algebra data structure.  Once this data structure has been created, the Lie algebra can be initialized with the DGsetup program.  This initialization process stores information about the Lie algebra in memory so that calculations can be performed with this Lie algebra.  Many Lie algebras can be initialized within a single Maple session.

 

In this lesson, you will learn to create a Lie algebra in DifferentialGeometry

– 

from its structure equations.

– 

from a matrix algebra.

– 

from a Lie algebra of vector fields.

– 

from a subalgebra of an existing Lie algebra.

– 

from a DifferentialGeometry library.

 

You will also learn to do the following:

– 

Initialize a Lie algebra and specify the labels for a basis of the Lie algebra.

– 

View the multiplication table for a Lie algebra.

 

Construct a Lie algebra from its structure equations

 

with(DifferentialGeometry): with(LieAlgebras):

 

To construct a Lie algebra from its structure equations, list the structure equations for a Lie algebra you wish to analyze using a set of unassigned names, in this example, [x1, x2, x3].  Only the non-zero bracket relations need be given.

StructureEquations := [[x1, x2] = x3, [x3, x1] = - x2, [x2, x3] = x1];

StructureEquationsx1,x2=x3,x3,x1=x2,x2,x3=x1

(2.1)

 

Now pass this information to LieAlgebraData.

L := LieAlgebraData(StructureEquations, [x1, x2, x3], Alg1);

Le1,e2=e3,e1,e3=e2,e2,e3=e1

(2.2)

 

Take a quick look at the internal representation of the Lie algebra data structure L. This data structure encodes the name of the algebra, Alg1, the dimension 3, and the non-zero structure constants.  For example, the list [[1, 2, 3], 1] indicates that the Lie bracket of e1 and e2 has a component of e3 and the coefficient of that component is 1.

lprint(L);

_DG([["LieAlgebra", Alg1, [3]], [[[1, 2, 3], 1], [[1, 3, 2], 1], [[2, 3, 1], 1]]])

 

Now initialize the Lie algebra Alg1.  Use the MultiplicationTable command to view the structure equations of the Lie algebra in various formats.

DGsetup(L);

Lie algebra: Alg1

(2.3)
Alg1 > 

MultiplicationTable("LieTable");

Alg1 > 

MultiplicationTable("ExteriorDerivative");

dθ1=θ2`^`θ3

dθ2=θ1`^`θ3

dθ3=θ1`^`θ2

(2.4)

 

Construct an abstract Lie algebra from a matrix Lie algebra

 

A vector space M of matrices define a matrix Lie algebra if it is closed with respect to the commutator bracket [a,b] = a*b - b*a, where a and b are matrices in M.  The command LieAlgebraData will compute the commutators of a given list M of matrices, check that each commutator is a linear combination of the elements of M, and return the resulting Lie algebra data structure.

 

Alg1 > 

with(DifferentialGeometry): with(LieAlgebras):

 

Define a basis for the vector space of 2x2 trace-free matrices.

Alg1 > 

M := [Matrix([[1, 0], [0, -1]]), Matrix([[0, 1], [0, 0]]), Matrix([[0, 0], [1, 0]])];

 

Check that the 2x2 trace-free matrices form a Lie algebra and calculate the structure equations.

L := LieAlgebraData(M, Alg2);

e1,e2=2e2,e1,e3=2e3,e2,e3=e1

(3.1)

 

To perform subsequent computations with the Lie algebra Alg2, pass the Lie algebra data structure L to DGsetup.

 

Construct an abstract Lie algebra from a Lie algebra of vector fields

 

A list Gamma of independent (over the real numbers) vector fields defines a Lie algebra if for each pair of vectors X, Y in Gamma, the Lie bracket [X,Y] is a constant coefficient linear combination of vector fields in Gamma.  The command LieAlgebraData will compute the Lie brackets of a given list Gamma of vector fields, check that each bracket is a (constant) linear combination of the elements of Gamma, and return the resulting Lie algebra data structure.

Alg1 > 

with(DifferentialGeometry): with(LieAlgebras):

 

Initialize a 2 dimensional manifold N.

DGsetup([x, y], N);

frame name: N

(4.1)

 

Define a list of vector fields.

N > 

Gamma := evalDG([D_x, D_y, x*D_x, y*D_x, x*D_y, y*D_y]);

ΓD_x,D_y,xD_x,yD_x,xD_y,yD_y

(4.2)

 

Check that the list of vector fields Gamma defines a Lie algebra and calculate the structure equations.

N > 

L := LieAlgebraData(Gamma, Alg3);

e1,e3=e1,e1,e5=e2,e2,e4=e1,e2,e6=e2,e3,e4=e4,e3,e5=e5,e4,e5=e3+e6,e4,e6=e4,e5,e6=e5

(4.3)

 

To perform subsequent computations with the Lie algebra Alg3, pass the Lie algebra data structure L to DGsetup.

 

Construct a Lie algebra by a change of basis in an existing Lie algebra

 

with(DifferentialGeometry): with(LieAlgebras):

 

Define a Lie algebra algebra data structure and initialize the Lie algebra.

L1 := _DG([["LieAlgebra", Alg1, [4]], [[[2, 3, 1], 1], [[1, 4, 1], 2], [[2, 4, 2], 1], [[3, 4, 2], 1], [[3, 4, 3], 1]]]);

L1e1,e4=2e1,e2,e3=e1,e2,e4=e2,e3,e4=e2+e3

(5.1)

DGsetup(L1);

Lie algebra: Alg1

(5.2)

 

Define a new basis for the Lie algebra Alg1.

Alg1 > 

B := evalDG([e1 + e3, e4, e2 + e4, e3]);

Be1+e3,e4,e2+e4,e3

(5.3)

 

Calculate the structure constants for the Lie algebra Alg1 with respect to the basis B.

Alg1 > 

L2, M := LieAlgebraData(B, Alg2, "Matrix");

 

The first item returned by LieAlgebraData is the structure equations for Alg1 with respect to the basis B.  This give us another Lie algebra which we have designated as Alg2.

Alg1 > 

DGsetup(L2);

Lie algebra: Alg2

(5.4)

 

Of course, the Lie algebras Alg1 and Alg2 are isomorphic.  The second item returned by LieAlgebraData is a matrix defining an isomorphism from Alg2 to Alg1.  We can check this with the Query command.

Alg2 > 

Query(Alg2, Alg1, M, "Homomorphism");

true

(5.5)

 

Construct a Lie algebra from a subalgebra of a Lie algebra

 

Alg1 > 

with(DifferentialGeometry): with(LieAlgebras):

 

Define a Lie algebra algebra data structure and initialize the Lie algebra.

L1 := _DG([["LieAlgebra", Alg1, [4]], [[[2, 3, 1], 1], [[1, 4, 1], 2], [[2, 4, 2], 1], [[3, 4, 2], 1], [[3, 4, 3], 1]]]);

L1e1,e4=2e1,e2,e3=e1,e2,e4=e2,e3,e4=e2+e3

(6.1)
Alg1 > 

DGsetup(L1);

Lie algebra: Alg1

(6.2)

 

We check that the list of vectors S define a subalgebra of Alg1.

Alg1 > 

S := [e1, e2, e3];

Se1,e2,e3

(6.3)
Alg1 > 

Query(S, "Subalgebra");

true

(6.4)

 

We now create the Lie algebra data structure L4 which can then be used to initialize the subalgebra S as Lie algebra Alg4 in its own right.

Alg1 > 

L4 := LieAlgebraData(S, Alg4);

L4e2,e3=e1

(6.5)

 

Using the DiffererentialGeometry Library to create a Lie algebra

 

The DifferentialGeometry subpackage Library contains extensive tables of Lie algebras taken from the mathematics and mathematical physics literature.

 

The command References contain a list of the papers whose results are currently available in the Library.

 

Alg1 > 

with(DifferentialGeometry): with(LieAlgebras): with(Library):

References(verbose);

 

Gong, 1

         Classification of Nilpotent Lie Algebras of Dimension 7( Over Algebraically Closed Fields and R)

         PhD. Thesis,  University of Waterloo (1998)

 

 

Gonzalez-Lopez, 1

         Lie algebras of vector fields in the real plane (with Kamran and Olver)

         Proc. London Math Soc. Vol 64 (1992), 339--368

 

 

Kamke, 1

          Differentialgleichungen

          Chelsa Publ. Co. (1947)

 

Mubarakzyanov, 1

         Lie algebras of dimmensions 3, 4

         Izv. Vyssh. Uchebn. Zaved. Math 34(1963) 99.

 

Mubarakzyanov, 2

         Lie algebras of dimension 5

         Izv. Vyssh. Uchebn. Zaved. Math 34(1963) 99.

 

Mubarakzyanov, 3

         Lie algebras of dimension 6

         Izv. Vyssh. Uchebn. Zaved. Math 35(1963) 104.

 

Olver, 1:

         Equivalence, Invariants and Symmetry, 472--473

 

Petrov, 1:

         Einstein Spaces

 

Turkowski, 1:

         Low dimensional real Lie algebras

         JMP(29), 1990, 2139--2144

 

Turkowski, 2

         Solvable Lie Algebras of dimension six

         JMP(31), 1990, 1344--1350

 

Winternitz, 1:

         Invariants of real low dimensional Lie algebras, (with Patera, Sharp and Zassenhaus)

         JMP vol 17, No 6, June 1976, 966--994

 

Gong,1,Gonzalez-Lopez,1,Kamke,1,Morozov,1,Mubarakyzanov,1,Mubarakyzanov,2,Mubarakyzanov,3,Olver,1,Petrov,1,Turkowski,1,Turkowski,2,USU,2,USU,2D,Winternitz,1

(7.1)

 

The Browse command is used first to find the indices for each table in the Library and, second, to display the selected entries in the table.

L := Browse("Winternitz", 1);

L3,0,3,1,3,2,3,3,3,4,3,5,3,6,3,7,3,8,3,9,4,0,4,1,4,2,4,3,4,4,4,5,4,6,4,7,4,8,4,9,4,10,4,11,4,12,5,0,5,1,5,2,5,3,5,4,5,5,5,6,5,7,5,8,5,9,5,10,5,11,5,12,5,13,5,14,5,15,5,16,5,17,5,18,5,19,5,20,5,21,5,22,5,23,5,24,5,25,5,26,5,27,5,28,5,29,5,30,5,31,5,32,5,33,5,34,5,35,5,36,5,37,5,38,5,39,5,40,6,1,6,2,6,3,6,4,6,5,6,6,6,7,6,8,6,9,6,10,6,11,6,12,6,13,6,14,6,15,6,16,6,17,6,18,6,19,6,20,6,21,6,22

(7.2)

Browse("Winternitz", 1, L[11 .. 15]);

Winternitz,1,4,0

___________________

Winternitz,1,4,1

e2,e4=e1,e3,e4=e2

___________________

Winternitz,1,4,2

e1,e4=ae1,e2,e4=e2,e3,e4=e2+e3

___________________

Winternitz,1,4,3

e1,e4=e1,e3,e4=e2

___________________

Winternitz,1,4,4

e1,e4=e1,e2,e4=e1+e2,e3,e4=e2+e3

___________________

(7.3)

 

The Retrieve command is then used to obtain the Lie algebra data structure for a given algebra.  The output of Retrieve is passed to the DGsetup command in order to initialize the Lie algebra.

L := Retrieve("Winternitz", 1, [4, 4], Alg1);

Le1,e4=e1,e2,e4=e1+e2,e3,e4=e2+e3

(7.4)

DGsetup(L);

Lie algebra: Alg1

(7.5)

 

DGsetup

 

The command DGsetup (in the DifferentialGeometry package) is used to store the structure equations for a Lie algebra in memory.  These structure equations can be accessed at any time during the Maple session.

 

The default labels for the basis elements of a Lie algebra are e1, e2, e3, ....  The default labels for the basis elements of the dual of the Lie algebra are theta1, theta2, theta3, ....

 

You may change these labels during execution of the DGsetup command by specifying either the `kernel` letter or by specifying a full list of label names.  As always, these names must be unassigned Maple names.

 

We use the Lie algebra of 2x2 trace-free matrices (sl2) to illustrate these features of DGsetup.

Alg1 > 

with(DifferentialGeometry): with(LieAlgebras):

Alg1 > 

M := [Matrix([[1, 0], [0, -1]]), Matrix([[0, 1], [0, 0]]), Matrix([[0, 0], [1, 0]])];

Alg1 > 

L := LieAlgebraData(M, Alg1);

Le1,e2=2e2,e1,e3=2e3,e2,e3=e1

(8.1)

 

Example 1.  Initialize the Lie algebra Alg1 and label the basis elements E1, E2, E3, epsilon1, epsilon2, epsilon3.

Alg1 > 

DGsetup(L, [E], [epsilon]);

Lie algebra: Alg1

(8.2)
Alg1 > 

MultiplicationTable("LieTable");

Alg1 > 

MultiplicationTable("ExteriorDerivative");

dε1=ε2`^`ε3

dε2=2ε1`^`ε2

dε3=2ε1`^`ε3

(8.3)

 

Example 2.  Initialize the Lie algebra Alg1 and label the basis elements X, Y, Z, alpha, beta, sigma.

Alg1 > 

DGsetup(L, [X, Y, Z], [alpha, beta, sigma]);

Lie algebra: Alg1

(8.4)
Alg1 > 

MultiplicationTable("LieTable");

Alg1 > 

MultiplicationTable("ExteriorDerivative");

dα=β`^`σ

dβ=2α`^`β

dσ=2α`^`σ

(8.5)

 

Exercises

Exercise 1

 

Initialize the 5 dimensional Lie algebra Lie1 with structure equations [e2, e4] = e1, [e3, e5] = e1.  Display the multiplication table.

 

Alg1 > 

with(DifferentialGeometry): with(LieAlgebras):

 

Solution

 

Remember that unassigned names must be used here.

Alg1 > 

Eq := [[x2, x4] = x1, [x3, x5] = x1];

Eqx2,x4=x1,x3,x5=x1

(9.1.1.1)
Alg1 > 

L := LieAlgebraData(Eq, [x1, x2, x3, x4, x5], Lie1);

Le2,e4=e1,e3,e5=e1

(9.1.1.2)
Alg1 > 

DGsetup(L);

Lie algebra: Lie1

(9.1.1.3)
Lie1 > 

MultiplicationTable("LieTable");

Exercise 2

 

Initialize the 3 dimensional Lie algebra of 2x2 upper triangular matrices.  Call the algebra Upper.

Use the Query command to verify that this Lie algebra is solvable.

 

Lie1 > 

with(DifferentialGeometry): with(LieAlgebras):

 

Solution

 

M := map(Matrix, [[[1, 0], [0, 0]], [[0, 1], [0, 0]], [[0, 0], [0, 1]]]);

Lie1 > 

L := LieAlgebraData(M, Upper);

Le1,e2=e2,e2,e3=e2

(9.2.1.1)
Lie1 > 

DGsetup(L);

Lie algebra: Upper

(9.2.1.2)
Upper > 

Query("Solvable");

true

(9.2.1.3)

Exercise 3

 

[i]  Define the 6 vector fields in Euclidean 3 space E3 (with coordinates [x, y, z]) whose flows are translations in the x, y, and z directions and rotations about the x, y, and z axes.  Call the Lie algebra euc.  Check that these vector fields form a Lie algebra.

[ii]  Initialize this Lie algebra and use a basis T1, T2, T3, R1, R2, R3, where the T's are translations and the R's are rotations.

[iii]  Use the LeviDecomposition command to show that the radical of euc is [T1, T2, T3] and that a semisimple complement to the radical is [R1, R2, R3].

 

Upper > 

with(DifferentialGeometry): with(LieAlgebras):

 

Solution

 

Part [i]

Upper > 

DGsetup([x, y, z], E3):

E3 > 

Gamma := evalDG([D_x, D_y, D_z, y*D_z - z*D_y, x*D_z - z*D_x, x*D_y - y*D_x]);

ΓD_x,D_y,D_z,zD_y+yD_z,zD_x+xD_z,yD_x+xD_y

(9.3.1.1)
E3 > 

L := LieAlgebraData(Gamma, euc3);

Le1,e5=e3,e1,e6=e2,e2,e4=e3,e2,e6=e1,e3,e4=e2,e3,e5=e1,e4,e5=e6,e4,e6=e5,e5,e6=e4

(9.3.1.2)

[If the vector fields Gamma do not form a Lie algebra, the empty list is returned.]

 

Part [ii]

E3 > 

DGsetup(L, [T1, T2, T3, R1, R2, R3], [theta]);

Lie algebra: euc3

(9.3.1.3)
euc3 > 

MultiplicationTable("LieTable");

 

Part [iii]  The LeviDecomposition procedure returns a list with two lists of vectors.  The first list is a basis for the radical and the second list is a semisimple complement to the radical.

euc3 > 

LD := LeviDecomposition();

LDT1,T2,T3,R1,R2,R3

(9.3.1.4)

Exercise 4

 

[i]  The paper Solvable Lie Algebras of dimension six by P. Turkowski (JMP(31), 1990) contains a complete list of all 6 dimensional Lie algebras with nilradicals of dimensions 3, 4, and 5.  Retrieve the first and last Lie algebras in Turkwoski's classification and initialize.

[ii]  Use the command Nilradical to find the nilradical of these two Lie algebras.

 

euc3 > 

with(DifferentialGeometry): with(LieAlgebras): with(Library):

 

Solution

 

We use the References command to find that the paper in question is referred to in the DifferentialGeometry library as "Turkowski", 2.

References(verbose);

 

Gong, 1

         Classification of Nilpotent Lie Algebras of Dimension 7( Over Algebraically Closed Fields and R)

         PhD. Thesis,  University of Waterloo (1998)

 

 

Gonzalez-Lopez, 1

         Lie algebras of vector fields in the real plane (with Kamran and Olver)

         Proc. London Math Soc. Vol 64 (1992), 339--368

 

 

Kamke, 1

          Differentialgleichungen

          Chelsa Publ. Co. (1947)

 

Mubarakzyanov, 1

         Lie algebras of dimmensions 3, 4

         Izv. Vyssh. Uchebn. Zaved. Math 34(1963) 99.

 

Mubarakzyanov, 2

         Lie algebras of dimension 5

         Izv. Vyssh. Uchebn. Zaved. Math 34(1963) 99.

 

Mubarakzyanov, 3

         Lie algebras of dimension 6

         Izv. Vyssh. Uchebn. Zaved. Math 35(1963) 104.

 

Olver, 1:

         Equivalence, Invariants and Symmetry, 472--473

 

Petrov, 1:

         Einstein Spaces

 

Turkowski, 1:

         Low dimensional real Lie algebras

         JMP(29), 1990, 2139--2144

 

Turkowski, 2

         Solvable Lie Algebras of dimension six

         JMP(31), 1990, 1344--1350

 

Winternitz, 1:

         Invariants of real low dimensional Lie algebras, (with Patera, Sharp and Zassenhaus)

         JMP vol 17, No 6, June 1976, 966--994

 

Gong,1,Gonzalez-Lopez,1,Kamke,1,Morozov,1,Mubarakyzanov,1,Mubarakyzanov,2,Mubarakyzanov,3,Olver,1,Petrov,1,Turkowski,1,Turkowski,2,USU,2,USU,2D,Winternitz,1

(9.4.1.1)

 

Next, we find the indices for the "Turkowski", 2 table of Lie algebras.

euc3 > 

Indices := Browse("Turkowski", 2);

Indices6,1,6,2,6,3,6,4,6,5,6,6,6,7,6,8,6,9,6,10,6,11,6,12,6,13,6,14,6,15,6,16,6,17,6,18,6,19,6,20,6,21,6,22,6,23,6,24,6,25,6,26,6,27,6,28,6,29,6,30,6,31,6,32,6,33,6,34,6,35,6,36,6,37,6,38,6,39,6,40

(9.4.1.2)

 

Retrieve the first and last Lie algebras in the table.  The second and third elements in L1 and L2 given the labels for the basis of the Lie algebras to match the notation found in the paper.

euc3 > 

L1 := Retrieve("Turkowski", 2, [6, 1], Turk1);

L1e1,e3=αe3,e1,e4=γe4,e1,e6=e6,e2,e3=βe3,e2,e4=δe4,e2,e5=e5,x1,x2,n1,n2,n3,n4,θ

(9.4.1.3)
euc3 > 

L2 := Retrieve("Turkowski", 2, [6, 40], Turk40);

L2e1,e2=e3,e1,e4=e5,e1,e5=e4,e2,e6=e6,e4,e5=e3,x1,x2,n1,n2,n3,n4,θ

(9.4.1.4)

 

Initialize each Lie algebra and compute the nilradicals.

euc3 > 

DGsetup(L1);

Lie algebra: Turk1

(9.4.1.5)
Turk1 > 

Nilradical();

n1,n2,n3,n4

(9.4.1.6)
Turk1 > 

DGsetup(L2);

Lie algebra: Turk40

(9.4.1.7)
Turk40 > 

Nilradical();

n1,n2,n3,n4

(9.4.1.8)