A Lie algebra homomorphism $M \ \to\ L$ is defined using map(LieAlgebra,LieAlgebra,List) by giving the values in $L$ of the generators of $M$. A homomorphism preserves weight and sign, and `M#Field` must be the same as `L#Field`.

i1 : M = lieAlgebra({x,y},Weights => {2,2}) o1 = M o1 : LieAlgebra |

i2 : L = lieAlgebra({a,b},Signs => 1) o2 = L o2 : LieAlgebra |

i3 : f1 = map(L,M,{a a,b b}) o3 = f1 o3 : LieAlgebraMap |

i4 : describe f1 o4 = x => (a a) y => (b b) source => M target => L |

Like the situation for ring maps, the meaning of `map(L,M)` is that a generator in $M$ is sent to the generator in $L$ with the same name, weight and sign if there is such a generator, otherwise it is sent to zero.

i5 : M = lieAlgebra{a,b,c} o5 = M o5 : LieAlgebra |

i6 : L = lieAlgebra({a,b,d},Weights => {2,1,1}) o6 = L o6 : LieAlgebra |

i7 : f2 = map(L,M) o7 = f2 o7 : LieAlgebraMap |

i8 : describe f2 o8 = a => 0 b => b c => 0 source => M target => L |

Another similarity with ring maps is that a map $M \ \to\ L$ need not be well defined, in the sense that that the relations in $M$ need not be sent to zero in $L$. It may also happen that the map does not commute with the differentials in $M$ and $L$. All this can be checked up to a certain degree using isWellDefined(ZZ,LieAlgebraMap). If $M$ is finitely presented, see Quotient Lie algebras and subspaces, then it is possible to get the information that the map is well defined and commutes with the differentials for all degrees, if the first input $n$ in `isWellDefined(n,f)` is big enough.

i9 : F=lieAlgebra({a,b},Weights => {{1,0},{2,1}},Signs => 1, LastWeightHomological => true) o9 = F o9 : LieAlgebra |

i10 : D=differentialLieAlgebra{0_F,a a} o10 = D o10 : LieAlgebra |

i11 : f=map(D,F) warning: the map might not be well defined, use isWellDefined o11 = f o11 : LieAlgebraMap |

i12 : isWellDefined(2,f) the map is well defined for all degrees the map does not commute with the differential o12 = false |

i13 : use F |

i14 : Q=F/{a a} o14 = Q o14 : LieAlgebra |

i15 : g=map(Q,D) warning: the map might not be well defined, use isWellDefined o15 = g o15 : LieAlgebraMap |

i16 : isWellDefined(2,g) the map is well defined for all degrees the map commutes with the differential for all degrees o16 = true |

Surjectivity for a Lie algebra map may be tested using isSurjective(LieAlgebraMap). The input map might not be well defined. The method function isIsomorphism(LieAlgebraMap) may be used to test if a Lie algebra map $f: M \ \to\ L$ is an isomorphism. Here $M$ and $L$ must be equal, but not necessarily identical. Also, $M$ must be finitely presented. It is tested that the map is well defined, commutes with the differentials and is surjective. Injectivity follows from this by dimension reasons. See Holonomy Lie algebras and symmetries for applications where the map is a permutation of the variables.

i17 : isSurjective f o17 = true |

i18 : use F |

i19 : Q1=F/{a a} o19 = Q1 o19 : LieAlgebra |

i20 : Q1===Q o20 = false |

i21 : Q1==Q o21 = true |

i22 : h=map(Q1,Q) o22 = h o22 : LieAlgebraMap |

i23 : isIsomorphism h o23 = true |

A derivation $d: M \ \to\ L$ is defined using lieDerivation by giving a Lie algebra map $f: M \ \to\ L$ and a list of elements in $L$ that are the values of $d$ on the generators of $M$. One may use isWellDefined(ZZ,LieDerivation) to test if a derivation is well defined, which means that the relations in $M$ are sent to zero (the derivation need not commute with the differentials).

i24 : use Q |

i25 : d=lieDerivation(g,{a b,b b}) o25 = d o25 : LieDerivation |

i26 : isWellDefined(2,d) the derivation is well defined for all degrees o26 = true |

i27 : use D |

i28 : f=map(D,F) warning: the map might not be well defined, use isWellDefined o28 = f o28 : LieAlgebraMap |

i29 : d=lieDerivation(f,{a b,b b}) warning: the derivation might not be well defined, use isWellDefined o29 = d o29 : LieDerivation |

i30 : isWellDefined(2,d) the map defining the derivation is not well defined o30 = false |

Omitting the first input in lieDerivation gives derivations $d: L \ \to\ L$ with the identity map on $L$ as the defining map.

The following example shows a way to determine the derivations of a Lie algebra studied by David Anick, which may be seen as the positive part of the twisted loop algebra on sl_2. This also explains the periodic behaviour of the Lie algebra.

i31 : L = lieAlgebra{a,b}/{a a a b,b b b a} o31 = L o31 : LieAlgebra |

i32 : dims(1,20,L) o32 = {2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1} o32 : List |

The space of derivations of degree 0 is 2-dimensional, and contains the Euler derivation, see euler(LieAlgebra), which is the identity in degree 1.

i33 : deuler = euler L o33 = deuler o33 : LieDerivation |

i34 : deuler b a b a b a b a o34 = 8 (b a b a b a b a) o34 : L |

We will now prove that the space of derivations of degree 6 is 2-dimensional. The space of linear maps from degree 1 to degree 7 is 4-dimensional. Not all of them define derivations.

i35 : basis(7,L) o35 = {(a b a b a b a), (b b a b a b a)} o35 : List |

i36 : da61 = lieDerivation{a b a b a b a,0_L} warning: the derivation might not be well defined, use isWellDefined o36 = da61 o36 : LieDerivation |

i37 : isWellDefined(4,da61) the derivation is well defined for all degrees o37 = true |

i38 : db61 = lieDerivation{0_L,a b a b a b a} warning: the derivation might not be well defined, use isWellDefined o38 = db61 o38 : LieDerivation |

i39 : isWellDefined(4,db61) o39 = false |

i40 : da62 = lieDerivation{b b a b a b a,0_L} warning: the derivation might not be well defined, use isWellDefined o40 = da62 o40 : LieDerivation |

i41 : isWellDefined(4,da62) o41 = false |

i42 : db62 = lieDerivation{0_L,b b a b a b a} warning: the derivation might not be well defined, use isWellDefined o42 = db62 o42 : LieDerivation |

i43 : isWellDefined(4,db62) the derivation is well defined for all degrees o43 = true |

The output displayed above shows that `da61` and `db62` are derivations. To determine whether a linear combination of `db61` and `da62` is well defined (i.e., maps the relations in $L$ to zero), we consider derivations from the free Lie algebra $M$ on $a,b$ to $L$.

i44 : M = lieAlgebra{a,b} o44 = M o44 : LieAlgebra |

i45 : f = map(L,M) o45 = f o45 : LieAlgebraMap |

i46 : use L |

i47 : dMb61 = lieDerivation(f,{0_L,a b a b a b a}) o47 = dMb61 o47 : LieDerivation |

i48 : dMa62 = lieDerivation(f,{b b a b a b a,0_L}) o48 = dMa62 o48 : LieDerivation |

i49 : use M |

i50 : dMb61 a a a b o50 = 0 o50 : L |

i51 : dMa62 a a a b o51 = 2 (b a b a b a b a b a) o51 : L |

It follows from the output displayed above that the only linear combination of `dMb61` and `dMa62` that is zero on `(a a a b)` is a multiple of `dMb61`, but we have seen that `dMb61` is not a derivation on $L$. Hence, the space of derivations of degree 6 is 2-dimensional. Also, `da61 + db62` is the inner derivation corresponding to right multiplication with the basis element of degree 6, `(b a b a b a)`. This is seen by using innerDerivation.

i52 : use L |

i53 : da61+db62===innerDerivation(b a b a b a) o53 = true |

Since the dimension of the Lie algebra in degree 8 is 1, the dimension of the space of derivations of degree 7 is at most 2.

i54 : da7=lieDerivation({b a b a b a b a,0_L}) warning: the derivation might not be well defined, use isWellDefined o54 = da7 o54 : LieDerivation |

i55 : isWellDefined(4,da7) the derivation is well defined for all degrees o55 = true |

i56 : db7=lieDerivation({0_L,b a b a b a b a}) warning: the derivation might not be well defined, use isWellDefined o56 = db7 o56 : LieDerivation |

i57 : isWellDefined(4,db7) the derivation is well defined for all degrees o57 = true |

i58 : da7===innerDerivation(b b a b a b a) o58 = true |

i59 : db7===innerDerivation(a b a b a b a) o59 = true |

It follows from the output displayed above that the space of derivations of degree 7 is also 2-dimensional, but consists only of inner derivations. The conclusion is that the space of derivations of $L$ of positive degree modulo the inner derivations is 1-dimensional in all even degrees, and 0 in all odd degrees. We may also use LieDerivation LieDerivation to examine the structure of this quotient Lie algebra.

i60 : d2 = lieDerivation({a b a,0_L}) warning: the derivation might not be well defined, use isWellDefined o60 = d2 o60 : LieDerivation |

i61 : d4 = lieDerivation({a b a b a,0_L}) warning: the derivation might not be well defined, use isWellDefined o61 = d4 o61 : LieDerivation |

i62 : describe d2 d4 o62 = a => (a b a b a b a) b => 0 map => id_L sign => 0 weight => {6, 0} source => L target => L |

Define $dn$ ($n\ \ge\ 2$, $n$ even) as the derivation which maps $a$ to `(a b a b ... a)` of length $n+1$ and $b$ to 0. It follows from the output displayed above that [ $d2$, $d4$ ] = $d6$.

i63 : d6 = lieDerivation({a b a b a b a,0_L}) warning: the derivation might not be well defined, use isWellDefined o63 = da61 o63 : LieDerivation |

i64 : describe d2 d6 o64 = a => 2 (a b a b a b a b a) b => 0 map => id_L sign => 0 weight => {8, 0} source => L target => L |

i65 : d16 = lieDerivation({a b a b a b a b a b a b a b a b a,0_L}) warning: the derivation might not be well defined, use isWellDefined o65 = d16 o65 : LieDerivation |

i66 : describe d2 d16 o66 = a => 7 (a b a b a b a b a b a b a b a b a b a) b => 0 map => id_L sign => 0 weight => {18, 0} source => L target => L |

It follows from the output displayed above that [ $d2$, $d6$ ] = $2d8$ and [ $d2$, $d16$ ] = $7d18$. In fact, this Lie algebra is the infinite dimensional filiform Lie algebra, which is the Witt algebra in positive degrees (with a degree doubling).

- map(LieAlgebra,LieAlgebra,List) -- make a Lie algebra homomorphism
- lieDerivation -- make a graded derivation
- isWellDefined(ZZ,LieAlgebraMap) -- whether a Lie map is well defined
- isWellDefined(ZZ,LieDerivation) -- whether a Lie derivation is well defined
- Differential Lie algebra tutorial