LieAlgebra Lessons
Lesson 7: Matrix Lie Algebras
Overview
The general linear Lie algebra and the Lie algebras of upper triangular and strictly upper triangular matrices
The special linear Lie algebra sl(3)
The orthogonal Lie algebras so(4,0) and so(3,1)
The Euclidean Lie algebra e(3)
The exceptional Lie algebra g2
The set of all nxn matrices with real entries define a Lie algebra with Lie bracket given by the matrix commutator [a, b] = ab - ba This Lie algebra is called the general linear Lie algebra and is customarily denoted by gl(n). Its dimension is n^2. In this lesson we will use the MatrixAlgebras command to create the general Lie algebra and some of its well-known and important subalgebras. You will learn to do the following.
Calculate the structure equations for the general Lie algebra gl(n) for small values of n.
Calculate the structure equations for the Lie algebra of all upper triangular matrices.
Calculate the structure equations for the Lie algebra of all strictly upper triangular matrices.
Calculate sl(3), the special linear Lie algebra, as a subalgebra of gl(3).
Calculate the orthogonal Lie algebras so(4,0) and so(3,1) as subalgebras of gl(4).
Calculate the Euclidean Lie algebra e(3) as a subalgebra of gl(4)
Calculate the exceptional Lie algebra g2 as a subalgebra of gl(7)
We shall initialize each of these Lie algebras and calculate some simple properties. Further computation of matrix algebras can be found in the DifferentialGeometry Tutorial ClassicalMatrixAlgebras.
with(DifferentialGeometry): with(LieAlgebras):
Example 1. We begin by using the MatrixAlgebras command to create the 4 dimensional Lie algebra gl(2) of all 2x2 matrices.
L, V, Omega := MatrixAlgebras("Full",2, gl2);
L,V,Ω ≔ e1,e2=e2,e1,e3=−e3,e2,e3=e1−e4,e2,e4=e2,e3,e4=−e3,e11,e12,e21,e22,ε11,ε12,ε21,ε22
The command returns a sequence of 3 objects. The first object L is the Lie algebra data structure for gl(2). As always, the structure equations for the Lie algebra data structure are displayed, using the generic labels e1, e2, e3, e4 for the vectors in the Lie algebra. The next output element V gives the labels that we shall use to denote the vectors in gl2 upon initialization with the command DGsetup. Here eij denotes the elementary matrix with a 1 in the i-th row and the j-th column. The last output element gives the labels that with be used for the 1-forms on the Lie algebra.
DGsetup(L, V, Omega);
Lie algebra: gl2
MultiplicationTable("LieTable");
We emphasize that the MatrixAlgebras program simply contains the general formulas for the bracket of the elementary matrices eij and ehk and does not calculate explicitly with matrices.
As a simple calculation we calculate the center of the Lie algebra gl2 -- as expected it contains just the identity matrix.
Center();
e11+e22
Example 2. Here is the 10 dimensional Lie algebra of 4x4 upper triangular matrices.
L, V, Omega := MatrixAlgebras("Upper",4, T4);
L,V,Ω ≔ e1,e2=e2,e1,e3=e3,e1,e4=e4,e2,e5=e2,e2,e6=e3,e2,e7=e4,e3,e8=e3,e3,e9=e4,e4,e10=e4,e5,e6=e6,e5,e7=e7,e6,e8=e6,e6,e9=e7,e7,e10=e7,e8,e9=e9,e9,e10=e9,e11,e12,e13,e14,e22,e23,e24,e33,e34,e44,ε11,ε12,ε13,ε14,ε22,ε23,ε24,ε33,ε34,ε44
Lie algebra: T4
To display the multiplication table we need to increase the rtablesize parameter (see interface)
interface(rtablesize = 13);
10
Series("Derived");
e11,e12,e13,e14,e22,e23,e24,e33,e34,e44,e12,e13,e14,e23,e24,e34,e13,e14,e24,
Note that the first term in the derived series (the derived algebra) consists of the 6 strictly upper triangular matrices. The fact that the last term in the derived series T4 is empty implies that the Lie algebra of 4x4 upper triangular matrices is solvable.
Query("Solvable");
true
Example 3. Here is the 10 dimensional Lie algebra of 5x5 strictly upper triangular matrices. This is a nilpotent Lie algebra.
L, V, Omega := MatrixAlgebras("StrictlyUpper",5, U5);
L,V,Ω ≔ e1,e5=e2,e1,e6=e3,e1,e7=e4,e2,e8=e3,e2,e9=e4,e3,e10=e4,e5,e8=e6,e5,e9=e7,e6,e10=e7,e8,e10=e9,e12,e13,e14,e15,e23,e24,e25,e34,e35,e45,ε12,ε13,ε14,ε15,ε23,ε24,ε25,ε34,ε35,ε45
Lie algebra: U5
The Lie algebras of upper triangular matrices are all nilpotent.
Query("Nilpotent");
We illustrate the fact that the upper series (Series) of a nilpotent Lie algebra g always stablizes at g.
Series("Upper");
e15,e25,e15,e14,e15,e14,e13,e35,e25,e24,e45,e35,e34,e25,e24,e23,e15,e14,e13,e12
The special linear Lie algebra sl(n) is defined as the subalgebra of gl(n) consisting of trace-free matrices. To calculate the elements of sl(n) with the MatrixAlgebras command we shall use the following observation.
Define a 3 dimensional space M with coordinates [x, y, z] and on M define a general linear vector field X . This is easily done with the a DifferentialGeometry extension of Maple's convert command.
DGsetup([x, y, z], M);
frame name: M
A:= Matrix([[a1, b1, c1], [a2 ,b2,c3], [a3, b3, c3]]);
X := convert(A, DGvector);
X ≔ a1⁢x+b1⁢y+c1⁢z⁢D_x+a2⁢x+b2⁢y+c3⁢z⁢D_y+a3⁢x+b3⁢y+c3⁢z⁢D_z
Now define the standard volume form on M and calculate the Lie derivative of this volume form with respect to X.
nu := evalDG(dx &w dy &w dz);
ν ≔ dx⁢`^`⁢dy⁢`^`⁢dz
LieDerivative(X, nu);
c3+b2+a1⁢dx⁢`^`⁢dy⁢`^`⁢dz
We see that nu is invariant with respect to X precisely when the matrix A is trace-free. In general sl(n) can be defined the subalgebra of gl(n) for which the
associated linear vector fields preserve the standard volume form. This is the approach taken by the MatrixAlgebras program. Here are the steps in detail.
Step 1. Define and initialize the ambient matrix algebra gl(3)
L1 := MatrixAlgebras("Full", 3, gl3);
L1 ≔ e1,e2=e2,e1,e3=e3,e1,e4=−e4,e1,e7=−e7,e2,e4=e1−e5,e2,e5=e2,e2,e6=e3,e2,e7=−e8,e3,e4=−e6,e3,e7=e1−e9,e3,e8=e2,e3,e9=e3,e4,e5=−e4,e4,e8=−e7,e5,e6=e6,e5,e8=−e8,e6,e7=e4,e6,e8=e5−e9,e6,e9=e6,e7,e9=−e7,e8,e9=−e8,e11,e12,e13,e21,e22,e23,e31,e32,e33,ε11,ε12,ε13,ε21,ε22,ε23,ε31,ε32,ε33
DGsetup(L1):
Step 2. Calculate sl(3) as a subalgebra of gl(3) -- note that each element of sl3_subalg is a trace-free matrix.
sl3_subalg := MatrixAlgebras("Subalgebra",gl3,[nu]);
sl3_subalg ≔ e11−e33,e12,e13,e21,e22−e33,e23,e31,e32
Step 3. Calculate the structure equations for sl(3) and initialize the result.
L2 := LieAlgebraData(sl3_subalg, sl3);
L2 ≔ e1,e2=e2,e1,e3=2⁢e3,e1,e4=−e4,e1,e6=e6,e1,e7=−2⁢e7,e1,e8=−e8,e2,e4=e1−e5,e2,e5=e2,e2,e6=e3,e2,e7=−e8,e3,e4=−e6,e3,e5=−e3,e3,e7=e1,e3,e8=e2,e4,e5=−e4,e4,e8=−e7,e5,e6=2⁢e6,e5,e7=−e7,e5,e8=−2⁢e8,e6,e7=e4,e6,e8=e5
DGsetup(L2);
Lie algebra: sl3
The Lie algebra sl(3) is semisimple:
Query("Semisimple");
Let g be an inner product on the vector space R^n with signature (p,q), p + q= n. The Lie algebra so(p,q) is the subalgebra of gl(n) consisting of nxn matrices a such that g(ax,y) + g(x,ay) =0(*) . In the case where g(x, y) = transpose(x)*y this condition implies that a is skew-symmetric, that is,
so(n) = sn(n,0) = {a in gl(n) such that transpose(a) + a =0} (**)
It we re-interprete the inner product g as a symmetric,rank 2 covariant tensor, then (*) becomes
LieDerivative(Z, g) =0 (***)
where, just as in the previous example, Z is the linear vector field corresponding to the matrix a.
We start by illustrating this last point.
DGsetup([w, x, y, z], M);
g := evalDG(dw &t dw + dx &t dx + dy &t dy + dz &t dz);
g ≔ dw⁢dw+dx⁢dx+dy⁢dy+dz⁢dz
A := Matrix([[a1, b1, c1, d1], [a2, b2, c2, d2], [a3, b3, c3, d3], [a4, b4, c4, d4]]);
Construct the linear vector field on M defined by the matrix A.
Z := convert(A, DGvector);
Z ≔ a1⁢w+b1⁢x+c1⁢y+d1⁢z⁢D_w+a2⁢w+b2⁢x+c2⁢y+d2⁢z⁢D_x+a3⁢w+b3⁢x+c3⁢y+d3⁢z⁢D_y+a4⁢w+b4⁢x+c4⁢y+d4⁢z⁢D_z
h := LieDerivative(Z, g);
h ≔ 2⁢a1⁢dw⁢dw+b1+a2⁢dw⁢dx+c1+a3⁢dw⁢dy+d1+a4⁢dw⁢dz+b1+a2⁢dx⁢dw+2⁢b2⁢dx⁢dx+b3+c2⁢dx⁢dy+b4+d2⁢dx⁢dz+c1+a3⁢dy⁢dw+b3+c2⁢dy⁢dx+2⁢c3⁢dy⁢dy+c4+d3⁢dy⁢dz+d1+a4⁢dz⁢dw+b4+d2⁢dz⁢dx+c4+d3⁢dz⁢dy+2⁢d4⁢dz⁢dz
Set h to zero, solve the resulting equations for the parameters of the matrix A and back substitute into A
Eq := Tools:-DGinfo(h, "CoefficientSet");
Eq ≔ 2⁢d4,b1+a2,c1+a3,c4+d3,b3+c2,2⁢b2,2⁢c3,2⁢a1,d1+a4,b4+d2
subs(solve(Eq, convert(A, set)), A);
These calculations illustrate the equivalence of conditions (**) and (***) for n = 4.
We are now ready to repeat the 3 steps using in the previous paragraph.
Step 1. Define and initialize the ambient matrix algebra gl(4)
L1 := MatrixAlgebras("Full", 4, gl4):
Step 2. Calculate so(4) as a subalgebra of gl(4) which preserves the metric g. Note that each element of so4_subalg is a skew-symmetric matrix.
so4_subalg := MatrixAlgebras("Subalgebra",gl4,[g]);
so4_subalg ≔ e12−e21,e13−e31,e14−e41,e23−e32,e24−e42,e34−e43
Step 3. Calculate the structure equations for so4 and initialize the result.
L2 := LieAlgebraData(so4_subalg, so4);
L2 ≔ e1,e2=−e4,e1,e3=−e5,e1,e4=e2,e1,e5=e3,e2,e3=−e6,e2,e4=−e1,e2,e6=e3,e3,e5=−e1,e3,e6=−e2,e4,e5=−e6,e4,e6=e5,e5,e6=−e4
Lie algebra: so4
Here are the calculations for so31.
h := evalDG(-dw &t dw + dx &t dx + dy &t dy + dz &t dz);
h ≔ −dw⁢dw+dx⁢dx+dy⁢dy+dz⁢dz
so31_subalg := MatrixAlgebras("Subalgebra",gl4,[h]);
so31_subalg ≔ e12+e21,e13+e31,e14+e41,e23−e32,e24−e42,e34−e43
Step 3. Calculate the structure equations for so31 and initialize the result.
L3 := LieAlgebraData(so31_subalg, so31);
L3 ≔ e1,e2=e4,e1,e3=e5,e1,e4=e2,e1,e5=e3,e2,e3=e6,e2,e4=−e1,e2,e6=e3,e3,e5=−e1,e3,e6=−e2,e4,e5=−e6,e4,e6=e5,e5,e6=−e4
DGsetup(L3);
Lie algebra: so31
Both Lie algebras so4 and so31 are semi-simple. The algebra so4 is decomposable while so31 is indecomposable.
ChangeFrame(so4);
so31
Query("Semisimple"), Query("Indecomposable");
true,false
ChangeFrame(so31);
so4
true,true
The Euclidean algebra consists of the 3 translations and 3 infinitesimal rotations.
DGsetup([x, y, z, w], M);
Gamma := evalDG([D_x, D_y, D_z, x*D_y - y*D_x, x*D_z - z*D_x, y*D_z - z*D_y]);
Γ ≔ D_x,D_y,D_z,−y⁢D_x+x⁢D_y,−z⁢D_x+x⁢D_z,−z⁢D_y+y⁢D_z
Here are the structure equations.
L := LieAlgebraData(Gamma);
L ≔ e1,e4=e2,e1,e5=e3,e2,e4=−e1,e2,e6=e3,e3,e5=−e1,e3,e6=−e2,e4,e5=−e6,e4,e6=e5,e5,e6=−e4
We will now use the MatrixAlgebras program to realize this Lie algebra as a subalgebra of gl4. To this end we shall generate the usual skew-symmetric matrices for so3 as 4x4 matrices by finding the subalgebra of gl4 which fixes both the standard metric on M and the vector D_x4.
g := evalDG(dx &t dx + dy &t dy + dz &t dz + dw &t dw);
g ≔ dx⁢dx+dy⁢dy+dz⁢dz+dw⁢dw
V := D_w;
V ≔ D_w
Calculate the structure equations for gl4 and initialize the result.
DGsetup(L1);
Lie algebra: gl4
Find the matrix algebra so3 as the subalgebra of gl4.
rotations:= MatrixAlgebras("Subalgebra",gl4, [g,V]);
rotations ≔ e12−e21,e13−e31,e23−e32
Add in the matrices e14, e24,e34 as representatives for the translations.
euc3_subalg:= [e14, e24, e34, op(rotations)];
euc3_subalg ≔ e14,e24,e34,e12−e21,e13−e31,e23−e32
Calculate the structure equations for the 6 dim Lie algebra defined by the matrices euc3_subalg.
L3 := LieAlgebraData(euc3_subalg, euc3);
L3 ≔ e1,e4=e2,e1,e5=e3,e2,e4=−e1,e2,e6=e3,e3,e5=−e1,e3,e6=−e2,e4,e5=−e6,e4,e6=e5,e5,e6=−e4
The structure equations L and L3 are identical.
We follow the description of g2 as found in the text: Spinors and Calibrations by F. Resse Harvey, p113-118, namely, g2 is the subalgebra of gl(7,R)
which fixes a certain 3-form.
Step 1. Define and initialize the ambient matrix algebra gl(7).
DGsetup(MatrixAlgebras("Full", 7, gl7));
Lie algebra: gl7
Step 2. Calculate g2 as the subalgebra of gl(7) as the subalgebra which preserves a 3-form phi, define on a 7 dimensional vector space E7.
DGsetup([x1, x2, x3, x4, x5, x6, x7],E7):
phi := evalDG(dx1 &w dx2 &w dx3 -dx1 &w dx5 &w dx6 + dx4 &w dx2 &w dx6 + dx4 &w dx5 &w dx3 + dx1 &w dx4 &w dx7 - dx2 &w dx5 &w dx7 + dx3 &w dx6 &w dx7);
φ ≔ dx1⁢`^`⁢dx2⁢`^`⁢dx3+dx1⁢`^`⁢dx4⁢`^`⁢dx7−dx1⁢`^`⁢dx5⁢`^`⁢dx6−dx2⁢`^`⁢dx4⁢`^`⁢dx6−dx2⁢`^`⁢dx5⁢`^`⁢dx7+dx3⁢`^`⁢dx4⁢`^`⁢dx5+dx3⁢`^`⁢dx6⁢`^`⁢dx7
g2_subalg := MatrixAlgebras("Subalgebra", gl7, [phi]);
g2_subalg ≔ e12−e21+e67−e76,e13+e31−e57−e75,e14+e36−e41−e63,e15+e37−e51−e73,e16+e34+e43+e61,e17+e35+e53+e71,e23+e32+e56+e65,e24+e37−e42−e73,e25−e36−e52+e63,e26−e35−e53+e62,e27+e34+e43+e72,e45−e54+e67−e76,e46−e57+e64−e75,e47+e56+e65+e74
Calculate the structure equations for this Lie algebra and initialize the result.
L := LieAlgebraData(g2_subalg, g2);
L ≔ e1,e2=−e7,e1,e3=−e8,e1,e4=−e9,e1,e5=−e6−e10,e1,e6=e5−e11,e1,e7=e2,e1,e8=e3,e1,e9=e4,e1,e10=e5−e11,e1,e11=e6+e10,e1,e13=−e14,e1,e14=e13,e2,e3=e5,e2,e4=2⁢e6,e2,e5=e3,e2,e6=2⁢e4,e2,e7=e1,e2,e8=e6,e2,e9=−e5+e11,e2,e10=−e4,e2,e11=e3+e9,e2,e12=e14,e2,e14=e12,e3,e4=−e12,e3,e5=2⁢e2−2⁢e13,e3,e6=−e14,e3,e7=−e10,e3,e8=−e1,e3,e10=e7,e3,e11=e2−e13,e3,e12=e4,e3,e13=e5,e3,e14=e6,e4,e5=−e14,e4,e6=2⁢e2,e4,e7=e5−e11,e4,e9=−e1,e4,e10=−e2,e4,e11=e7−e14,e4,e12=−e3,e4,e13=−e6,e4,e14=e5,e5,e6=e12,e5,e7=e4−e8,e5,e8=−e7+e14,e5,e9=e2−e13,e5,e10=e1−e12,e5,e12=e6,e5,e13=e3,e5,e14=e4,e6,e7=−e9,e6,e8=−e2,e6,e9=−e7,e6,e11=e1−e12,e6,e12=−e5,e6,e13=−e4,e6,e14=e3,e7,e8=e11,e7,e9=−2⁢e10,e7,e10=−2⁢e9,e7,e11=e8,e7,e12=−e13,e7,e13=−e12,e8,e9=−e12,e8,e10=−e13,e8,e11=2⁢e7−2⁢e14,e8,e12=e9,e8,e13=e10,e8,e14=e11,e9,e10=−2⁢e7,e9,e11=e13,e9,e12=−e8,e9,e13=−e11,e9,e14=e10,e10,e11=e12,e10,e12=e11,e10,e13=e8,e10,e14=e9,e11,e12=−e10,e11,e13=−e9,e11,e14=e8,e12,e13=−2⁢e14,e12,e14=2⁢e13,e13,e14=2⁢e12
DGsetup(L);
Lie algebra: g2
We check that g2 is semisimple.
Download Help Document