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");
`|`e11e12e21e22-------------------e11`|`0e12−e210e12`|`−e120e11−e22e12e21`|`e21−e11+e220−e21e22`|`0−e12e210
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
`|`e11e12e13e14e22e23e24e33e34e44-------------------------------------------e11`|`0e12e13e14000000e12`|`−e12000e12e13e14000e13`|`−e13000000e13e140e14`|`−e1400000000e14e22`|`0−e12000e23e24000e23`|`0−e1300−e2300e23e240e24`|`0−e1400−e240000e24e33`|`00−e1300−e2300e340e34`|`00−e1400−e240−e340e34e44`|`000−e1400−e240−e340
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
`|`e12e13e14e15e23e24e25e34e35e45-------------------------------------------e12`|`0000e13e14e15000e13`|`0000000e14e150e14`|`000000000e15e15`|`0000000000e23`|`−e13000000e24e250e24`|`−e1400000000e25e25`|`−e15000000000e34`|`0−e1400−e240000e35e35`|`0−e1500−e2500000e45`|`00−e1500−e250−e3500
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]]);
A ≔ a1b1c1a2b2c3a3b3c3
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
`|`e1e2e3e4e5e6e7e8-----------------------------------e1`|`0e22⁢e3−e40e6−2⁢e7−e8e2`|`−e200e1−e5e2e3−e80e3`|`−2⁢e300−e6−e30e1e2e4`|`e4−e1+e5e60−e400−e7e5`|`0−e2e3e402⁢e6−e7−2⁢e8e6`|`−e6−e300−2⁢e60e4e5e7`|`2⁢e7e8−e10e7−e400e8`|`e80−e2e72⁢e8−e500
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]]);
A ≔ a1b1c1d1a2b2c2d2a3b3c3d3a4b4c4d4
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);
0b1c1d1−b10c2d2−c1−c20d3−d1−d2−d30
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