Symplectic Derivation Lie Algebras#
AUTHORS:
Travis Scrimshaw (2020-10): Initial version
- class sage.algebras.lie_algebras.symplectic_derivation.SymplecticDerivationLieAlgebra(R, g)[source]#
Bases:
InfinitelyGeneratedLieAlgebra
,IndexedGenerators
The symplectic derivation Lie algebra.
Fix a \(g \geq 4\) and let \(R\) be a commutative ring. Let \(H = R^{2g}\) be equipped with a symplectic form \(\mu\) with the basis \(a_1, \ldots, a_g, b_1, \ldots, b_g\) such that
\[\mu(a_i, a_j) = \mu(b_i, b_j) = 0, \qquad\qquad \mu(a_i, b_j) = -\mu(b_j, a_i) = \delta_{ij},\]for all \(i, j\). The symplectic derivation Lie algebra is the Lie algebra
\[\mathfrak{c}_g := \bigoplus_{w \geq 0} S^{w+2} H\]with the Lie bracket on basis elements
\[[x_1 \cdots x_{m+2}, y_1 \cdots y_{n+2}] = \sum_{i,j} \mu(x_i, y_j) x_1 \cdots \widehat{x}_i \cdots x_{m+2} \cdot y_1 \cdots \widehat{y}_j \cdots y_{n+2},\]where \(\widehat{z}\) denotes that factor is missing. When \(R = \QQ\), this corresponds to the classical Poisson bracket on \(C^{\infty}(\RR^{2g})\) restricted to polynomials with coefficients in \(\QQ\).
EXAMPLES:
sage: L = lie_algebras.SymplecticDerivation(QQ, 5) sage: elts = L.some_elements() sage: list(elts) [a1*a2, b1*b3, a1*a1*a2, b3*b4, a1*a4*b3, a1*a2 - 1/2*a1*a2*a2*a5 + a1*a1*a2*b1*b4] sage: [[elts[i].bracket(elts[j]) for i in range(len(elts))] ....: for j in range(len(elts))] [[0, -a2*b3, 0, 0, 0, -a1*a1*a2*a2*b4], [a2*b3, 0, 2*a1*a2*b3, 0, a4*b3*b3, a2*b3 - 1/2*a2*a2*a5*b3 + 2*a1*a2*b1*b3*b4], [0, -2*a1*a2*b3, 0, 0, 0, -2*a1*a1*a1*a2*a2*b4], [0, 0, 0, 0, a1*b3*b3, 0], [0, -a4*b3*b3, 0, -a1*b3*b3, 0, -a1*a1*a1*a2*b1*b3 - a1*a1*a2*a4*b3*b4], [a1*a1*a2*a2*b4, -a2*b3 + 1/2*a2*a2*a5*b3 - 2*a1*a2*b1*b3*b4, 2*a1*a1*a1*a2*a2*b4, 0, a1*a1*a1*a2*b1*b3 + a1*a1*a2*a4*b3*b4, 0]] sage: x = L.monomial(Partition([8,8,6,6,4,2,2,1,1,1])); x a1*a1*a1*a2*a2*a4*b1*b1*b3*b3 sage: [L[x, elt] for elt in elts] [-2*a1*a1*a1*a2*a2*a2*a4*b1*b3*b3, 3*a1*a1*a2*a2*a4*b1*b1*b3*b3*b3, -4*a1*a1*a1*a1*a2*a2*a2*a4*b1*b3*b3, a1*a1*a1*a2*a2*b1*b1*b3*b3*b3, -2*a1*a1*a1*a2*a2*a4*a4*b1*b3*b3*b3, -2*a1*a1*a1*a2*a2*a2*a4*b1*b3*b3 + a1*a1*a1*a2*a2*a2*a2*a4*a5*b1*b3*b3 + a1*a1*a1*a1*a1*a2*a2*a2*b1*b1*b1*b3*b3 - a1*a1*a1*a1*a2*a2*a2*a4*b1*b1*b3*b3*b4]
>>> from sage.all import * >>> L = lie_algebras.SymplecticDerivation(QQ, Integer(5)) >>> elts = L.some_elements() >>> list(elts) [a1*a2, b1*b3, a1*a1*a2, b3*b4, a1*a4*b3, a1*a2 - 1/2*a1*a2*a2*a5 + a1*a1*a2*b1*b4] >>> [[elts[i].bracket(elts[j]) for i in range(len(elts))] ... for j in range(len(elts))] [[0, -a2*b3, 0, 0, 0, -a1*a1*a2*a2*b4], [a2*b3, 0, 2*a1*a2*b3, 0, a4*b3*b3, a2*b3 - 1/2*a2*a2*a5*b3 + 2*a1*a2*b1*b3*b4], [0, -2*a1*a2*b3, 0, 0, 0, -2*a1*a1*a1*a2*a2*b4], [0, 0, 0, 0, a1*b3*b3, 0], [0, -a4*b3*b3, 0, -a1*b3*b3, 0, -a1*a1*a1*a2*b1*b3 - a1*a1*a2*a4*b3*b4], [a1*a1*a2*a2*b4, -a2*b3 + 1/2*a2*a2*a5*b3 - 2*a1*a2*b1*b3*b4, 2*a1*a1*a1*a2*a2*b4, 0, a1*a1*a1*a2*b1*b3 + a1*a1*a2*a4*b3*b4, 0]] >>> x = L.monomial(Partition([Integer(8),Integer(8),Integer(6),Integer(6),Integer(4),Integer(2),Integer(2),Integer(1),Integer(1),Integer(1)])); x a1*a1*a1*a2*a2*a4*b1*b1*b3*b3 >>> [L[x, elt] for elt in elts] [-2*a1*a1*a1*a2*a2*a2*a4*b1*b3*b3, 3*a1*a1*a2*a2*a4*b1*b1*b3*b3*b3, -4*a1*a1*a1*a1*a2*a2*a2*a4*b1*b3*b3, a1*a1*a1*a2*a2*b1*b1*b3*b3*b3, -2*a1*a1*a1*a2*a2*a4*a4*b1*b3*b3*b3, -2*a1*a1*a1*a2*a2*a2*a4*b1*b3*b3 + a1*a1*a1*a2*a2*a2*a2*a4*a5*b1*b3*b3 + a1*a1*a1*a1*a1*a2*a2*a2*b1*b1*b1*b3*b3 - a1*a1*a1*a1*a2*a2*a2*a4*b1*b1*b3*b3*b4]
REFERENCES:
- class Element[source]#
Bases:
LieAlgebraElement
- bracket_on_basis(x, y)[source]#
Return the bracket of basis elements indexed by
x
andy
, wherei < j
.EXAMPLES:
sage: L = lie_algebras.SymplecticDerivation(QQ, 5) sage: L.bracket_on_basis([5,2,1], [5,1,1]) 0 sage: L.bracket_on_basis([6,1], [3,1,1]) -2*a1*a1*a3 sage: L.bracket_on_basis([9,2,1], [4,1,1]) -a1*a1*a1*a2 sage: L.bracket_on_basis([5,5,2], [6,1,1]) 0 sage: L.bracket_on_basis([5,5,5], [10,3]) 3*a3*a5*a5 sage: L.bracket_on_basis([10,10,10], [5,3]) -3*a3*b5*b5
>>> from sage.all import * >>> L = lie_algebras.SymplecticDerivation(QQ, Integer(5)) >>> L.bracket_on_basis([Integer(5),Integer(2),Integer(1)], [Integer(5),Integer(1),Integer(1)]) 0 >>> L.bracket_on_basis([Integer(6),Integer(1)], [Integer(3),Integer(1),Integer(1)]) -2*a1*a1*a3 >>> L.bracket_on_basis([Integer(9),Integer(2),Integer(1)], [Integer(4),Integer(1),Integer(1)]) -a1*a1*a1*a2 >>> L.bracket_on_basis([Integer(5),Integer(5),Integer(2)], [Integer(6),Integer(1),Integer(1)]) 0 >>> L.bracket_on_basis([Integer(5),Integer(5),Integer(5)], [Integer(10),Integer(3)]) 3*a3*a5*a5 >>> L.bracket_on_basis([Integer(10),Integer(10),Integer(10)], [Integer(5),Integer(3)]) -3*a3*b5*b5
- degree_on_basis(x)[source]#
Return the degree of the basis element indexed by
x
.EXAMPLES:
sage: L = lie_algebras.SymplecticDerivation(QQ, 5) sage: L.degree_on_basis([5,2,1]) 1 sage: L.degree_on_basis([1,1]) 0 sage: elt = L.monomial(Partition([5,5,2,1])) + 3*L.monomial(Partition([3,3,2,1])) sage: elt.degree() 2
>>> from sage.all import * >>> L = lie_algebras.SymplecticDerivation(QQ, Integer(5)) >>> L.degree_on_basis([Integer(5),Integer(2),Integer(1)]) 1 >>> L.degree_on_basis([Integer(1),Integer(1)]) 0 >>> elt = L.monomial(Partition([Integer(5),Integer(5),Integer(2),Integer(1)])) + Integer(3)*L.monomial(Partition([Integer(3),Integer(3),Integer(2),Integer(1)])) >>> elt.degree() 2
- some_elements()[source]#
Return some elements of
self
.EXAMPLES:
sage: L = lie_algebras.SymplecticDerivation(QQ, 5) sage: L.some_elements() [a1*a2, b1*b3, a1*a1*a2, b3*b4, a1*a4*b3, a1*a2 - 1/2*a1*a2*a2*a5 + a1*a1*a2*b1*b4]
>>> from sage.all import * >>> L = lie_algebras.SymplecticDerivation(QQ, Integer(5)) >>> L.some_elements() [a1*a2, b1*b3, a1*a1*a2, b3*b4, a1*a4*b3, a1*a2 - 1/2*a1*a2*a2*a5 + a1*a1*a2*b1*b4]