Any object of type LieAlgebra is a finitely presented (differential) Lie algebra modulo an ideal, which is an object of type LieIdeal (and which might be zero). If the input Lie algebra $L$ is finitely presented, then the output Lie algebra $Q$ is simply presented as a quotient of $L$ by the input ideal $I$. (Observe that each time L/I is executed, a new different copy of L/I is produced.)
i1 : F = lieAlgebra{a,b,c} o1 = F o1 : LieAlgebra |
i2 : L = F/{a b} o2 = L o2 : LieAlgebra |
i3 : f=map(L,L,{0_L,b,c}) warning: the map might not be well defined, use isWellDefined o3 = f o3 : LieAlgebraMap |
i4 : I=kernel f o4 = I o4 : LieIdeal |
i5 : Q = L/I o5 = Q o5 : LieAlgebra |
i6 : describe Q o6 = generators => {a, b, c} Weights => {{1, 0}, {1, 0}, {1, 0}} Signs => {0, 0, 0} ideal => I ambient => L diff => {} Field => QQ computedDegree => 0 |
i7 : Q===L/I o7 = false |
i8 : Q==L/I o8 = true |
If the input Lie algebra $L$ is given as a finitely presented Lie algebra $M$ modulo an ideal $J$ that is not (known to be) finitely generated (e.g., the kernel of a homomorphism ), then the output Lie algebra $Q$ is presented as $M$ modulo the ideal that is the inverse image of the natural map from $M$ to $L$ applied to the input ideal $I$.
i9 : F = lieAlgebra{a,b,c} o9 = F o9 : LieAlgebra |
i10 : M = F/{a b} o10 = M o10 : LieAlgebra |
i11 : f=map(M,M,{0_M,b,c}) warning: the map might not be well defined, use isWellDefined o11 = f o11 : LieAlgebraMap |
i12 : J=kernel f o12 = J o12 : LieIdeal |
i13 : L = M/J o13 = L o13 : LieAlgebra |
i14 : X=lieAlgebra{x} o14 = X o14 : LieAlgebra |
i15 : g=map(X,L,{0_X,x,x}) warning: the map might not be well defined, use isWellDefined o15 = g o15 : LieAlgebraMap |
i16 : I=kernel g o16 = I o16 : LieIdeal |
i17 : Q=L/I o17 = Q o17 : LieAlgebra |
i18 : ambient Q===M o18 = true |
i19 : ideal(Q)===inverse(map(L,M),I) o19 = true |