{VERSION 6 0 "IBM INTEL NT" "6.0" }
{USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0
1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0
0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 }
{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2
2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1
11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0
0 0 0 1 0 1 0 2 2 0 1 }}
{SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG
{PARA 0 "" 0 "" {TEXT -1 24 "Load the standard basis." }}}{EXCHG
{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "M[1] := <<1|0|0>,<0|-1|0>,<0|0|0>>:
" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "M[2] := <<0|0|0>,<0|1|0
>,<0|0|-1>>:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "M[3] := <<0
|1|0>,<0|0|0>,<0|0|0>>:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "
M[4] := <<0|0|1>,<0|0|0>,<0|0|0>>:" }}}{EXCHG {PARA 0 "> " 0 ""
{MPLTEXT 1 0 34 "M[5] := <<0|0|0>,<1|0|0>,<0|0|0>>:" }}}{EXCHG {PARA
0 "> " 0 "" {MPLTEXT 1 0 34 "M[6] := <<0|0|0>,<0|0|1>,<0|0|0>>:" }}}
{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "M[7] := <<0|0|0>,<0|0|0>,<1|
0|0>>:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "M[8] := <<0|0|0>,
<0|0|0>,<0|1|0>>:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1113 "Now, we wi
sh to figure out how many times M[a] appears when we write M[k].M[i]-M
[i].M[k] in terms of the standard basis. I couldn't come up with a qui
ck solution so here is the hack. What we do is notice that if we coul
d see the matrix, then we know that the (i,j) component is 'always' th
e number of times M[a] appears in the representation in the standard m
atrix. The exception is with the terms on the diagonal. The upper righ
t corner is correct for 3 by 3 matrices but the lower right corner is \+
the negation of what it needs to be. Notice that this won't extend imm
ediately to higher dimensions but the fix is very easy should one be a
mbitious enough. By example, suppose that the matrix we got after this
multiplication was\n[1 0 3]\n[0 -2 0]\n[0 0 1]\nThen, in the standard
representation, we have one M[1] term (the top right entry), three M[
4] terms (the top right entry) and negative one M[2] terms (the bottom
right entry). All this code does is extract that information and puts
it into one big matrix. Perhaps there was a better way of setting up \+
the indices but I'll leave that to the interested reader." }}}{EXCHG
{PARA 0 "> " 0 "" {MPLTEXT 1 0 278 "c[1]:= 1: c[2] := 3: c[3] := 1: c[
4]:= 1: c[5] := 2: c[6] := 2: c[7]:= 3: c[8] := 3: \nd[1] := 1: d[2]:
= 3: d[3] := 2: d[4] := 3: d[5]:= 1: d[6] := 3: d[7] := 1: d[8]:= 2: \+
\ncor[1] := 1: cor[2] := -1: cor[3] := 1: cor[4] := 1: cor[5] := 1: c
or[6] := 1: cor[7] := 1: cor[8] := 1:" }}}{EXCHG {PARA 0 "> " 0 ""
{MPLTEXT 1 0 20 "with(LinearAlgebra):" }}}{EXCHG {PARA 0 "> " 0 ""
{MPLTEXT 1 0 206 "for k from 1 by 1 while k <= 8 do \nA[k] := Matrix(8
):\nfor i from 1 by 1 while i <= 8 do for j from 1 by 1 while j <= 8 d
o \n A[k](j,i) := cor[j]*(M[k].M[i]-M[i].M[k])(c[j],d[j]):\nend d
o: end do: end do:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 49 "Now, comput
e the Killing Form and its determinant" }}}{EXCHG {PARA 0 "> " 0 ""
{MPLTEXT 1 0 15 "B := Matrix(8):" }}}{EXCHG {PARA 0 "> " 0 ""
{MPLTEXT 1 0 161 "for i from 1 by 1 while i <= 8 do for j from 1 by 1
while j <= 8 do \n B(i,j) := Trace(A[i].A[j]):\nend do: end do:\nB
;\nDeterminant(B);\nifactor(Determinant(B));" }}{PARA 11 "" 1 ""
{XPPMATH 20 "6#-%'RTABLEG6%\")'f3P&-%'MATRIXG6#7*7*\"#7!\"'\"\"!F.F.F.
F.F.7*F-F,F.F.F.F.F.F.7*F.F.F.F.\"\"'F.F.F.7*F.F.F.F.F.F.F1F.7*F.F.F1F
.F.F.F.F.7*F.F.F.F.F.F.F.F17*F.F.F.F1F.F.F.F.7*F.F.F.F.F.F1F.F.%'Matri
xG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#!([)Q]" }}{PARA 11 "" 1 ""
{XPPMATH 20 "6#,$*&)-%!G6#\"\"#\"\")\"\"\")-F'6#\"\"$\"\"*F+!\"\"" }}}
{EXCHG {PARA 0 "" 0 "" {TEXT -1 90 "Notice that this matrix is nothing
more than 2nTr(M[i].M[j]). Wish I knew of this earlier!" }}}}{MARK "1
0 0 0" 748 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1
1 }