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
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.
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];
StructureEquations ≔ x1,x2=x3,x3,x1=−x2,x2,x3=x1
Now pass this information to LieAlgebraData.
L := LieAlgebraData(StructureEquations, [x1, x2, x3], Alg1);
L ≔ e1,e2=e3,e1,e3=e2,e2,e3=e1
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
MultiplicationTable("LieTable");
MultiplicationTable("ExteriorDerivative");
d⁡θ1=−θ2⁢`^`⁢θ3
d⁡θ2=−θ1⁢`^`⁢θ3
d⁡θ3=−θ1⁢`^`⁢θ2
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.
Define a basis for the vector space of 2x2 trace-free matrices.
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=2⁢e2,e1,e3=−2⁢e3,e2,e3=e1
To perform subsequent computations with the Lie algebra Alg2, pass the Lie algebra data structure L to DGsetup.
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.
Initialize a 2 dimensional manifold N.
DGsetup([x, y], N);
frame name: N
Define a list of vector fields.
Gamma := evalDG([D_x, D_y, x*D_x, y*D_x, x*D_y, y*D_y]);
Γ ≔ D_x,D_y,x⁢D_x,y⁢D_x,x⁢D_y,y⁢D_y
Check that the list of vector fields Gamma defines a Lie algebra and calculate the structure equations.
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
To perform subsequent computations with the Lie algebra Alg3, pass the Lie algebra data structure L to DGsetup.
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]]]);
L1 ≔ e1,e4=2⁢e1,e2,e3=e1,e2,e4=e2,e3,e4=e2+e3
DGsetup(L1);
Define a new basis for the Lie algebra Alg1.
B := evalDG([e1 + e3, e4, e2 + e4, e3]);
B ≔ e1+e3,e4,e2+e4,e3
Calculate the structure constants for the Lie algebra Alg1 with respect to the basis B.
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.
DGsetup(L2);
Lie algebra: Alg2
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.
Query(Alg2, Alg1, M, "Homomorphism");
true
We check that the list of vectors S define a subalgebra of Alg1.
S := [e1, e2, e3];
S ≔ e1,e2,e3
Query(S, "Subalgebra");
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.
L4 := LieAlgebraData(S, Alg4);
L4 ≔ e2,e3=e1
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.
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
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
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);
L ≔ 3,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
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=a⁢e1,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
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);
L ≔ e1,e4=e1,e2,e4=e1+e2,e3,e4=e2+e3
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.
L := LieAlgebraData(M, Alg1);
L ≔ e1,e2=2⁢e2,e1,e3=−2⁢e3,e2,e3=e1
Example 1. Initialize the Lie algebra Alg1 and label the basis elements E1, E2, E3, epsilon1, epsilon2, epsilon3.
DGsetup(L, [E], [epsilon]);
d⁡ε1=−ε2⁢`^`⁢ε3
d⁡ε2=−2⁢ε1⁢`^`⁢ε2
d⁡ε3=2⁢ε1⁢`^`⁢ε3
Example 2. Initialize the Lie algebra Alg1 and label the basis elements X, Y, Z, alpha, beta, sigma.
DGsetup(L, [X, Y, Z], [alpha, beta, sigma]);
d⁡α=−β⁢`^`⁢σ
d⁡β=−2⁢α⁢`^`⁢β
d⁡σ=2⁢α⁢`^`⁢σ
Exercise 1
Initialize the 5 dimensional Lie algebra Lie1 with structure equations [e2, e4] = e1, [e3, e5] = e1. Display the multiplication table.
Solution
Remember that unassigned names must be used here.
Eq := [[x2, x4] = x1, [x3, x5] = x1];
Eq ≔ x2,x4=x1,x3,x5=x1
L := LieAlgebraData(Eq, [x1, x2, x3, x4, x5], Lie1);
L ≔ e2,e4=e1,e3,e5=e1
Lie algebra: Lie1
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.
M := map(Matrix, [[[1, 0], [0, 0]], [[0, 1], [0, 0]], [[0, 0], [0, 1]]]);
L := LieAlgebraData(M, Upper);
L ≔ e1,e2=e2,e2,e3=e2
Lie algebra: Upper
Query("Solvable");
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].
Part [i]
DGsetup([x, y, z], 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,−z⁢D_y+y⁢D_z,−z⁢D_x+x⁢D_z,−y⁢D_x+x⁢D_y
L := LieAlgebraData(Gamma, euc3);
L ≔ e1,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
[If the vector fields Gamma do not form a Lie algebra, the empty list is returned.]
Part [ii]
DGsetup(L, [T1, T2, T3, R1, R2, R3], [theta]);
Lie algebra: euc3
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.
LD := LeviDecomposition();
LD ≔ T1,T2,T3,R1,R2,R3
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.
We use the References command to find that the paper in question is referred to in the DifferentialGeometry library as "Turkowski", 2.
Next, we find the indices for the "Turkowski", 2 table of Lie algebras.
Indices := Browse("Turkowski", 2);
Indices ≔ 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,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
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.
L1 := Retrieve("Turkowski", 2, [6, 1], Turk1);
L1 ≔ e1,e3=α⁢e3,e1,e4=γ⁢e4,e1,e6=e6,e2,e3=β⁢e3,e2,e4=δ⁢e4,e2,e5=e5,x1,x2,n1,n2,n3,n4,θ
L2 := Retrieve("Turkowski", 2, [6, 40], Turk40);
L2 ≔ e1,e2=−e3,e1,e4=e5,e1,e5=−e4,e2,e6=e6,e4,e5=−e3,x1,x2,n1,n2,n3,n4,θ
Initialize each Lie algebra and compute the nilradicals.
Lie algebra: Turk1
Nilradical();
n1,n2,n3,n4
Lie algebra: Turk40
Download Help Document