# Rank Two Heisenberg-Virasoro Algebras#

AUTHORS:

• Travis Scrimshaw (2018-08): Initial version

class sage.algebras.lie_algebras.rank_two_heisenberg_virasoro.RankTwoHeisenbergVirasoro(R)[source]#

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

>>> from sage.all import *
>>> L = lie_algebras.RankTwoHeisenbergVirasoro(QQ)
>>> K1,K2,K3,K4 = L.K()
>>> E2m1 = L.E(Integer(2),-Integer(1))
>>> Em21 = L.E(-Integer(2),Integer(1))
>>> t2m1 = L.t(Integer(2),-Integer(1))
>>> t53 = L.t(Integer(5),Integer(3))

>>> Em21.bracket(t2m1)
-2*K1 + K2
>>> t53.bracket(E2m1)
11*t(7, 2)
>>> E2m1.bracket(Em21)
2*K3 - K4
>>> E2m1.bracket(t2m1)
0

>>> all(x.bracket(y) == Integer(0) for x in [K1,K2,K3,K4] for y in [E2m1, Em21, t2m1])
True


REFERENCES:

E(a, b)[source]#

Return the basis element $$E(a,b)$$ of self.

EXAMPLES:

sage: L = lie_algebras.RankTwoHeisenbergVirasoro(QQ)
sage: L.E(1,-2)
E(1, -2)

>>> from sage.all import *
>>> L = lie_algebras.RankTwoHeisenbergVirasoro(QQ)
>>> L.E(Integer(1),-Integer(2))
E(1, -2)

class Element[source]#
K(i=None)[source]#

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]

>>> from sage.all import *
>>> L = lie_algebras.RankTwoHeisenbergVirasoro(QQ)
>>> L.K(Integer(1))
K1
>>> list(L.K())
[K1, K2, K3, K4]

bracket_on_basis(i, j)[source]#

Return the bracket of basis elements indexed by i and j, where i < 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

>>> from sage.all import *
>>> L = lie_algebras.RankTwoHeisenbergVirasoro(QQ)
>>> v = L._v
>>> L.bracket_on_basis(('K',Integer(2)), ('t', v(Integer(3),-Integer(1))))
0
>>> L.bracket_on_basis(('K', Integer(4)), ('E', v(Integer(3),-Integer(1))))
0
>>> L.bracket_on_basis(('t', v(Integer(3),-Integer(1))), ('t', v(Integer(4),Integer(3))))
0
>>> L.bracket_on_basis(('t', v(Integer(3),-Integer(1))), ('E', v(Integer(4),Integer(3))))
-13*t(7, 2)
>>> L.bracket_on_basis(('t', v(Integer(2),Integer(2))),  ('E', v(Integer(1),Integer(1))))
0
>>> L.bracket_on_basis(('t', v(Integer(3),-Integer(1))), ('E', v(-Integer(3),Integer(1))))
3*K1 - K2
>>> L.bracket_on_basis(('E', v(Integer(3),-Integer(1))), ('E', v(Integer(4),Integer(3))))
-13*E(7, 2)
>>> L.bracket_on_basis(('E', v(Integer(2),Integer(2))),  ('E', v(Integer(1),Integer(1))))
0
>>> L.bracket_on_basis(('E', v(Integer(3),-Integer(1))), ('E', v(-Integer(3),Integer(1))))
3*K3 - K4

some_elements()[source]#

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)]

>>> from sage.all import *
>>> L = lie_algebras.RankTwoHeisenbergVirasoro(QQ)
>>> 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)[source]#

Return the basis element $$t^{(a,b)}$$ of self.

EXAMPLES:

sage: L = lie_algebras.RankTwoHeisenbergVirasoro(QQ)
sage: L.t(1,-2)
t(1, -2)

>>> from sage.all import *
>>> L = lie_algebras.RankTwoHeisenbergVirasoro(QQ)
>>> L.t(Integer(1),-Integer(2))
t(1, -2)