LieAlgebras[SemiDirectSum] - create the semi-direct sum of two Lie algebras
Calling Sequences
SemiDirectSum(AlgName1, AlgName2, Phi, Derivations, AlgName3)
Parameters
AlgName1 - a name or string, the name of a Lie algebra h
AlgName2 - a name or string, the name of a Lie algebra k
Phi - a transformation defining Lie algebra homomorphism from k to the Lie algebra of derivations of h
Derivations - a list of Matrices defining the Lie algebra of derivations of h
AlgName3 - a name or string, the name for the semi-direct sum algebra
|
Description
|
|
•
|
A semi-direct sum for a Lie algebra g is a vector space decomposition g = h + k, h is an ideal in g and k is a subalgebra. For each y in k, ad(y) restricts to a derivation on h.
|
•
|
Conversely, given Lie algebras h and k and a Lie algebra homomorphism Phi:= k -> Der(h), a Lie bracket can be defined on the vector space g = h + k by setting [(x1, y1), (x2, y2)] = ([x1, x2] + Phi(y1)(x2) - Phi(y1)(x1), [y1, y2]) for all x1, x2 in h and all y1, y2 in k. With respect to this bracket on g, h is an ideal.
|
•
|
To create a semi-direct sum of h and k using the program SemiDirectSum, first use the program Derivations to calculate the Matrix algebra of derivations for h. Then use the program LieAlgebraConvert to obtain the Lie algebra data structure for the algebra of derivations Der(h). Then use the transformation program to create a homomorphism from k to Der(h). This gives all the data needed for the SemiDirectSum program.
|
•
|
The program SemiDirectSum returns the Lie algebra data structure for the semi-direct sum.
|
•
|
A Lie algebra data structure contains the structure constants in a standard format used by the LieAlgebras package. In the LieAlgebras package, the command DGsetup is used to initialize a Lie algebra -- that is, to define the basis elements for the Lie algebra and its dual and to store the structure constants for the Lie algebra in memory.
|
•
|
The command SemiDirectSum is part of the DifferentialGeometry:-LieAlgebras package. It can be used in the form SemiDirectSum(...) only after executing the commands with(DifferentialGeometry) and with(LieAlgebras), but can always be used by executing DifferentialGeometry:-LieAlgebras:-SemiDirectSum(...).
|
|
|
Examples
|
|
>
|
with(DifferentialGeometry): with(LieAlgebras):
|
Example 1.
First we initialize a pair of Lie algebras and display their multiplication tables.
>
|
L1 := _DG([["LieAlgebra", Alg1, [3]], [[[1, 3, 1], 1], [[2, 3, 1], 1], [[2, 3, 2], 1]]]);
|
| (2.1) |
Alg1 >
|
L2 := _DG([["LieAlgebra", Alg2, [2]],[[[1, 2, 1], 1]]]):
|
Alg1 >
|
DGsetup(L2, [y], [b]):
|
Alg2 >
|
MultiplicationTable(Alg1, "LieBracket"), MultiplicationTable(Alg2, "LieBracket");
|
| (2.2) |
Alg2 is the current algebra so we switch back to Alg1 and compute the Matrix algebra of derivations. We find the derivation algebra to be 4 dimensional and we save the result as Der.
Alg2 >
|
ChangeLieAlgebraTo(Alg1):
|
Alg1 >
|
Derivations("Full");
|
| (2.3) |
Alg1 >
|
Der := map(Matrix, [[[1, 0, 0], [0, 1, 0], [0, 0, 0]], [[0, 1, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 1], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 1], [0, 0, 0]]]);
|
| (2.4) |
Convert the Matrix algebra Der into an abstract Lie algebra called Alg3 and initialize.
Alg1 >
|
L3 := LieAlgebraData(Der, Alg3);
|
| (2.5) |
Alg1 >
|
DGsetup(L3, [E], [c]):
|
Alg3 >
|
MultiplicationTable("LieBracket");
|
| (2.6) |
Define a linear transformation from Alg1 to Alg3 and check that the result is a Lie algebra homomorphism. (There can be many such maps.)
Alg3 >
|
Phi := Transformation([[y1, E4], [y2, (-1) &mult E1]]);
|
| (2.7) |
Alg3 >
|
Query(Alg2, Alg3, Phi, "Homomorphism");
|
| (2.8) |
Now run the SemiDirectSum program. Keep in mind that the Matrices defining the derivations of Alg1 must be listed in the fourth argument in the same order that was used to initialize the derivations as an abstract Lie algebra.
Alg3 >
|
L4 := SemiDirectSum(Alg1, Alg2, Phi, Der, Alg4);
|
| (2.9) |
| (2.10) |
Alg4 >
|
MultiplicationTable("LieTable");
|
| (2.11) |
Let's perform a number of checks on this result. First check that Alg4 is indeed a Lie algebra.
Alg4 >
|
Query(Alg4, "Jacobi");
|
| (2.12) |
Check that [e1, e2, e3] is an ideal and [e4, e5] is a subalgebra.
Alg4 >
|
Query([e1, e2, e3], "Ideal"), Query([e4, e5], "Subalgebra");
|
| (2.13) |
Next we note that the map Phi sends y1 to E4 which corresponds to the Matrix Der[4]. In the semi-direct sum y1 becomes e4 and the restriction of ad(e4) to [e1, e2, e3] is the Matrix Der[4].
Alg4 >
|
ApplyHomomorphism(Phi, y1), Der[4], Adjoint(e4, [e1, e2, e3]);
|
| (2.14) |
Likewise, the map Phi sends y2 to - E1 which corresponds to the Matrix - Der[1]. In the semi-direct sum y2 becomes e5 and the restriction of ad(e5) to [e1, e2, e3] is the Matrix - Der[1].
Alg3 >
|
ApplyHomomorphism(Phi, y2), Der[1], Adjoint(e5, [e1, e2, e3]);
|
| (2.15) |
|
|