Rank Two Heisenberg-Virasoro Algebras - Algebras

Skip to content
Back to top
View this page
Edit this page

# Rank Two Heisenberg-Virasoro Algebras

AUTHORS:

- Travis Scrimshaw (2018-08): Initial version

class sage.algebras.lie_algebras.rank_two_heisenberg_virasoro.RankTwoHeisenbergVirasoro(R)

  Bases: `InfinitelyGeneratedLieAlgebra`, `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

      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

  Python

      >>> 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:

  - [LT2018]

  E(a, b)

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

    EXAMPLES:

    Sage

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

    Python

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

  class Element

    Bases: `LieAlgebraElement`

  K(i=None)

    Return the basis element \(K_i\) of `self`.

    EXAMPLES:

    Sage

        sage: L = lie_algebras.RankTwoHeisenbergVirasoro(QQ)
        sage: L.K(1)
        K1
        sage: list(L.K())
        [K1, K2, K3, K4]

    Python

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

    Return the bracket of basis elements indexed by `i` and `j`, where `i < j`.

    EXAMPLES:

    Sage

        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

    Python

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

    Return some elements of `self`.

    EXAMPLES:

    Sage

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

    Python

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

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

    EXAMPLES:

    Sage

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

    Python

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