off echo,nat$ out "rcalculderivgtildedelta6_7V.r"$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % introduction of the generic derivation delta of the 6-dimensional algebra g %as computed by %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for all i,j let ksi(i,j)=xi(i,j)$ matrix delta(6,6)$ delta:= mat((ksi(1,1),0,0,0,0,0),(ksi(2,1),ksi(2,2),0,0,0,0),(ksi(3,1),ksi(3,2),2*ksi(1, 1),0,0,0),(ksi(4,1),ksi(4,2),ksi(4,3),ksi(2,2) + ksi(1,1),0,0),(ksi(5,1),ksi(5,2 ),ksi(5,3),ksi(3,2),3*ksi(1,1),0),(ksi(6,1),ksi(6,2),ksi(6,3),ksi(4,2) + ksi(3,1 ),ksi(4,3) - ksi(2,1),ksi(2,2) + 2*ksi(1,1)))$ shortformdelta:={xi(2,1),SS,xi(3,1),xi(3,2),SS,xi(4,3),SS,xi(5,2),xi(5,3),SS,xi(6,2),xi(6,3)}$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % restriction on the parameters for nilpotent derivation and mod(ad g). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% xi(1,1):=0$ xi(2,2):=0$ %impose par nilpotence de delta xi(4,2):=0$ xi(4,1):=0$ xi(5,1):=0$ xi(6,1):=0$ %reduction par adjoints %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %initial conditions for specific delta xi(2,1):=1$ xi(3,1):=0$ xi(3,2):=0$ xi(4,3):=0$ xi(5,2):=0$ xi(5,3):=0$ xi(6,2):=a$ xi(6,3):=0$ write "delta:=",delta$ write "shortformdelta:=",shortformdelta$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % in "the commut relations file of g" % extended to the commut. relations of $\tilde{g}_delta %by the commutation relations involving X(0)=delta % and the projector V(0) on X(0) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% in "6nilp/6nilp.7"$ for j:=0:6 do x(0)*x(j):= if j neq 0 then for k:=1:6 sum delta(k,j)*x(k) else 0 for j:=1:6 do x(j)*x(0):= - x(0)*x(j)$ FOR j:=0:DIM DO V(0)*x(j):= IF j=0 THEN 1 ELSE 0; FOR i:=1:DIM DO V(i)*x(0):=0$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %MATRIXD will denote the generic derivation of the 7-dimensional {\tilde{g}}_{delta} % Let MATRIXD=matrix(D(i,j)). Collecting the equations {i,j} 1\leqslant i < i \leqslant 6 % -D [X(i),X(j)] + [DX(i), X(j)] + [X(i), DX(j)]. MATRIX MATRIXD(7,7)$ for i:=1:7 DO for j:=1:7 DO MATRIXD(i,j):=D(i-1,j-1)$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% COLLECT_DERIVGTILDEDELTA:= for i:=0:DIM-1 JOIN for j:=i+1:DIM JOIN { {{i,j}, -(WS:=for k:=0:DIM sum (WS:=V(k)*(WS:=X(i)*X(j))) * (for m:=0:DIM sum D(m,k)*X(m)) ) + (WS:=for k:=0:DIM sum D(k,i)*(WS:=X(k)*X(j))) + (WS:= for k:=0:DIM sum D(k,j)*(WS:=X(i)*X(k))) }}$ %COLLECT_DERIVGTILDEDELTA; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Collecting the nonzero equations {i,j}|k obtained by projecting %on X(k) the derivation equation -D [X(i),X(j)] + [DX(i), X(j)] + [X(i), DX(j)]. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %off exp$ %on factor$ %la liste des équations non nulles %write "list of the nonzero derivation equations"$ COLLECT_EQ:=FOR j1:=1:LENGTH(COLLECT_DERIVGTILDEDELTA) JOIN FOR j2:=0:DIM JOIN IF V(j2)*PART(PART(COLLECT_DERIVGTILDEDELTA,j1),2) NEQ 0 THEN {{{PART(PART(COLLECT_DERIVGTILDEDELTA,j1),1),j2}, V(j2)*PART(PART(COLLECT_DERIVGTILDEDELTA,j1),2)} } ELSE {}$ COMMENT WRITE "Derivation equations to cancel (Reduce output) : \\", COLLECT_EQ$ % WRITE "Torsion equations to cancel (Latex output) : \\USD"$ % for each A in COLLECT_EQ do % if PART(A,2) neq 0 then % <> $ % %<> $ % write "USD"$ off factor$ on exp$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCEDURE OTEZERO(U)$ %enleve les 0 dans une liste BEGIN$ LIST U$ RETURN FOR EACH A IN U JOIN IF A NEQ 0 THEN {A} ELSE {}$ END$ PROCEDURE distinct(U)$ BEGIN;INTEGER j;LIST UU$ j:=1;UU:={}$ S: IF U NEQ {} THEN ZZZ:=PART(u,j)$ IF ZZZ MEMBER UU THEN <> ELSE UU:= ZZZ. UU $ P: IF j> ELSE <>$ CLEAR ZZZ$ END$ PROCEDURE UNKNOWNSINLIST(U)$ BEGIN$ LIST U$ RETURN IF U={} THEN U ELSE IF PART(PART(SOLVE(U),1),0) = LIST THEN FOR EACH A IN PART(SOLVE(U),1) COLLECT LHS A ELSE {LHS PART(SOLVE(U),1)} $ END$ PROCEDURE UNKNOWNSINEXPRESSION(U)$ BEGIN$ RETURN IF NUMBERP U THEN {} ELSE IF PART(PART(SOLVE(U),1),0) = LIST THEN FOR EACH A IN PART(SOLVE(U),1) COLLECT LHS A ELSE {LHS PART(SOLVE(U),1)} $ END$ PROCEDURE SSOLVE(n,p)$ BEGIN INTEGER k,j$ k:=1$ j:=1$ S1: IF z(k,j) NEQ 0 THEN <> ELSE <>$ S2: CALLLET(z(k,j),0) $ S3: IF j

> ELSE GO TO S4$ GO TO S1$ S4: END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCEDURE SELECTVAR(U)$ BEGIN$ integer i,j$ i:=6$ j:=6$ LI:=UNKNOWNSINEXPRESSION(U)$ S: IF D(i,j) MEMBER LI AND NUMBERP DF(U,D(i,j)) THEN <> ELSE IF j>0 THEN <> ELSE IF i>0 THEN <> ELSE <>$ F : END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% procedure calllet(U,V)$ let U=V$ PROCEDURE resol(L)$ begin integer k$ k:=1$ S: AA:=part(part(L,k),2)$ If AA=0 then <>$ write "on resoud l'equation " , PART(PART(L,k),1)," qui est maintenant AA:=",AA$ W:= SELECTVAR(AA)$ if W=0 then <>$ write "bonne inconnue W:=",W$ WW:= RHS(part(solve(AA=0,W),1))$ write "sa valeur doit etre WW:=",WW$ calllet(W,WW)$ F: if k < length(L) then <>$ clear AA,W,WW$ END$ write "phase 1 de la resolution des equations"$ resol(COLLECT_EQ)$ on factor$ WRITE "Derivation equations to cancel (Reduce output) : \\", COLLECT_EQ$ %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %write "si a neq 0 il y a une phase 2"$ write "il n'y a pas de phase 2"$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% on factor$ %write "collect_eq:=",collect_eq$ %bye$ matrix MATD(7,7)$ for i:=1:7 do for j:=1:7 do MATD(i,j):=D(i-1,j-1)$ off nat$ write "derivation generique de gtildedelta:"$ write "MATD:=",MATD$ write "pour delta:=",delta$ write "pour shortformdelta:=",shortformdelta$ off nat$ ws:=for i:=1:7 join for j:=1:7 collect MATD(i,j)$ % mise des elements matriciels de MATD en liste pour calcul des parametres %WS:=LENGTH(UNKNOWNSINLIST(WS))$ WS:=IF a MEMBER UNKNOWNSINLIST(WS) THEN LENGTH(UNKNOWNSINLIST(WS))-1 ELSE WS:=LENGTH(UNKNOWNSINLIST(WS))$ % lorsqu il y a a qui est considere comme unknown write "dim Der(gtildedelta):=",WS$ % bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %derivation generique de gtildedelta:$ comment MATD:= mat((d(0,0),d(0,1),0,0,0,0,0), (0,d(1,1),0,0,0,0,0), (d(2,0),d(2,1),d(1,1) + d(0,0),d(0,1),0,0,0), (((2*d(1,1) - d(0,0))*a)/2,d(3,1),0,2*d(1,1),0,0,0), (d(4,0),d(4,1), - d(2,0),d(4,3),2*d(1,1) + d(0,0),d(0,1),0), (d(5,0),d(5,1),( - (2*d(1,1) - d(0,0))*a)/2, - (d(2,0) - d(0,1)*a),0,3*d(1,1),0), (d(6,0),d(6,1), - (d(4,0) - d(2,1)*a + d(5,1)),d(6,3), - (d(2,0) - d(0,1)*a - d(3,1)),d(4,3) - d(2,1),3*d(1,1) + d(0,0)))$ %pour delta:= %mat((0,0,0,0,0,0),(1,0,0,0,0,0),(0,0,0,0,0,0),(0,0,0,0,0,0),(0,0,0,0,0,0),(0,a,0 %,0,-1,0))$ %pour shortformdelta:={1,ss,0,0,ss,0,ss,0,0,ss,a,0}$ %dim Der(gtildedelta):=14$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% listMATD:=for i:=1:7 join for j:=1:7 collect MATD(i,j)$ listparametresMATD:=UNKNOWNSINLIST(listmatD)$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% ecriture du premier membre du tore %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %WS:=for each U in listparametresMATD JOIN IF U neq d(0,0) and U neq a then {U} else {}$ %for each U in WS DO <>$ %d(0,0):=1$ %off nat$ %t1:=matd; %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %introduction de la matrice ID identite matrix ID(7,7)$ for i:=1:7 do for j:=1:7 do <>$ write "un element t1 d'un tore "$ %write "seul candidat a etre un element t1 d'un tore "$ write "t1:=D(0,0)"$ matrix t1(7,7)$ t1 := mat((1,0,0,0,0,0,0),(0,0,0,0,0,0,0),(0,0,1,0,0,0,0),(( - a)/2,0,0,0,0,0,0) ,(0,0,0,0,1,0,0),(0,0,a/2,0,0,0,0),(0,0,0,0,0,0,1))$ on nat$ write "t1:=", t1$ %% %off nat$ %on factor$ det(t1-x*ID); off factor$ mateigen(t1,x); %bye$ %% %write "commutant de t1 dans der(gtildedelta):"$ %Z:=MATD*t1-t1*MATD$ %SSOLVE(7,7)$ %write "commutant de t1 :=",MATD; %bye$ %write "Mais t1 n'est pas semisimple "$ %write "gtildedelta est caracteristiquement nilpotente"$ %for j:=1:7 do <>$ %d(1,1):=1$ %off nat$ %t2:=matd; %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% matrix t2(7,7)$ t2 := mat((0,0,0,0,0,0,0),(0,1,0,0,0,0,0),(0,0,1,0,0,0,0),(a,0,0,2,0,0,0),(0,0,0 ,0,2,0,0),(0,0, - a,0,0,3,0),(0,0,0,0,0,0,3))$ write "t2:=D(1,1)",t2$ %%off nat$ on factor$ det(t2-x*ID); off factor$ mateigen(t2,x); %bye$ % %write "le calcul du commutant de t1 et t2 dans der(gtildedelta):"$ %write "commutant de t1 et t2 dans der(gtildedelta):"$ %Z:=MATD*t2-t2*MATD$ %SSOLVE(7,7)$ %write "commutant de t1 et t2:=",MATD; %bye$ %write "le calcul du commutant de t1 et t2 dans der(gtildedelta) permet de prendre comme element semi-simple dans le commutant:"$ %matrix t3(7,7)$ %t3(1,3):=-1$ %t3(3,3):=1$ %t3(4,2):=-1$ %t3(4,4):=1$ %t3(5,1):=-1$ %t3(5,3):=-1$ %t3(5,5):=1$ %t3(6,1):=1/2$ %t3(6,3):=1/2$ %t3(6,6):=1$ %t3(7,7):=2$ %write "t3:=-D(0,2)+(D(5,0)+D(5,2))/2:=",t3$ %%off nat$ %on factor$ %det(t3-x*ID); %off factor$ %mateigen(t3,x); %bye$ % %write "commutant de t1 et t2 et t3 dans der(gtildedelta):"$ %Z:=MATD*t3-t3*MATD$ %SSOLVE(7,7)$ %write "commutant de t1,t2,t3:=",MATD$ %write "le calcul du commutant de t1 et t2 et t3 dans der(gtildedelta) montre que t1,t2,t3 est un tore maximal."$ write " t1,t2 est un tore maximal."$ %write " t1 est un tore maximal."$ %write "seul tore maximal: {0}."$ %bye$ write "matrice de passage de la base X(0)=delta, X(1),..., X(6) a une base diagonalisant le tore maximal: on peut prendre"$ matrix P(7,7)$ %P:=ID$ for i:=1:7 do <>$ P(4,1):=-a/2$ P(6,3):=a/2$ on nat$ write "P:=",P$ write "P**(-1)*t1*P:=", P**(-1)*t1*P; write "P**(-1)*t2*P:=", P**(-1)*t2*P; %write "P**(-1)*t3*P:=", P**(-1)*t3*P; write "matrice des derivations dans cette base diagonalisante Y(1),...,Y(7):"$ write "P**(-1)*MATD*P:=",P**(-1)*MATD*P$ %bye$ %write " A la lecture de cette matrice, on constate qu'elle n'est pas triangulaire; pour l'arranger, il faut faire le changement de base de matrice de passage Q:"$ matrix Q(7,7)$ %Q:=ID$ %si pas besoin de deuxieme diagonalisation for i:=5:7 do <>$ Q(2,1):=1$ Q(1,2):=1$ Q(4,3):=1$ Q(3,4):=1$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PP:=P*Q$ %write "matrice des derivations dans cette seconde base diagonalisante diaY(1),...,diaY(7):"$ write "PP**(-1)*MATD*PP:=",PP**(-1)*MATD*PP$ MATDDIAGONALISE:=PP**(-1)*MATD*PP$ %MATDDIAGONALISE:=P**(-1)*MATD*P$ write "avec PP:=P*Q:=",PP$ write "MATDDIAGONALISE:=",MATDDIAGONALISE$ write "on voit apparaitre les poids sur la diagonale"$ ladiag:=for i:=1:7 collect {i,MATDDIAGONALISE(i,i)}; %bye$ write "calcul de relations de commutation de la base diaY(j) diagonalisant le tore"$ listcommutateursdesX:=for i:=0:5 join for j:=i+1:6 collect {{i,j},X(i)*X(j)}; %bye for j:=1:7 do diaY(j):=for k:=1:7 sum PP(k,j)*X(k-1)$ %for j:=1:7 do diaY(j):=for k:=1:7 sum P(k,j)*X(k-1)$ for j:=1:7 do write "diaY(",j,"):=",diaY(j)$ listcommutateursdesdiaY:=for i:=1:6 join for j:=i+1:7 collect {{i,j},diaY(i)*diaY(j)}$ %passage a Y rebaptise YY Y(j):=X(j-1) %(decalage des indices) for j:=1:6 do X(j):=YY(j+1)$ %(X(0) n'intervient pas comme commutateur %passage aux diaY QQ:=PP**(-1)$ %Q:=P**(-1)$ For j:=1:7 do YY(j):=for k:=1:7 sum QQ(k,j)*diadiaY(k)$ %For j:=1:7 do YY(j):=for k:=1:7 sum Q(k,j)*diadiaY(k)$ write "liste des commutateurs des diaY(i) := (diadiaY=diaY"$ listcommutateursdesdiaY; for j:=1:6 do <>$ % bye$ for j:=1:7 do <>$ write "on pose :"$ mu:=138240*a**3$ ZZ(1):=diaY(1)$ ZZ(2):=-diaY(2)$ ZZ(3):=diaY(3)$ ZZ(4):=diaY(4)$ ZZ(5):=diaY(6)$ ZZ(6):=diaY(5)$ ZZ(7):=diaY(7)$ For i:=1:7 do <