A finitely presented Lie algebra is constructed as the quotient of a free Lie algebra on a finite number of generators. Denote the set of generators by X={x1, ..., xn}. Let F denote the base ring. Then the free Lie algebra generated by the xi over the ring F is denoted by LF(X). The free magma on X is the set of the xi together with all bracketed expressions in the xi, e.g., ((x1, x2), ((x1, x3), x2))). The free Lie algebra LF(X) is spanned by M(X). However, the elements of this set are not linearly independent. It is a nontrivial problem to describe a basis of the free Lie algebra. One of several possibilities is the well-known Hall basis. Currently Magma does not support calculations involving bases of the free Lie algebra, as they are of little use for our main problem: the construction of a basis and multiplication table for a finitely-presented Lie algebra.
It is convenient to define an ordering on the elements of M(X). First of all, each generator is assigned a degree. Usually, the degree of all xi is taken to be one, but it is also possible to assign different degrees. The degree of a bracket (a, b) is defined to be the sum of the degrees of a and b. Let m, m' be two elements of M(X). Then define m<m' if the degree of m is less than the degree of m'. If their degrees are equal, then define m<m' if m=xi and m'=(a', b'), for some a', b' in M(X). If both m and m' are generators of the same degree, so that m=xi, m'=xj, then define m<m' if i<j. Finally, if both m and m' are bracketed expressions, that is, m=(a, b) and m'=(a', b'), then define m<m' if a<a' or a=a' and b<b'.
In the free Lie algebra, the relations (a, b) = - (b, a), and (a, a)=0 hold. In Magma this is used to rewrite an arbitrary element as a linear combination of elements of the form (a, b) with a<b. If instead we were to work relative to a basis for LF(X), then the use of the Jacobi identity when rewriting elements can lead to rather large expressions. Thus, mathematically speaking, in Magma rather than work in the free Lie algebra, we actually work in the free nonassociative anticommutative algebra. However, as our main interest lies in finitely-presented Lie algebras, this is usually not a problem.
Given a ring F and a positive integer n, this function creates the free n-generator Lie algebra over the ring F. The generators are ordered, with the first generator being the biggest in the ordering, and the last generator the smallest. The angle bracket notation can be used to assign names to the generators.
> L<a,b,c>:= FreeLieAlgebra(GF(2), 3);
The number of generators of the free Lie algebra L.
The coefficient ring of L.
Once a free Lie algebra has been created the user can construct a bracketed expression (a, b), either by simply typing it literally as (a,b), or by using the multiplication operator as in a*b. Recall that Magma rewrites elements so they are in the form (a, b) with a<b. On some occasions this can lead to the introduction of a minus sign. Also, if an element contains a subexpression of the form (a, a), it will be rewritten to 0.
We can multiply and add elements, and multiply them by scalars.
The zero element of the free Lie algebra L.
> L<z,y,x> := FreeLieAlgebra(Rationals(), 3); > x*y; (x, y) > (x, y); (x, y) > ((x*y)*z); -(z, (x, y)) > ((x, y), z); -(z, (x, y)) > ((x, y),(y, x)); 0 > 2*((x, y), z) - ((x, z), (y, z)) + 1/2*(x, (x, (y, z))); -((x, z), (y, z)) + 1/2*(x, (x, (y, z))) - 2*(z, (x, y))
Given a monomial element m of the free Lie algebra L, return true if m is a generator and false otherwise. If the result is true then the second return value is an integer i such that m is L.i. If the result is false then a, b ∈L are also returned such that m is a multiple of (a, b).Note that in the latter case m is not equal to (a, b), but merely equal to a scalar multiple of (a, b). See the example for a possible method of retrieving the appropriate scalar.
> L<z,y,x>:= FreeLieAlgebra(Rationals(), 3); > IsLeaf(x); true 3 > m := 2*((x, y), z); > m; -2*(z, (x, y)) > il, a, b := IsLeaf(m); > il, a, b; false z (x, y) > m eq (a, b); false > m eq LeadingCoefficient(m)*(a,b); true
Given a set or sequence R of elements of a free Lie algebra L, let I be the ideal of L generated by the elements of R. It is assumed that the quotient algebra Q = L/I is finite dimensional. This function returns the structure constant Lie algebra K isomorphic to the quotient Q. If the quotient Q is infinite dimensional then the program will not terminate. (The question of determining whether the quotient is finite dimensional is known to be undecidable.) The function can be interrupted by pressing Ctrl-C. The elements of R are referred to as relations.This function works if the base ring is either a field or equal to the ring of integers. In these two cases slightly different objects are returned.
If the base ring is a field then four values are returned:
The sequence B maps to a basis of the quotient algebra, so it is a basis of a complement of the ideal I in the free Lie algebra L. The elements of B are in one-to-one correspondence with the basis elements of K.
- (a)
- A structure constant algebra K isomorphic to the quotient Q;
- (b)
- A sequence G comprising sequences of integers;
- (c)
- A sequence B of elements of the free Lie algebra L;
- (d)
- A map f : B x B -> L.
If all the relations of R are homogeneous (i.e., if they are linear combinations of elements of the same degree), then Q is graded. The sequence G contains information about the grading. It consists of sequences of length two. The first element of each subsequence is the degree of a homogeneous subspace H, while the second element is the dimension of H. The basis elements of K are ordered with respect to increasing degree. So from G it is straightforward to read off the degree of each basis element. If the relations are not homogeneous then the sequence G is empty. Finally, f is a map that takes two elements from B as arguments, and returns their product (in L) modulo the ideal I. The algorithm used is described in [dG00], Para 7.4.
Secondly, in the case in which the base ring is the ring of integers, four values are returned:
Here the structure constant algebra is defined over the ring of integers, so it may have torsion. The sequence G is nonempty only if the input relations are homogeneous in which case it contains the dimensions of the homogeneous components. The function f is a map that takes an element u of K and returns an element of the free algebra L that maps to u under the projection map (from the free algebra to the quotient).
- (a)
- A structure constant algebra K isomorphic to the quotient Q;
- (b)
- A sequence G comprising sequences of integers;
- (c)
- A sequence B that is always empty;
- (d)
- A map f : K -> L.
> L<x7,x6,x5,x4,x3,x2,x1>:= FreeLieAlgebra(RationalField(), 7); > pp:= { [1,3], [3,4], [2,4], [4,5], [5,6], [6,7] }; > R:= [ ]; > g:= [ L.i : i in [1..7] ]; > for i in [1..7] do > for j in [i+1..7] do > if [i,j] in pp then > a:= (g[i],(g[i],g[j])); > Append( ~R, a ); > Append( ~R, (g[j],(g[j],g[i])) ); > else > Append( ~R, (g[i],g[j]) ); > end if; > end for; > end for; > R; [ -(x6, x7), -(x7, (x5, x7)), (x5, (x5, x7)), -(x4, x7), -(x3, x7), -(x2, x7), -(x1, x7), -(x5, x6), -(x6, (x4, x6)), (x4, (x4, x6)), -(x3, x6), -(x2, x6), -(x1, x6), -(x5, (x4, x5)), (x4, (x4, x5)), -(x3, x5), -(x2, x5), -(x1, x5), -(x4, (x3, x4)), (x3, (x3, x4)), -(x2, x4), -(x1, x4), -(x3, (x2, x3)), (x2, (x2, x3)), -(x1, x3), -(x2, (x1, x2)), (x1, (x1, x2)) ] > time K, G, B, f := LieAlgebra(R); Time: 0.280 > K; Lie Algebra of dimension 63 with base ring Rational Field > #B; 63 > B[63]; (x7, (x5, (x4, (x3, (x2, (x1, (x6, (x4, (x3, (x2, (x5, (x4, (x3, (x6, (x4, (x5, x7))))))))))))))))
> L<y,x>:= FreeLieAlgebra( Integers(), 2 ); > R:= [ x*(x*(x*y))-2*x*y, 2*y*(x*(x*y)), 3*y*(y*(x*y))-x*(x*y), > x*(y*(x*(y*(x*y)))) ]; > K,g,b,f:= LieAlgebra( R ); > K; Lie Algebra of dimension 8 with base ring Integer Ring Column moduli: [2, 2, 2, 8, 8, 8, 0, 0] > f(K.4); (y, (x, y)) > LowerCentralSeries( K ); [ Lie Algebra of dimension 8 with base ring Integer Ring Column moduli: [2, 2, 2, 8, 8, 8, 0, 0], Lie Algebra of dimension 6 with base ring Integer Ring Column moduli: [2, 2, 2, 8, 8, 8], Lie Algebra of dimension 6 with base ring Integer Ring Column moduli: [2, 2, 2, 4, 8, 8], Lie Algebra of dimension 6 with base ring Integer Ring Column moduli: [2, 2, 2, 4, 4, 8], Lie Algebra of dimension 6 with base ring Integer Ring Column moduli: [2, 2, 2, 4, 4, 4], Lie Algebra of dimension 5 with base ring Integer Ring Column moduli: [2, 2, 2, 4, 4], Lie Algebra of dimension 4 with base ring Integer Ring Column moduli: [2, 2, 2, 4], Lie Algebra of dimension 3 with base ring Integer Ring Column moduli: [2, 2, 2], Lie Algebra of dimension 2 with base ring Integer Ring Column moduli: [2, 2], Lie Algebra of dimension 1 with base ring Integer Ring Column moduli: [2], Lie Algebra of dimension 0 with base ring Integer Ring ]
This function is similar to the function LieAlgebra in that it constructs a structure constant Lie algebra K isomorphic to the quotient L/I, where I is the ideal of L generated by the elements (relations) of the sequence R. In addition to K, an invertible map from L to K is returned.
> L<x,y> := FreeLieAlgebra(Rationals(), 2); > R := [ x*(x*y)-2*x, y*(y*x)-2*y ]; > K, phi := quo<L | R>; > K; Lie Algebra of dimension 3 with base ring Rational Field > SemisimpleType(K); A1 > [ b @@ phi : b in Basis(K) ]; [ y, x, (y, x) ] > phi(x*y); ( 0 0 -1)
Given a set or sequence R of elements of a free Lie algebra L, let I be the ideal of L generated by the elements of R. Let d be a positive integer or Infinity(). This function constructs the class d nilpotent quotient of the Lie algebra L/I, a finite dimensional algebra. The function returns the same values as LieAlgebra.This function is similar to the function LieAlgebra except that the quotient is constructed in the free nilpotent Lie algebra of class d. All elements of degree strictly larger than d will be added to the ideal, so the quotient will be finite-dimensional and nilpotent of class at most d.
> L<y,x> := FreeLieAlgebra(Rationals(), 2); > R := [(x, (x, (x, y))) - (y, (y, (x, y)))]; > time K, G, B, f := NilpotentQuotient(R, 10); Time: 0.040 > K; Lie Algebra of dimension 109 with base ring Rational Field > #B; 109 > B[100]; (y, (x, (x, (y, (x, (y, (x, (x, (x, y))))))))) > G; [ [ 1, 2 ], [ 2, 1 ], [ 3, 2 ], [ 4, 2 ], [ 5, 4 ], [ 6, 5 ], [ 7, 10 ], [ 8, 15 ], [ 9, 26 ], [ 10, 42 ] ] > f(B[3], B[13]); -(y, (x, (x, (x, (x, (y, (x, y))))))) + (x, (y, (x, (x, (x, (y, (x, y)))))))
Given a free Lie algebra L of dimension n over R and either a Lie algebra M over R or a module M over R, construct the homomorphism from L to M specified by Q. The sequence Q must have length Rank(L) and be of the form [m1, ..., mn] (mi ∈M) indicating that the i-th generator of L maps to mi.Note that this is in general only a module homomorphism, and it is not checked whether it is an algebra homomorphism.
> L<e,f> := FreeLieAlgebra(Rationals(), 2); > M := LieAlgebra("A1", Rationals() : Isogeny := "SC"); > pos, neg, cart := ChevalleyBasis(M); > pos, neg, cart; [ (0 0 1) ] [ (1 0 0) ] [ (0 1 0) ]Next, we construct a homomorphism from L to M that sends e to the positive root element, and f to the negative root element. We construct a map from M to L that sends the positive root to e, the negative root to f, and the Cartan element to -(e, f).
> phi := hom<L -> M | [ pos[1], neg[1] ]>; > phi(e), phi(f), phi(e*f); (0 0 1) (1 0 0) ( 0 -1 0) > imgs := [ L | f, (f,e), e]; > psi := map<M -> L | x :-> &+[ x[i]*imgs[i] : i in [1..3] ]>; > psi(cart[1]); -(f, e) > psi(phi((e,(e,f)))); -2*e > assert forall{b : b in Basis(M) | phi(psi(b)) eq b };Finally, we create a sequence of relations showing that the maps phi and psi are each others inverses for a small set of elements of L. We then compute the quotient of the free Lie algebra with respect to these relations.
> R := { x - psi(phi(x)) : x in {e, f, (e,f), (e,(e,f)), (f,(f,e))} }; > L2 := quo<L | R>; > L2; Lie Algebra of dimension 3 with base ring Rational Field > SemisimpleType(L2); A1