Rank Two Heisenberg-Virasoro Algebras¶
AUTHORS:
Travis Scrimshaw (2018-08): Initial version
-
class
sage.algebras.lie_algebras.rank_two_heisenberg_virasoro.
RankTwoHeisenbergVirasoro
(R)¶ Bases:
sage.algebras.lie_algebras.lie_algebra.InfinitelyGeneratedLieAlgebra
,sage.structure.indexed_generators.IndexedGenerators
The rank 2 Heisenberg-Virasoro algebra.
The rank 2 Heisenberg-Virasoro (Lie) algebra is the Lie algebra \(L\) spaned by the elements
\[\{t^{\alpha}, E(\alpha) \mid \alpha \in \ZZ^2 \setminus \{(0,0)\} \} \cup \{K_1, K_2, K_3, K_4\},\]which satisfy the relations
\[\begin{split}\begin{aligned} \mbox{ } [t^{\alpha}, t^{\beta}] & = [K_i, L] = 0, \\ [t^{\alpha}, E(\beta)] & = \det\begin{pmatrix} \beta \\ \alpha \end{pmatrix} t^{\alpha+\beta} + \delta_{\alpha,-\beta} (\alpha_1 K_1 + \alpha_2 K_2), \\ [E(\alpha), E(\beta)] & = \det\begin{pmatrix} \beta \\ \alpha \end{pmatrix} E(\alpha+\beta) + \delta_{\alpha,-\beta} (\alpha_1 K_3 + \alpha_2 K_4), \end{aligned}\end{split}\]where \(\alpha = (\alpha_1, \alpha_2)\) and \(\delta_{xy}\) is the Kronecker delta.
EXAMPLES:
sage: L = lie_algebras.RankTwoHeisenbergVirasoro(QQ) sage: K1,K2,K3,K4 = L.K() sage: E2m1 = L.E(2,-1) sage: Em21 = L.E(-2,1) sage: t2m1 = L.t(2,-1) sage: t53 = L.t(5,3) sage: Em21.bracket(t2m1) -2*K1 + K2 sage: t53.bracket(E2m1) 11*t(7, 2) sage: E2m1.bracket(Em21) 2*K3 - K4 sage: E2m1.bracket(t2m1) 0 sage: all(x.bracket(y) == 0 for x in [K1,K2,K3,K4] for y in [E2m1, Em21, t2m1]) True
REFERENCES:
-
E
(a, b)¶ Return the basis element \(E(a,b)\) of
self
.EXAMPLES:
sage: L = lie_algebras.RankTwoHeisenbergVirasoro(QQ) sage: L.E(1,-2) E(1, -2)
-
class
Element
¶ Bases:
sage.algebras.lie_algebras.lie_algebra_element.LieAlgebraElement
-
K
(i=None)¶ Return the basis element \(K_i\) of
self
.EXAMPLES:
sage: L = lie_algebras.RankTwoHeisenbergVirasoro(QQ) sage: L.K(1) K1 sage: list(L.K()) [K1, K2, K3, K4]
-
bracket_on_basis
(i, j)¶ Return the bracket of basis elements indexed by
i
andj
, wherei < j
.EXAMPLES:
sage: L = lie_algebras.RankTwoHeisenbergVirasoro(QQ) sage: v = L._v sage: L.bracket_on_basis(('K',2), ('t', v(3,-1))) 0 sage: L.bracket_on_basis(('K', 4), ('E', v(3,-1))) 0 sage: L.bracket_on_basis(('t', v(3,-1)), ('t', v(4,3))) 0 sage: L.bracket_on_basis(('t', v(3,-1)), ('E', v(4,3))) -13*t(7, 2) sage: L.bracket_on_basis(('t', v(2,2)), ('E', v(1,1))) 0 sage: L.bracket_on_basis(('t', v(3,-1)), ('E', v(-3,1))) 3*K1 - K2 sage: L.bracket_on_basis(('E', v(3,-1)), ('E', v(4,3))) -13*E(7, 2) sage: L.bracket_on_basis(('E', v(2,2)), ('E', v(1,1))) 0 sage: L.bracket_on_basis(('E', v(3,-1)), ('E', v(-3,1))) 3*K3 - K4
-
some_elements
()¶ Return some elements of
self
.EXAMPLES:
sage: L = lie_algebras.RankTwoHeisenbergVirasoro(QQ) sage: L.some_elements() [E(1, 1), E(-2, -2), E(0, 1), t(1, 1), t(4, -1), t(2, 3), K2, K4, K3 - 1/2*t(-1, 3) + E(1, -3) + E(2, 2)]
-
t
(a, b)¶ Return the basis element \(t^{(a,b)}\) of
self
.EXAMPLES:
sage: L = lie_algebras.RankTwoHeisenbergVirasoro(QQ) sage: L.t(1,-2) t(1, -2)
-