Subalgebras and ideals of Lie algebras¶
AUTHORS:
- Eero Hakavuori (2018-08-29): initial version
-
sage.algebras.lie_algebras.subalgebra.
LieSubalgebra_finite_dimensional_with_basis
¶ A Lie subalgebra of a finite dimensional Lie algebra with basis.
INPUT:
ambient
– the Lie algebra containing the subalgebragens
– a list of generators of the subalgebraideal
– (default:False
) a boolean; ifTrue
, thengens
is interpreted as the generating set of an ideal instead of a subalgebraorder
– (optional) the key used to sort the indices ofambient
category
– (optional) a subcategory of subobjects of finite dimensional Lie algebras with basis
EXAMPLES:
Subalgebras and ideals are defined by giving a list of generators:
sage: L = lie_algebras.Heisenberg(QQ, 1) sage: X, Y, Z = L.basis() sage: S = L.subalgebra([X, Z]); S Subalgebra generated by (p1, z) of Heisenberg algebra of rank 1 over Rational Field sage: I = L.ideal([X, Z]); I Ideal (p1, z) of Heisenberg algebra of rank 1 over Rational Field
An ideal is in general larger than the subalgebra with the same generators:
sage: S = L.subalgebra(Y) sage: S.basis() Family (q1,) sage: I = L.ideal(Y) sage: I.basis() Family (q1, z)
The zero dimensional subalgebra can be created by giving 0 as a generator or with an empty list of generators:
sage: L.<X,Y,Z> = LieAlgebra(QQ, {('X','Y'): {'Z': 1}}) sage: S1 = L.subalgebra(0) sage: S2 = L.subalgebra([]) sage: S1 is S2 True sage: S1.basis() Family ()
Elements of the ambient Lie algebra can be reduced modulo an ideal or subalgebra:
sage: L.<X,Y,Z> = LieAlgebra(SR, {('X','Y'): {'Z': 1}}) sage: I = L.ideal(Y) sage: I.reduce(X + 2*Y + 3*Z) X sage: S = L.subalgebra(Y) sage: S.reduce(X + 2*Y + 3*Z) X + 3*Z
The reduction gives elements in a fixed complementary subspace. When the base ring is a field, the complementary subspace is spanned by those basis elements which are not leading supports of the basis:
sage: I = L.ideal(X + Y) sage: I.basis() Family (X + Y, Z) sage: el = var('x')*X + var('y')*Y + var('z')*Z; el x*X + y*Y + z*Z sage: I.reduce(el) (x-y)*X
Giving a different
order
may change the reduction of elements:sage: I = L.ideal(X + Y, order=lambda s: ['Z','Y','X'].index(s)) sage: I.basis() Family (X + Y, Z) sage: I.reduce(el) (-x+y)*Y
A subalgebra of a subalgebra is a subalgebra of the original:
sage: sc = {('X','Y'): {'Z': 1}, ('X','Z'): {'W': 1}} sage: L.<X,Y,Z,W> = LieAlgebra(QQ, sc) sage: S1 = L.subalgebra([Y, Z, W]); S1 Subalgebra generated by (Y, Z, W) of Lie algebra on 4 generators (X, Y, Z, W) over Rational Field sage: S2 = S1.subalgebra(S1.gens()[1:]); S2 Subalgebra generated by (Z, W) of Lie algebra on 4 generators (X, Y, Z, W) over Rational Field sage: S3 = S2.subalgebra(S2.gens()[1:]); S3 Subalgebra generated by (W) of Lie algebra on 4 generators (X, Y, Z, W) over Rational Field
An ideal of an ideal is not necessarily an ideal of the original:
sage: I = L.ideal(Y); I Ideal (Y) of Lie algebra on 4 generators (X, Y, Z, W) over Rational Field sage: J = I.ideal(Z); J Ideal (Z) of Ideal (Y) of Lie algebra on 4 generators (X, Y, Z, W) over Rational Field sage: J.basis() Family (Z,) sage: J.is_ideal(L) False sage: K = L.ideal(J.basis().list()) sage: K.basis() Family (W, Z)