Demo for implementation of Universal Enveloping Algebras, which can be used for finding singular vectors.
Install by github links.
using Pkg
Pkg.add("https://github.com/RexWzh/SingularVectors.jl")
Treat the Lie algebra as a subalgebra of the corresponding universal enveloping algebra.
using SingularVectors, Test
alg = AlgebraBySC(sl2scmat)
# elements of lie algebra
(e, h, f), scmat = alg.basis, alg.scmat
# elements of the enveloping algebra
ee, hh, ff = LieEnvElem.(alg.basis)
# PBW ordering: e < h < f
# (hh, ff, ee) = (hh, ee, ff) + (hh, [ff, ee])
# = (ee, hh, ff) + 2 * (ee, ff) - (hh, hh)
@test ff * ee == ee * ff + f * e
@test hh * ff * ee == hh * ee * ff + hh * (f * e)
Notes:
- Data type
AlgebraBySC
is an analogy of the GAP functionAlgebraByStructureConstants
- Element of
SCMat
areSparseVector
s in order to save memory - For simplicity, I use
SCMat
instead ofSCMat{T}
to represent the structure constants array. This should be changed in the later work.