Given a homomorphism of Lie algebras f: M → L, one has the notion of a derivation d: M → L over f, and LieDerivation is the type representing such pairs (d, f) (f is the identity for the case of ordinary derivations from L to L). The derivation law reads
d [x, y] = [d x, f y] ± [f x, d y],
where the sign is determined by the sign of interchanging d and x, i.e., the sign is plus if sign(d)=0 or sign(x)=0 and minus otherwise. An object of type LieDerivation need not be well defined as a map. Use isWellDefined(ZZ,LieDerivation) to check if the derivation is well defined.
i1 : L = lieAlgebra{a,b} o1 = L o1 : LieAlgebra |
i2 : M = lieAlgebra{a,b,c} o2 = M o2 : LieAlgebra |
i3 : f = map(L,M) o3 = f o3 : LieAlgebraMap |
i4 : use L |
i5 : der = lieDerivation(f,{a a b,b b a,a a b+b b a}) o5 = der o5 : LieDerivation |
i6 : describe der o6 = a => - (a b a) b => (b b a) c => - (a b a) + (b b a) map => f sign => 0 weight => {2, 0} source => M target => L |
i7 : use M |
i8 : der a c o8 = - (a a b a) + (b a b a) o8 : L |
The object LieDerivation is a type, with ancestor classes HashTable < Thing.