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')#
Return the rank
n
Heisenberg algebra in the given representation.INPUT:
R
– the base ringn
– 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
- sage.algebras.lie_algebras.examples.abelian(R, names=None, index_set=None)#
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
- sage.algebras.lie_algebras.examples.affine_transformations_line(R, names=['X', 'Y'], representation='bracket')#
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()
- sage.algebras.lie_algebras.examples.cross_product(R, names=['X', 'Y', 'Z'])#
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()
- sage.algebras.lie_algebras.examples.pwitt(R, p)#
Return the \(p\)-Witt Lie algebra over \(R\).
INPUT:
R
– the base ringp
– a positive integer that is \(0\) inR
EXAMPLES:
sage: lie_algebras.pwitt(GF(5), 5) The 5-Witt Lie algebra over Finite Field of size 5
- sage.algebras.lie_algebras.examples.regular_vector_fields(R)#
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
- sage.algebras.lie_algebras.examples.sl(R, n, representation='bracket')#
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 ringn
– the size of the matrixrepresentation
– (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
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
- sage.algebras.lie_algebras.examples.so(R, n, representation='bracket')#
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. As a matrix Lie algebra, it is given by the set of all real anti-symmetric \(n \times n\) matrices.
INPUT:
R
– the base ringn
– the size of the matrixrepresentation
– (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
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
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
- sage.algebras.lie_algebras.examples.sp(R, n, representation='bracket')#
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 ringn
– the size of the matrixrepresentation
– (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]]
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]
- sage.algebras.lie_algebras.examples.strictly_upper_triangular_matrices(R, n)#
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]
- sage.algebras.lie_algebras.examples.su(R, n, representation='matrix')#
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 ringn
– the size of the matrixrepresentation
– (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
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
- sage.algebras.lie_algebras.examples.three_dimensional(R, a, b, c, d, names=['X', 'Y', 'Z'])#
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()
- sage.algebras.lie_algebras.examples.three_dimensional_by_rank(R, n, a=None, names=['X', 'Y', 'Z'])#
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 ringn
– the ranka
– 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
- sage.algebras.lie_algebras.examples.upper_triangular_matrices(R, n)#
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
- sage.algebras.lie_algebras.examples.witt(R)#
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