LieAlgebra Lessons - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : DifferentialGeometry : Lessons and Tutorials : LieAlgebras : DifferentialGeometry/LessonsAndTutorials/LieAlgebras/MatrixAlgebras

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

Overview

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.

 

The general linear Lie algebra and the Lie algebras of  upper triangular and strictly upper triangular matrices

 

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=e1e4,e2,e4=e2,e3,e4=e3,e11,e12,e21,e22,ε11,ε12,ε21,ε22

(2.1)

 

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

(2.2)
gl2 > 

MultiplicationTable("LieTable");

`|`e11e12e21e22-------------------e11`|`0e12e210e12`|`e120e11e22e12e21`|`e21e11+e220e21e22`|`0e12e210

(2.3)

 

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.

gl2 > 

Center();

gl2 > 

 

e11+e22

(2.4)

Example 2.  Here is the 10 dimensional Lie algebra of 4x4 upper triangular matrices.

 

gl2 > 

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

(2.5)
gl2 > 

DGsetup(L, V, Omega);

Lie algebra: T4

(2.6)

 

To display the multiplication table we need to increase the rtablesize parameter (see interface)

T4 > 

interface(rtablesize = 13);

10

(2.7)
T4 > 

MultiplicationTable("LieTable");

`|`e11e12e13e14e22e23e24e33e34e44-------------------------------------------e11`|`0e12e13e14000000e12`|`e12000e12e13e14000e13`|`e13000000e13e140e14`|`e1400000000e14e22`|`0e12000e23e24000e23`|`0e1300e2300e23e240e24`|`0e1400e240000e24e33`|`00e1300e2300e340e34`|`00e1400e240e340e34e44`|`000e1400e240e340

(2.8)
T4 > 

Series("Derived");

e11,e12,e13,e14,e22,e23,e24,e33,e34,e44,e12,e13,e14,e23,e24,e34,e13,e14,e24,

(2.9)

 

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.

T4 > 

Query("Solvable");

true

(2.10)

 

Example 3.  Here is the 10 dimensional Lie algebra of 5x5  strictly upper triangular matrices. This is a nilpotent Lie algebra.

T4 > 

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

(2.11)
T4 > 

DGsetup(L, V, Omega);

Lie algebra: U5

(2.12)

 

To display the multiplication table we need to increase the rtablesize parameter (see interface)

U5 > 

MultiplicationTable("LieTable");

`|`e12e13e14e15e23e24e25e34e35e45-------------------------------------------e12`|`0000e13e14e15000e13`|`0000000e14e150e14`|`000000000e15e15`|`0000000000e23`|`e13000000e24e250e24`|`e1400000000e25e25`|`e15000000000e34`|`0e1400e240000e35e35`|`0e1500e2500000e45`|`00e1500e250e3500

(2.13)

The Lie algebras of upper triangular matrices are all nilpotent.

U5 > 

Query("Nilpotent");

true

(2.14)

We illustrate the fact that the upper series (Series) of a nilpotent Lie algebra g always stablizes at g.

U5 > 

Series("Upper");

e15,e25,e15,e14,e15,e14,e13,e35,e25,e24,e45,e35,e34,e25,e24,e23,e15,e14,e13,e12

(2.15)

 

 

The special linear Lie algebra sl(3)

 

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.

 

U5 > 

DGsetup([x, y, z], M);

frame name: M

(3.1)
M > 

A:= Matrix([[a1, b1, c1], [a2 ,b2,c3], [a3, b3, c3]]);

Aa1b1c1a2b2c3a3b3c3

(3.2)
M > 

X := convert(A, DGvector);

Xa1x+b1y+c1zD_x+a2x+b2y+c3zD_y+a3x+b3y+c3zD_z

(3.3)

 

Now define the standard volume form on M and  calculate the Lie derivative of this volume form with respect to X.

M > 

nu := evalDG(dx &w dy &w dz);

νdx`^`dy`^`dz

(3.4)

 

M > 

LieDerivative(X, nu);

c3+b2+a1dx`^`dy`^`dz

(3.5)

 

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)

M > 

L1 := MatrixAlgebras("Full", 3, gl3);

L1e1,e2=e2,e1,e3=e3,e1,e4=e4,e1,e7=e7,e2,e4=e1e5,e2,e5=e2,e2,e6=e3,e2,e7=e8,e3,e4=e6,e3,e7=e1e9,e3,e8=e2,e3,e9=e3,e4,e5=e4,e4,e8=e7,e5,e6=e6,e5,e8=e8,e6,e7=e4,e6,e8=e5e9,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

(3.6)
M > 

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.

gl3 > 

sl3_subalg := MatrixAlgebras("Subalgebra",gl3,[nu]);

sl3_subalge11e33,e12,e13,e21,e22e33,e23,e31,e32

(3.7)

 

Step 3.  Calculate the structure equations for sl(3) and initialize the result.

gl3 > 

L2 := LieAlgebraData(sl3_subalg, sl3);

L2e1,e2=e2,e1,e3=2e3,e1,e4=e4,e1,e6=e6,e1,e7=2e7,e1,e8=e8,e2,e4=e1e5,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=2e6,e5,e7=e7,e5,e8=2e8,e6,e7=e4,e6,e8=e5

(3.8)
gl3 > 

DGsetup(L2);

Lie algebra: sl3

(3.9)
sl3 > 

MultiplicationTable("LieTable");

`|`e1e2e3e4e5e6e7e8-----------------------------------e1`|`0e22e3e40e62e7e8e2`|`e200e1e5e2e3e80e3`|`2e300e6e30e1e2e4`|`e4e1+e5e60e400e7e5`|`0e2e3e402e6e72e8e6`|`e6e3002e60e4e5e7`|`2e7e8e10e7e400e8`|`e80e2e72e8e500

(3.10)

 

The Lie algebra sl(3) is semisimple:

sl3 > 

Query("Semisimple");

true

(3.11)

 

 

The orthogonal Lie algebras so(4,0) and so(3,1)

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.

 

sl3 > 

with(DifferentialGeometry): with(LieAlgebras):

sl3 > 

DGsetup([w, x, y, z], M);

frame name: M

(4.1)
M > 

g := evalDG(dw &t dw  + dx &t dx + dy &t dy + dz &t dz);

gdwdw+dxdx+dydy+dzdz

(4.2)
M > 

A := Matrix([[a1, b1, c1, d1], [a2, b2, c2, d2], [a3, b3, c3, d3], [a4, b4, c4, d4]]);

M > 

 

Aa1b1c1d1a2b2c2d2a3b3c3d3a4b4c4d4

(4.3)

 

Construct the linear vector field on M defined by the matrix A.

M > 

Z := convert(A, DGvector);

Za1w+b1x+c1y+d1zD_w+a2w+b2x+c2y+d2zD_x+a3w+b3x+c3y+d3zD_y+a4w+b4x+c4y+d4zD_z

(4.4)
M > 

h := LieDerivative(Z, g);

h2a1dwdw+b1+a2dwdx+c1+a3dwdy+d1+a4dwdz+b1+a2dxdw+2b2dxdx+b3+c2dxdy+b4+d2dxdz+c1+a3dydw+b3+c2dydx+2c3dydy+c4+d3dydz+d1+a4dzdw+b4+d2dzdx+c4+d3dzdy+2d4dzdz

(4.5)

 

Set h to zero, solve the resulting equations for the parameters of the matrix A and back substitute into A

M > 

Eq := Tools:-DGinfo(h, "CoefficientSet");

Eq2d4,b1+a2,c1+a3,c4+d3,b3+c2,2b2,2c3,2a1,d1+a4,b4+d2

(4.6)
M > 

subs(solve(Eq, convert(A, set)), A);

0b1c1d1b10c2d2c1c20d3d1d2d30

(4.7)

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)

M > 

L1 := MatrixAlgebras("Full", 4, gl4):

M > 

DGsetup(L1):

 

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.

gl4 > 

so4_subalg := MatrixAlgebras("Subalgebra",gl4,[g]);

so4_subalge12e21,e13e31,e14e41,e23e32,e24e42,e34e43

(4.8)

 

Step 3.  Calculate the structure equations for so4 and initialize the result.

gl4 > 

L2 := LieAlgebraData(so4_subalg, so4);

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

(4.9)
gl4 > 

DGsetup(L2);

Lie algebra: so4

(4.10)
so4 > 

MultiplicationTable("LieTable");

`|`