Compute the Killing form for the Lie algebra sl(n,F)
> restart;
> interface(rtablesize=infinity):
> with(LinearAlgebra):
Can set the upper variable to be as high as you want. Computes the Killing forms from 1 to N. Note that for n=1, the Killing form has determinant 0 (only the zero matrix lives in sl(1,C)).
> N := 10:
> for n from 2 to N do
> #Load the matrices - first the diagonal ones
> for i from 1 by 1 to n-1 do
> M[i] := Matrix(n);
> M[i](i,i) := 1;
> M[i](i+1,i+1) := -1;
> end do:
> #Counter for non diagonal basis matrix entries.
> ctr := n:
> for i from 1 by 1 to n do
> for j from 1 by 1 to n do
> if(i <> j) then
> M[ctr] := Matrix(n);
> M[ctr](i,j) := 1;
> ctr := ctr +1;
> end if
> end do:
> end do:
> A := Matrix(n^2-1):
> #Use the fact that the Killing form is 2nTr(xy)
> for i from 1 by 1 to n^2-1 do
> for j from 1 by 1 to n^2-1 do
> A(i,j) := 2*n*Trace(M[i].M[j]):
> end do:
> end do:
> print(Determinant(A));
> end do:
-128
-5038848
140737488355328
5000000000000000000000000
-354400937492545922690672153504784580608
-72317557999158469111384459491956546088110808312359944192
5789604461865809771178549250434395392663499233282028201972879200\
3956564819968
2377075181545648673322673694070617151729279988760376752582280070\
49681544211307650055565541375563792384
-633825300114114700748351602688000000000000000000000000000000000\
0000000000000000000000000000000000000000000000000000000000\
000000000