Given a homomorphism of Lie algebras $f: M \ \to\ L$, one has the notion of a derivation $d: M \ \to\ 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 \break $d$ [x, y] = [$d$ x, $f$ y] ± [$f$ x, $d$ y], \break 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.