It’s been a while since I wrote anything here. I have been busy :)
The universal enveloping algebra (UEA) of a Lie algebra is a complicated noncommutative algebra with an intricate structure. The center (the commutative part) of a UEA is hard to calculate. I have been using UEAs and their quantum deformations in my theoretical research for a very long time, and it’s time to put this theoretical knowledge and my computational chops together to do something useful for a change :)
Today’s problem is from the theory of Lie algebras. Specifically, I am going to write some SageMath code to calculate the quadratic Casimir element in the universal enveloping algebra of a Lie algebra. These elements play an important role in representation theory of Lie algebras and Lie groups.
Every Lie algebra has an invariant inner product called the Killing form. The inner product has the property that it is non-degenerate if and only if the Lie algebra is semi-simple. Another way of saying this is that the Killing form is an isomorphism between a Lie algebra \(\mathfrak{g}\) and and its dual \(\mathfrak{g}^\vee\). Let me call this isomorphism k and let us fix a basis B for our Lie algebra \(\mathfrak{g}\). The quadratic Casimir element is simply defined as
\[ c_2 = \sum_{e\in B} e \cdot k^{-1}(e^\vee) \]
where \(e^\vee\) is the dual basis element in corresponding to each basis element e in B.
The non-obvious part is to show that the quadratic Casimir is in the center. The center of the enveloping algebra is much larger. The algebra of elements in the center is identified by Harish-Chandra isomorphism and it involves calculating the invariants of a polynomial algebra under the action of the Weyl group of \(\mathfrak{g}\).
Luckily, SageMath’s Lie algebra library has everything I need. Here is the code:
def QuadraticCasimir(U):
A = U.killing_form_matrix().inverse()
B = U.basis().list()
N = len(B)
casimir = 0
for i in range(N):
for j in range(N):
casimir = casimir + B[i]*B[j]*A[i,j]
return(casimir)
Let us look at a couple of examples. Let me start with almost trivial example \(\mathfrak{sl}_2\):
U = LieAlgebra(QQ, cartan_type=['A',1])
QuadraticCasimir(U)
1/8*b1^2 + 1/2*b0*b2 - 1/4*b1
The basis elements (in order are) positive roots, then the Cartan elements and finally the negative roots. So, for the case above we have E, H and F. Thus the Casimir (up-to a scale) reads as
\[ EF + \frac{1}{4} H (H-2) \]
Let us do \(\mathfrak{sl}_{3}\) next:
U = LieAlgebra(QQ, cartan_type=['A',2])
QuadraticCasimir(U)
1/9*b3^2 + 1/9*b3*b4 + 1/9*b4^2 + 1/3*b0*b5 + 1/3*b1*b6 + 1/3*b2*b7 - 1/3*b3 - 1/3*b4
Continue with \(\mathfrak{so}_{5}\):
U = LieAlgebra(QQ, cartan_type=['B',2])
QuadraticCasimir(U)
1/6*b4^2 + 1/6*b4*b5 + 1/12*b5^2 + 1/6*b0*b6 + 1/3*b1*b7 + 1/6*b2*b8 + 1/3*b3*b9 - 1/2*b4 - 1/3*b5
\(\mathfrak{sp}_4\):
U = LieAlgebra(QQ, cartan_type=['C',2])
QuadraticCasimir(U)
1/12*b4^2 + 1/6*b4*b5 + 1/6*b5^2 + 1/3*b0*b6 + 1/6*b1*b7 + 1/6*b2*b8 + 1/3*b3*b9 - 1/3*b4 - 1/2*b5
The exeptional Lie algebra \(E_6\):
U = LieAlgebra(QQ, cartan_type=['E',6])
QuadraticCasimir(U)
1/18*b36^2 + 1/12*b36*b37 + 1/12*b37^2 + 5/36*b36*b38 + 1/6*b37*b38 + 5/36*b38^2 + 1/6*b36*b39 + 1/4*b37*b39 + 1/3*b38*b39 + 1/4*b39^2 + 1/9*b36*b40 + 1/6*b37*b40 + 2/9*b38*b40 + 1/3*b39*b40 + 5/36*b40^2 + 1/18*b36*b41 + 1/12*b37*b41 + 1/9*b38*b41 + 1/6*b39*b41 + 5/36*b40*b41 + 1/18*b41^2 + 1/12*b0*b42 + 1/12*b1*b43 + 1/12*b2*b44 + 1/12*b3*b45 + 1/12*b4*b46 + 1/12*b5*b47 + 1/12*b6*b48 + 1/12*b7*b49 + 1/12*b8*b50 + 1/12*b9*b51 + 1/12*b10*b52 + 1/12*b11*b53 + 1/12*b12*b54 + 1/12*b13*b55 + 1/12*b14*b56 + 1/12*b15*b57 + 1/12*b16*b58 + 1/12*b17*b59 + 1/12*b18*b60 + 1/12*b19*b61 + 1/12*b20*b62 + 1/12*b21*b63 + 1/12*b22*b64 + 1/12*b23*b65 + 1/12*b24*b66 + 1/12*b25*b67 + 1/12*b26*b68 + 1/12*b27*b69 + 1/12*b28*b70 + 1/12*b29*b71 + 1/12*b30*b72 + 1/12*b31*b73 + 1/12*b32*b74 + 1/12*b33*b75 + 1/12*b34*b76 + 1/12*b35*b77 - 2/3*b36 - 11/12*b37 - 5/4*b38 - 7/4*b39 - 5/4*b40 - 2/3*b41
I tried to calculate the quadratic Casimir for the exceptional lie algebras of Dynkin type \(E_7\) and \(E_8\), but alas, my poor laptop can’t handle the computation :)
There is a big chunk of literature on calculating the elements in the center of UEA (“invariant elements” in some parlance) in a reasonable way. See “Computation of Invariants of Lie Algebras by Means of Moving Frames” by Boyko, Patera, and Popovych, and its bibliography for the long history of such computations.