Examples of Lie Algebras¶
There are the following examples of Lie algebras:
- A rather comprehensive family of 3-dimensional Lie algebras 
- The Lie algebra of affine transformations of the line 
- All abelian Lie algebras on free modules 
- The Lie algebra of upper triangular matrices 
- The Lie algebra of strictly upper triangular matrices 
- The symplectic derivation Lie algebra 
- The rank two Heisenberg Virasoro algebra 
See also
sage.algebras.lie_algebras.virasoro.LieAlgebraRegularVectorFields
and
sage.algebras.lie_algebras.virasoro.VirasoroAlgebra for
other examples.
AUTHORS:
- Travis Scrimshaw (07-15-2013): Initial implementation 
- sage.algebras.lie_algebras.examples.Heisenberg(R, n, representation='structure')[source]¶
- Return the rank - nHeisenberg algebra in the given representation.- INPUT: - R– the base ring
- n– the rank (a nonnegative integer or infinity)
- representation– (default:- 'structure') can be one of the following:- 'structure'– using structure coefficients
- 'matrix'– using matrices
 
 - EXAMPLES: - sage: lie_algebras.Heisenberg(QQ, 3) Heisenberg algebra of rank 3 over Rational Field - >>> from sage.all import * >>> lie_algebras.Heisenberg(QQ, Integer(3)) Heisenberg algebra of rank 3 over Rational Field 
- sage.algebras.lie_algebras.examples.abelian(R, names=None, index_set=None)[source]¶
- Return the abelian Lie algebra generated by - names.- EXAMPLES: - sage: lie_algebras.abelian(QQ, 'x, y, z') Abelian Lie algebra on 3 generators (x, y, z) over Rational Field - >>> from sage.all import * >>> lie_algebras.abelian(QQ, 'x, y, z') Abelian Lie algebra on 3 generators (x, y, z) over Rational Field 
- sage.algebras.lie_algebras.examples.affine_transformations_line(R, names=['X', 'Y'], representation='bracket')[source]¶
- The Lie algebra of affine transformations of the line. - EXAMPLES: - sage: L = lie_algebras.affine_transformations_line(QQ) sage: L.structure_coefficients() Finite family {('X', 'Y'): Y} sage: X, Y = L.lie_algebra_generators() sage: L[X, Y] == Y True sage: TestSuite(L).run() sage: L = lie_algebras.affine_transformations_line(QQ, representation='matrix') sage: X, Y = L.lie_algebra_generators() sage: L[X, Y] == Y True sage: TestSuite(L).run() - >>> from sage.all import * >>> L = lie_algebras.affine_transformations_line(QQ) >>> L.structure_coefficients() Finite family {('X', 'Y'): Y} >>> X, Y = L.lie_algebra_generators() >>> L[X, Y] == Y True >>> TestSuite(L).run() >>> L = lie_algebras.affine_transformations_line(QQ, representation='matrix') >>> X, Y = L.lie_algebra_generators() >>> L[X, Y] == Y True >>> TestSuite(L).run() 
- sage.algebras.lie_algebras.examples.cross_product(R, names=['X', 'Y', 'Z'])[source]¶
- The Lie algebra of \(\RR^3\) defined by the usual cross product \(\times\). - EXAMPLES: - sage: L = lie_algebras.cross_product(QQ) sage: L.structure_coefficients() Finite family {('X', 'Y'): Z, ('X', 'Z'): -Y, ('Y', 'Z'): X} sage: TestSuite(L).run() - >>> from sage.all import * >>> L = lie_algebras.cross_product(QQ) >>> L.structure_coefficients() Finite family {('X', 'Y'): Z, ('X', 'Z'): -Y, ('Y', 'Z'): X} >>> TestSuite(L).run() 
- sage.algebras.lie_algebras.examples.pwitt(R, p)[source]¶
- Return the \(p\)-Witt Lie algebra over \(R\). - INPUT: - R– the base ring
- p– positive integer that is \(0\) in \(R\)
 - EXAMPLES: - sage: lie_algebras.pwitt(GF(5), 5) The 5-Witt Lie algebra over Finite Field of size 5 - >>> from sage.all import * >>> lie_algebras.pwitt(GF(Integer(5)), Integer(5)) The 5-Witt Lie algebra over Finite Field of size 5 
- sage.algebras.lie_algebras.examples.regular_vector_fields(R)[source]¶
- Return the Lie algebra of regular vector fields on \(\CC^{\times}\). - This is also known as the Witt (Lie) algebra. - See also - EXAMPLES: - sage: lie_algebras.regular_vector_fields(QQ) The Lie algebra of regular vector fields over Rational Field - >>> from sage.all import * >>> lie_algebras.regular_vector_fields(QQ) The Lie algebra of regular vector fields over Rational Field 
- sage.algebras.lie_algebras.examples.sl(R, n, representation='bracket')[source]¶
- The Lie algebra \(\mathfrak{sl}_n\). - The Lie algebra \(\mathfrak{sl}_n\) is the type \(A_{n-1}\) Lie algebra and is finite dimensional. As a matrix Lie algebra, it is given by the set of all \(n \times n\) matrices with trace 0. - INPUT: - R– the base ring
- n– the size of the matrix
- representation– (default:- 'bracket') can be one of the following:- 'bracket'– use brackets and the Chevalley basis
- 'matrix'– use matrices
 
 - EXAMPLES: - We first construct \(\mathfrak{sl}_2\) using the Chevalley basis: - sage: sl2 = lie_algebras.sl(QQ, 2); sl2 Lie algebra of ['A', 1] in the Chevalley basis sage: E,F,H = sl2.gens() sage: E.bracket(F) == H True sage: H.bracket(E) == 2*E True sage: H.bracket(F) == -2*F True - >>> from sage.all import * >>> sl2 = lie_algebras.sl(QQ, Integer(2)); sl2 Lie algebra of ['A', 1] in the Chevalley basis >>> E,F,H = sl2.gens() >>> E.bracket(F) == H True >>> H.bracket(E) == Integer(2)*E True >>> H.bracket(F) == -Integer(2)*F True - We now construct \(\mathfrak{sl}_2\) as a matrix Lie algebra: - sage: sl2 = lie_algebras.sl(QQ, 2, representation='matrix') sage: E,F,H = sl2.gens() sage: E.bracket(F) == H True sage: H.bracket(E) == 2*E True sage: H.bracket(F) == -2*F True - >>> from sage.all import * >>> sl2 = lie_algebras.sl(QQ, Integer(2), representation='matrix') >>> E,F,H = sl2.gens() >>> E.bracket(F) == H True >>> H.bracket(E) == Integer(2)*E True >>> H.bracket(F) == -Integer(2)*F True 
- sage.algebras.lie_algebras.examples.so(R, n, representation='bracket')[source]¶
- The Lie algebra \(\mathfrak{so}_n\). - The Lie algebra \(\mathfrak{so}_n\) is the type \(B_k\) Lie algebra if \(n = 2k - 1\) or the type \(D_k\) Lie algebra if \(n = 2k\), and in either case is finite dimensional. - A classical description of this as a matrix Lie algebra is the set of all anti-symmetric \(n \times n\) matrices. However, the implementation here uses a different bilinear form for the Lie group and follows the description in Chapter 8 of [HK2002]. See - sage.algebras.lie_algebras.classical_lie_algebra.sofor a precise description.- INPUT: - R– the base ring
- n– the size of the matrix
- representation– (default:- 'bracket') can be one of the following:- 'bracket'– use brackets and the Chevalley basis
- 'matrix'– use matrices
 
 - EXAMPLES: - We first construct \(\mathfrak{so}_5\) using the Chevalley basis: - sage: so5 = lie_algebras.so(QQ, 5); so5 Lie algebra of ['B', 2] in the Chevalley basis sage: E1,E2, F1,F2, H1,H2 = so5.gens() sage: so5([E1, [E1, E2]]) 0 sage: X = so5([E2, [E2, E1]]); X -2*E[alpha[1] + 2*alpha[2]] sage: H1.bracket(X) 0 sage: H2.bracket(X) -4*E[alpha[1] + 2*alpha[2]] sage: so5([H1, [E1, E2]]) -E[alpha[1] + alpha[2]] sage: so5([H2, [E1, E2]]) 0 - >>> from sage.all import * >>> so5 = lie_algebras.so(QQ, Integer(5)); so5 Lie algebra of ['B', 2] in the Chevalley basis >>> E1,E2, F1,F2, H1,H2 = so5.gens() >>> so5([E1, [E1, E2]]) 0 >>> X = so5([E2, [E2, E1]]); X -2*E[alpha[1] + 2*alpha[2]] >>> H1.bracket(X) 0 >>> H2.bracket(X) -4*E[alpha[1] + 2*alpha[2]] >>> so5([H1, [E1, E2]]) -E[alpha[1] + alpha[2]] >>> so5([H2, [E1, E2]]) 0 - We do the same construction of \(\mathfrak{so}_4\) using the Chevalley basis: - sage: so4 = lie_algebras.so(QQ, 4); so4 Lie algebra of ['D', 2] in the Chevalley basis sage: E1,E2, F1,F2, H1,H2 = so4.gens() sage: H1.bracket(E1) 2*E[alpha[1]] sage: H2.bracket(E1) == so4.zero() True sage: E1.bracket(E2) == so4.zero() True - >>> from sage.all import * >>> so4 = lie_algebras.so(QQ, Integer(4)); so4 Lie algebra of ['D', 2] in the Chevalley basis >>> E1,E2, F1,F2, H1,H2 = so4.gens() >>> H1.bracket(E1) 2*E[alpha[1]] >>> H2.bracket(E1) == so4.zero() True >>> E1.bracket(E2) == so4.zero() True - We now construct \(\mathfrak{so}_4\) as a matrix Lie algebra: - sage: sl2 = lie_algebras.sl(QQ, 2, representation='matrix') sage: E1,E2, F1,F2, H1,H2 = so4.gens() sage: H2.bracket(E1) == so4.zero() True sage: E1.bracket(E2) == so4.zero() True - >>> from sage.all import * >>> sl2 = lie_algebras.sl(QQ, Integer(2), representation='matrix') >>> E1,E2, F1,F2, H1,H2 = so4.gens() >>> H2.bracket(E1) == so4.zero() True >>> E1.bracket(E2) == so4.zero() True 
- sage.algebras.lie_algebras.examples.sp(R, n, representation='bracket')[source]¶
- The Lie algebra \(\mathfrak{sp}_n\). - The Lie algebra \(\mathfrak{sp}_n\) where \(n = 2k\) is the type \(C_k\) Lie algebra and is finite dimensional. As a matrix Lie algebra, it is given by the set of all matrices \(X\) that satisfy the equation: \[X^T M - M X = 0\]- where \[\begin{split}M = \begin{pmatrix} 0 & I_k \\ -I_k & 0 \end{pmatrix}.\end{split}\]- This is the Lie algebra of type \(C_k\). - INPUT: - R– the base ring
- n– the size of the matrix
- representation– (default:- 'bracket') can be one of the following:- 'bracket'– use brackets and the Chevalley basis
- 'matrix'– use matrices
 
 - EXAMPLES: - We first construct \(\mathfrak{sp}_4\) using the Chevalley basis: - sage: sp4 = lie_algebras.sp(QQ, 4); sp4 Lie algebra of ['C', 2] in the Chevalley basis sage: E1,E2, F1,F2, H1,H2 = sp4.gens() sage: sp4([E2, [E2, E1]]) 0 sage: X = sp4([E1, [E1, E2]]); X 2*E[2*alpha[1] + alpha[2]] sage: H1.bracket(X) 4*E[2*alpha[1] + alpha[2]] sage: H2.bracket(X) 0 sage: sp4([H1, [E1, E2]]) 0 sage: sp4([H2, [E1, E2]]) -E[alpha[1] + alpha[2]] - >>> from sage.all import * >>> sp4 = lie_algebras.sp(QQ, Integer(4)); sp4 Lie algebra of ['C', 2] in the Chevalley basis >>> E1,E2, F1,F2, H1,H2 = sp4.gens() >>> sp4([E2, [E2, E1]]) 0 >>> X = sp4([E1, [E1, E2]]); X 2*E[2*alpha[1] + alpha[2]] >>> H1.bracket(X) 4*E[2*alpha[1] + alpha[2]] >>> H2.bracket(X) 0 >>> sp4([H1, [E1, E2]]) 0 >>> sp4([H2, [E1, E2]]) -E[alpha[1] + alpha[2]] - We now construct \(\mathfrak{sp}_4\) as a matrix Lie algebra: - sage: sp4 = lie_algebras.sp(QQ, 4, representation='matrix'); sp4 Symplectic Lie algebra of rank 4 over Rational Field sage: E1,E2, F1,F2, H1,H2 = sp4.gens() sage: H1.bracket(E1) [ 0 2 0 0] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 -2 0] sage: sp4([E1, [E1, E2]]) [0 0 2 0] [0 0 0 0] [0 0 0 0] [0 0 0 0] - >>> from sage.all import * >>> sp4 = lie_algebras.sp(QQ, Integer(4), representation='matrix'); sp4 Symplectic Lie algebra of rank 4 over Rational Field >>> E1,E2, F1,F2, H1,H2 = sp4.gens() >>> H1.bracket(E1) [ 0 2 0 0] [ 0 0 0 0] [ 0 0 0 0] [ 0 0 -2 0] >>> sp4([E1, [E1, E2]]) [0 0 2 0] [0 0 0 0] [0 0 0 0] [0 0 0 0] 
- sage.algebras.lie_algebras.examples.strictly_upper_triangular_matrices(R, n)[source]¶
- Return the Lie algebra \(\mathfrak{n}_k\) of strictly \(k \times k\) upper triangular matrices. - Todo - This implementation does not know it is finite-dimensional and does not know its basis. - EXAMPLES: - sage: L = lie_algebras.strictly_upper_triangular_matrices(QQ, 4); L Lie algebra of 4-dimensional strictly upper triangular matrices over Rational Field sage: TestSuite(L).run() sage: n0, n1, n2 = L.lie_algebra_generators() sage: L[n2, n1] [ 0 0 0 0] [ 0 0 0 -1] [ 0 0 0 0] [ 0 0 0 0] - >>> from sage.all import * >>> L = lie_algebras.strictly_upper_triangular_matrices(QQ, Integer(4)); L Lie algebra of 4-dimensional strictly upper triangular matrices over Rational Field >>> TestSuite(L).run() >>> n0, n1, n2 = L.lie_algebra_generators() >>> L[n2, n1] [ 0 0 0 0] [ 0 0 0 -1] [ 0 0 0 0] [ 0 0 0 0] 
- sage.algebras.lie_algebras.examples.su(R, n, representation='matrix')[source]¶
- The Lie algebra \(\mathfrak{su}_n\). - The Lie algebra \(\mathfrak{su}_n\) is the compact real form of the type \(A_{n-1}\) Lie algebra and is finite-dimensional. As a matrix Lie algebra, it is given by the set of all \(n \times n\) skew-Hermitian matrices with trace 0. - INPUT: - R– the base ring
- n– the size of the matrix
- representation– (default:- 'matrix') can be one of the following:- 'bracket'– use brackets and the Chevalley basis
- 'matrix'– use matrices
 
 - EXAMPLES: - We construct \(\mathfrak{su}_2\), where the default is as a matrix Lie algebra: - sage: su2 = lie_algebras.su(QQ, 2) sage: E,H,F = su2.basis() sage: E.bracket(F) == 2*H True sage: H.bracket(E) == 2*F True sage: H.bracket(F) == -2*E True - >>> from sage.all import * >>> su2 = lie_algebras.su(QQ, Integer(2)) >>> E,H,F = su2.basis() >>> E.bracket(F) == Integer(2)*H True >>> H.bracket(E) == Integer(2)*F True >>> H.bracket(F) == -Integer(2)*E True - Since \(\mathfrak{su}_n\) is the same as the type \(A_{n-1}\) Lie algebra, the bracket is the same as - sl():- sage: su2 = lie_algebras.su(QQ, 2, representation='bracket') sage: su2 is lie_algebras.sl(QQ, 2, representation='bracket') True - >>> from sage.all import * >>> su2 = lie_algebras.su(QQ, Integer(2), representation='bracket') >>> su2 is lie_algebras.sl(QQ, Integer(2), representation='bracket') True 
- sage.algebras.lie_algebras.examples.three_dimensional(R, a, b, c, d, names=['X', 'Y', 'Z'])[source]¶
- The 3-dimensional Lie algebra over a given commutative ring \(R\) with basis \(\{X, Y, Z\}\) subject to the relations: \[[X, Y] = aZ + dY, \quad [Y, Z] = bX, \quad [Z, X] = cY + dZ\]- where \(a,b,c,d \in R\). - This is always a well-defined 3-dimensional Lie algebra, as can be easily proven by computation. - EXAMPLES: - sage: L = lie_algebras.three_dimensional(QQ, 4, 1, -1, 2) sage: L.structure_coefficients() Finite family {('X', 'Y'): 2*Y + 4*Z, ('X', 'Z'): Y - 2*Z, ('Y', 'Z'): X} sage: TestSuite(L).run() sage: L = lie_algebras.three_dimensional(QQ, 1, 0, 0, 0) sage: L.structure_coefficients() Finite family {('X', 'Y'): Z} sage: L = lie_algebras.three_dimensional(QQ, 0, 0, -1, -1) sage: L.structure_coefficients() Finite family {('X', 'Y'): -Y, ('X', 'Z'): Y + Z} sage: L = lie_algebras.three_dimensional(QQ, 0, 1, 0, 0) sage: L.structure_coefficients() Finite family {('Y', 'Z'): X} sage: lie_algebras.three_dimensional(QQ, 0, 0, 0, 0) Abelian Lie algebra on 3 generators (X, Y, Z) over Rational Field sage: Q.<a,b,c,d> = PolynomialRing(QQ) sage: L = lie_algebras.three_dimensional(Q, a, b, c, d) sage: L.structure_coefficients() Finite family {('X', 'Y'): d*Y + a*Z, ('X', 'Z'): -c*Y - d*Z, ('Y', 'Z'): b*X} sage: TestSuite(L).run() - >>> from sage.all import * >>> L = lie_algebras.three_dimensional(QQ, Integer(4), Integer(1), -Integer(1), Integer(2)) >>> L.structure_coefficients() Finite family {('X', 'Y'): 2*Y + 4*Z, ('X', 'Z'): Y - 2*Z, ('Y', 'Z'): X} >>> TestSuite(L).run() >>> L = lie_algebras.three_dimensional(QQ, Integer(1), Integer(0), Integer(0), Integer(0)) >>> L.structure_coefficients() Finite family {('X', 'Y'): Z} >>> L = lie_algebras.three_dimensional(QQ, Integer(0), Integer(0), -Integer(1), -Integer(1)) >>> L.structure_coefficients() Finite family {('X', 'Y'): -Y, ('X', 'Z'): Y + Z} >>> L = lie_algebras.three_dimensional(QQ, Integer(0), Integer(1), Integer(0), Integer(0)) >>> L.structure_coefficients() Finite family {('Y', 'Z'): X} >>> lie_algebras.three_dimensional(QQ, Integer(0), Integer(0), Integer(0), Integer(0)) Abelian Lie algebra on 3 generators (X, Y, Z) over Rational Field >>> Q = PolynomialRing(QQ, names=('a', 'b', 'c', 'd',)); (a, b, c, d,) = Q._first_ngens(4) >>> L = lie_algebras.three_dimensional(Q, a, b, c, d) >>> L.structure_coefficients() Finite family {('X', 'Y'): d*Y + a*Z, ('X', 'Z'): -c*Y - d*Z, ('Y', 'Z'): b*X} >>> TestSuite(L).run() 
- sage.algebras.lie_algebras.examples.three_dimensional_by_rank(R, n, a=None, names=['X', 'Y', 'Z'])[source]¶
- Return a 3-dimensional Lie algebra of rank - n, where \(0 \leq n \leq 3\).- Here, the rank of a Lie algebra \(L\) is defined as the dimension of its derived subalgebra \([L, L]\). (We are assuming that \(R\) is a field of characteristic \(0\); otherwise the Lie algebras constructed by this function are still well-defined but no longer might have the correct ranks.) This is not to be confused with the other standard definition of a rank (namely, as the dimension of a Cartan subalgebra, when \(L\) is semisimple). - INPUT: - R– the base ring
- n– the rank
- a– the deformation parameter (used for \(n = 2\)); this should be a nonzero element of \(R\) in order for the resulting Lie algebra to actually have the right rank(?)
- names– (optional) the generator names
 - EXAMPLES: - sage: lie_algebras.three_dimensional_by_rank(QQ, 0) Abelian Lie algebra on 3 generators (X, Y, Z) over Rational Field sage: L = lie_algebras.three_dimensional_by_rank(QQ, 1) sage: L.structure_coefficients() Finite family {('Y', 'Z'): X} sage: L = lie_algebras.three_dimensional_by_rank(QQ, 2, 4) sage: L.structure_coefficients() Finite family {('X', 'Y'): Y, ('X', 'Z'): Y + Z} sage: L = lie_algebras.three_dimensional_by_rank(QQ, 2, 0) sage: L.structure_coefficients() Finite family {('X', 'Y'): Y} sage: lie_algebras.three_dimensional_by_rank(QQ, 3) sl2 over Rational Field - >>> from sage.all import * >>> lie_algebras.three_dimensional_by_rank(QQ, Integer(0)) Abelian Lie algebra on 3 generators (X, Y, Z) over Rational Field >>> L = lie_algebras.three_dimensional_by_rank(QQ, Integer(1)) >>> L.structure_coefficients() Finite family {('Y', 'Z'): X} >>> L = lie_algebras.three_dimensional_by_rank(QQ, Integer(2), Integer(4)) >>> L.structure_coefficients() Finite family {('X', 'Y'): Y, ('X', 'Z'): Y + Z} >>> L = lie_algebras.three_dimensional_by_rank(QQ, Integer(2), Integer(0)) >>> L.structure_coefficients() Finite family {('X', 'Y'): Y} >>> lie_algebras.three_dimensional_by_rank(QQ, Integer(3)) sl2 over Rational Field 
- sage.algebras.lie_algebras.examples.upper_triangular_matrices(R, n)[source]¶
- Return the Lie algebra \(\mathfrak{b}_k\) of \(k \times k\) upper triangular matrices. - Todo - This implementation does not know it is finite-dimensional and does not know its basis. - EXAMPLES: - sage: L = lie_algebras.upper_triangular_matrices(QQ, 4); L Lie algebra of 4-dimensional upper triangular matrices over Rational Field sage: TestSuite(L).run() sage: n0, n1, n2, t0, t1, t2, t3 = L.lie_algebra_generators() sage: L[n2, t2] == -n2 True - >>> from sage.all import * >>> L = lie_algebras.upper_triangular_matrices(QQ, Integer(4)); L Lie algebra of 4-dimensional upper triangular matrices over Rational Field >>> TestSuite(L).run() >>> n0, n1, n2, t0, t1, t2, t3 = L.lie_algebra_generators() >>> L[n2, t2] == -n2 True 
- sage.algebras.lie_algebras.examples.witt(R)[source]¶
- Return the Lie algebra of regular vector fields on \(\CC^{\times}\). - This is also known as the Witt (Lie) algebra. - See also - EXAMPLES: - sage: lie_algebras.regular_vector_fields(QQ) The Lie algebra of regular vector fields over Rational Field - >>> from sage.all import * >>> lie_algebras.regular_vector_fields(QQ) The Lie algebra of regular vector fields over Rational Field