off echo,nat$ out "rcalculderivgtildedelta6_6X.r"$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % introduction of the generic derivation delta of the 6-dimensional algebra g %g=g_{6,6} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% matrix delta(6,6)$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The generic nilpotent derivation as in (Cohomology tables page 116) : the eigenvalues % are 0 operator xi$ delta:= mat((0,xi(1,2),0,0,0,0), (0,0,0,0,0,0), (xi(3,1),xi(3,2),0,0,0,0), (xi(4,1),xi(4,2),xi(4,3),0,0,0), (xi(5,1),xi(5,2),xi(5,3),-xi(4,1),0,xi(4,3)), (xi(6,1),xi(6,2),xi(6,3),-xi(3,1),0,0))$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % restriction on the parameters for nilpotent derivation and mod(ad g). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The nonzero ajoints are delta(4,1), delta(5,2), delta(6,1), and delta(4,2)-delta(6,3) %Hence delta(4,2) and delta(6,3) are adjoint related % by subtracting adjoints one then may suppose xi(4,1):=0$ xi(4,2):=0$ xi(5,2):=0$ xi(6,2):=0$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% shortformdelta:={xi(1,2),SS,xi(3,1),xi(3,2),SS,xi(4,3),SS,xi(5,1),xi(5,3),SS,xi(6,1),xi(6,3)}$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %initial conditions for specific delta xi(1,2):=0$ xi(3,1):=0$ xi(3,2):=b$ xi(4,3):=1$ xi(5,1):=0$ xi(5,3):=0$ xi(6,1):=1$ xi(6,3):=a$ % a:=sqrt(2)/sqrt(3)$ b:=0$ conditionssura:={-2,2}$ write "a neq ",conditionssura$ write "a:=",a$ write "b:=",b$ 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) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% operator x,v$ in "6nilp/6nilp.6"$ 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)$ operator d$ 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 resout 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 "Il y a une phase 2"$ %write "il n'y a pas de phase 2"$ %conditionssura:={-2,2}$ write "On suppose a neq ",conditionssura, ". Alors "$ %{{{2,3},6},( - (d(3,3) - d(3,1)*a - d(1,1))*(a + 2)*(a - 2))/2}, d(3,3):= d(3,1)*a +d(1,1)$ write "d(3,3):=",d(3,3)$ 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$ on nat$ write "pour delta:=",delta$ write "pour shortformdelta:=",shortformdelta$ off nat$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% listMATD:=for i:=1:7 join for j:=1:7 collect MATD(i,j)$ listparametresMATDincluantparamalgebre_a:=UNKNOWNSINLIST(listmatD)$ listparametresMATD:= FOR EACH U IN listparametresMATDincluantparamalgebre_a join if U neq a and U neq b then {U} ELSE {}$ write "listeparametresMATD",WS$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% operator dd$ LISTparametrestemoinMATD:= for each h in listparametresMATD collect dd(part(h,1),part(h,2))$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% write "dim Der(gtildedelta):=",LENGTH(listparametresMATD)$ %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% ecriture du premier membre du tore %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %ecrit le tore t1=D(i,j) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCEDURE CALCUL_t1(i,j)$ %fait d(i,j)=1 autres nuls dans la matrice MATD BEGIN$ integer i,j$ WS:=for each U in listparametresMATD JOIN IF U neq d(i,j) and U neq a then {U} else {}$ for each U in WS DO <>$ d(i,j):=1$ off nat$ WS:=MATD; for each U in listparametrestemoinMATD do <>$ on nat$ write "t1:=D(",i,",",j,"):=",ws$ off nat$ RETURN WS$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %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 "$ %matrix t1(7,7)$ t1:=calcul_t1(1,1)$ on nat$ %write "t1:=", t1$ write "MATD:=", MATD$ %bye$ %% %off nat$ %on factor$ %det(t1-x*ID); %off factor$ %mateigen(t1,x); %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCEDURE COMMUTANT(t1)$ BEGIN$ Z:=MATD*t1-t1*MATD$ SSOLVE(7,7)$ WS1:=MATD$ listMATD:=for i:=1:7 join for j:=1:7 collect MATD(i,j)$ listparametresCOMMUTANT_t1_incluantparamalgebre_a:=UNKNOWNSINLIST(listmatD)$ listparametresCOMMUTANT_t1:= FOR EACH U IN listparametresCOMMUTANT_t1_incluantparamalgebre_a join if U neq a then {U} ELSE {}$ listparametrestemoinsresolusdanscalculCOMMUTANT_t1 := for each h in LISTparametrestemoinMATD join IF d(part(h,1),part(h,2)) MEMBER listparametresCOMMUTANT_t1 THEN {} ELSE {dd(part(h,1),part(h,2))} $ for each U in listparametrestemoinsresolusdanscalculCOMMUTANT_t1 do <>$ write "commutant de t1 dans der(gtildedelta):"$ RETURN WS1$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% write COMMUTANT(t1)$ %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % IF gtildedelta is to be characteristically nilpotent : %write "Mais t1 n'est pas semisimple "$ %write "gtildedelta est caracteristiquement nilpotente"$ %for j:=1:7 do <>$ d(i,j):=1$ off nat$ WS:=MATD; for each U in listparametrestemoinMATD do <>$ %restaure les parametres de MATD on nat$ write "t2:=D(",i,",",j,"):=",ws$ off nat$ RETURN WS$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCEDURE COMMUTANT2(t1,t2)$ BEGIN$ Z:=MATD*t1-t1*MATD$ SSOLVE(7,7)$ Z:=MATD*t2-t2*MATD$ SSOLVE(7,7)$ WS1:=MATD$ listMATD:=for i:=1:7 join for j:=1:7 collect MATD(i,j)$ listparametresCOMMUTANT_t1_t2_incluantparamalgebre_a:=UNKNOWNSINLIST(listmatD)$ listparametresCOMMUTANT_t1_t2:= FOR EACH U IN listparametresCOMMUTANT_t1_t2_incluantparamalgebre_a join if U neq a then {U} ELSE {}$ listparametrestemoinsresolusdanscalculCOMMUTANT_t1_t2 := for each h in LISTparametrestemoinMATD join IF d(part(h,1),part(h,2)) MEMBER listparametresCOMMUTANT_t1_t2 THEN {} ELSE {dd(part(h,1),part(h,2))} $ for each U in listparametrestemoinsresolusdanscalculCOMMUTANT_t1_t2 do <>$ write "commutant simultane de t1,t2 dans der(gtildedelta):"$ RETURN WS1$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %matrix t2(7,7)$ t2:=calcul_t2(0,0)$ %bye$ %%off nat$ %on factor$ %det(t2-x*ID); %off factor$ %on nat$ %mateigen(t2,x); %off nat$ %bye$ write COMMUTANT2(t1,t2)$ %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% ecriture du troiseme membre du tore %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCEDURE COMMUTANT3(t1,t2,t3)$ BEGIN$ Z:=MATD*t1-t1*MATD$ SSOLVE(7,7)$ Z:=MATD*t2-t2*MATD$ SSOLVE(7,7)$ Z:=MATD*t3-t3*MATD$ SSOLVE(7,7)$ WS1:=MATD$ listMATD:=for i:=1:7 join for j:=1:7 collect MATD(i,j)$ listparametresCOMMUTANT_t1_t2_t3_incluantparamalgebre_a:=UNKNOWNSINLIST(listmatD)$ listparametresCOMMUTANT_t1_t2_t3:= FOR EACH U IN listparametresCOMMUTANT_t1_t2_t3_incluantparamalgebre_a join if U neq a then {U} ELSE {}$ listparametrestemoinsresolusdanscalculCOMMUTANT_t1_t2_t3 := for each h in LISTparametrestemoinMATD join IF d(part(h,1),part(h,2)) MEMBER listparametresCOMMUTANT_t1_t2_t3 THEN {} ELSE {dd(part(h,1),part(h,2))} $ for each U in listparametrestemoinsresolusdanscalculCOMMUTANT_t1_t2_t3 do <>$ write "commutant simultane de t1,t2,t3 dans der(gtildedelta):"$ RETURN WS1$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCEDURE CALCUL_t3(i,j)$ %fait d(i,j)=1 autres nuls dans la matrice restante MATD dans le commutant de t1 et t2 BEGIN$ integer i,j$ % calcule d'abord le matrices MATD du commutant de t1 et t2 Z:=MATD*t1-t1*MATD$ SSOLVE(7,7)$ Z:=MATD*t2-t2*MATD$ SSOLVE(7,7)$ ws:=UNKNOWNSINLIST(listmatD)$ ws:= FOR EACH U IN ws join if U neq a then {U} ELSE {}$ for each U in WS DO <>$ d(i,j):=1$ off nat$ WS:=MATD; for each U in listparametrestemoinMATD do <>$ %restaure les parametres de MATD on nat$ write "t3:=D(",i,",",j,"):=",ws$ off nat$ RETURN WS$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% t3:=calcul_t3(3,1)$ %%off nat$ %on factor$ det(t3-x*ID); %off factor$ on nat$ mateigen(t3,x); off nat$ mateigen(t3,x); write COMMUTANT3(t1,t2,t3)$ %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCEDURE COMMUTANT4(t1,t2,t3,t4)$ BEGIN$ Z:=MATD*t1-t1*MATD$ SSOLVE(7,7)$ Z:=MATD*t2-t2*MATD$ SSOLVE(7,7)$ Z:=MATD*t3-t3*MATD$ SSOLVE(7,7)$ Z:=MATD*t4-t4*MATD$ SSOLVE(7,7)$ WS1:=MATD$ listMATD:=for i:=1:7 join for j:=1:7 collect MATD(i,j)$ listparametresCOMMUTANT_t1_t2_t3_t4incluantparamalgebre_a:=UNKNOWNSINLIST(listmatD)$ listparametresCOMMUTANT_t1_t2_t3_t4:= FOR EACH U IN listparametresCOMMUTANT_t1_t2_t3_t4incluantparamalgebre_a join if U neq a then {U} ELSE {}$ listparametrestemoinsresolusdanscalculCOMMUTANT_t1_t2_t3_t4 := for each h in LISTparametrestemoinMATD join IF d(part(h,1),part(h,2)) MEMBER listparametresCOMMUTANT_t1_t2_t3_t4 THEN {} ELSE {dd(part(h,1),part(h,2))} $ for each U in listparametrestemoinsresolusdanscalculCOMMUTANT_t1_t2_t3_t4 do <>$ write "commutant simultane de t1,t2,t3,t4 dans der(gtildedelta):"$ RETURN WS1$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCEDURE CALCUL_t4(i,j)$ %fait d(i,j)=1 autres nuls dans la matrice restante MATD dans le commutant de t1 et t2 BEGIN$ integer i,j$ % calcule d'abord le matrices MATD du commutant de t1 et t2 et t3 Z:=MATD*t1-t1*MATD$ SSOLVE(7,7)$ Z:=MATD*t2-t2*MATD$ SSOLVE(7,7)$ Z:=MATD*t3-t3*MATD$ SSOLVE(7,7)$ ws:=UNKNOWNSINLIST(listmatD)$ ws:= FOR EACH U IN ws join if U neq a then {U} ELSE {}$ for each U in WS DO <>$ d(i,j):=1$ off nat$ WS:=MATD; for each U in listparametrestemoinMATD do <>$ %restaure les parametres de MATD RETURN WS$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %t4:=calcul_t4(2,2)$ on nat$ %write "t4:=D(2,2):=",t4$ %%off nat$ %on factor$ %det(t4-x*ID); %off factor$ %mateigen(t4,x); %bye$ %write COMMUTANT4(t1,t2,t3,t4)$ %write "le calcul du commutant de t1 et t2 et t3 et t4 dans der(gtildedelta) montre que t1,t2,t3,t4 et un tore maximal."$ 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$ on complex$ for i:=1:7 do <>$ p(4,2):=(-a-sqrt(a**2-4))/2$ p(2,4):=(-a-sqrt(a**2-4))/2$ p(3,1):=p(4,2)$ p(1,3):=p(4,2)$ p(7,5):=(a+sqrt(a**2-4))/2$ p(5,7):=(a+sqrt(a**2-4))/2$ %rac241:=(-a+sqrt(a**2-4))/2$ %rac242:=(-a-sqrt(a**2-4))/2$ %p(4,2):=1/rac241$ %p(2,4):=rac242$ %rac131:=(a+sqrt(a**2-4))/4$ %rac132:=(a-sqrt(a**2-4))/4$ %p(1,3):=sub(tt=rac131, (4*a**2 -10*a*tt-3)/(2*a**2*tt -5*a +6*tt))$ %p(3,1):=1/sub(tt=rac132, (4*a**2 -10*a*tt-3)/(2*a**2*tt -5*a +6*tt))$ %rac571:=(3*a+sqrt(a**2-4))/4$ %rac572:=(3*a-sqrt(a**2-4))/4$ %p(5,7):=sub(tt=rac571, (2*a**2 -2*a*tt-3)/(4*a -6*tt))$ %p(7,5):=1/sub(tt=rac572, (2*a**2 -2*a*tt-3)/(4*a -6*tt))$ 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 "Here is to be underlined that the denominators do not vanish fo a neq 2,-2 since:"$ u:=a*(a**2-3)*sqrt(a**2-4) +(a**2-4)*(a**2-1)$ off factor $ write u:=u$ on factor$ write u:=u$ w1:=a*(a**2-3)$ w2:=-sqrt(a**2-4)*(a**2-1)$ write "Let w1:=",w1$ write "and w2:=",w2$ write "u=0 reads w1+w2=0"$ write "hence w1**2 = w2**2"$ write "Now, w1**2-w2**2:=",w1**2-w2**2$ %write "P**(-1)*t4*P:=", P**(-1)*t4*P; write "matrice des derivations dans cette base diagonalisante Y(1),...,Y(7):"$ off nat$ write "P**(-1)*MATD*P:=",P**(-1)*MATD*P$ % Si besoin seconde diagonalisation ou trigonalisation matrix Q(7,7)$ %Q:=ID$ %si pas besoin de deuxieme diagonalisation %for i:=1:4 do <>$ %Si pb pour diagonaliser t2 ou t3 q(1,1):=1$ q(4,2):=1$ q(2,4):=1$ q(3,3):=1$ q(6,7):=1$ q(7,5):=1$ q(5,6):=1$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PP:=P*Q$ write "PP:=",PP$ %write "PP**(-1)*t1*PP:=", PP**(-1)*t1*PP; %write "PP**(-1)*t2*PP:=", PP**(-1)*t2*PP; %write "PP**(-1)*t3*PP:=", PP**(-1)*t3*PP; %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$ write "avec PP:=P*Q:=",PP$ write "MATDDIAGONALISE:=",MATDDIAGONALISE$ write "on voit apparaitre les poids sur la diagonale"$ for i:=1:7 do R(i):=MATDDIAGONALISE(i,i)$ for i:=1:7 do <>$ %match matddiagonalise(1,1) =gamma1$ %match matddiagonalise(2,2) =gamma2$ %match matddiagonalise(3,3) =gamma3$ write "R(4)-(2*r(1)+r(2)-2*r(3)):= ", R(4)-(2*r(1)+r(2)-2*r(3))$ write "R(7)-(r(1)+r(5)):= ", R(7)-(r(1)+r(5))$ write "R(7)-(2*r(1)+r(2)):= ", R(7)-(2*r(1)+r(2))$ write "R(6)-(r(3)+r(4)):= ", R(6)-(r(3)+r(4))$ write "R(6)-(2*r(1)+r(2)-r(3)):= ", R(6)-(2*r(1)+r(2)-r(3))$ write "R(7)-(r(3)+r(6)):= ", R(7)-(r(3)+r(6))$ write "R(5)-(r(1)+r(2)):= ", R(5)-(r(1)+r(2))$ write "R(7)-(2*r(1)+r(2)):= ", R(7)-(2*r(1)+r(2))$ write "R(4)-(2*r(1)+r(2)-2*r(3)):= ", R(4)-(2*r(1)+r(2)-2*r(3))$ on factor$ %for i:=1:7 do <>$ weightsystem:={3,16}$ %weightsystem:={1,{0,point,1} }$ write "Le systeme de poids est le systeme ",part(weightsystem,1),".",part(weightsystem,2)$ 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)}; %changing the base X(0),... , X(6) to the diagonalizing one diaY(1), .. ,diaY(7) operator diaY$ for j:=1:7 do diaY(j):=for k:=1:7 sum PP(k,j)*X(k-1)$ for j:=1:7 do write "diaY(",j,"):=",diaY(j)$ operator commutateursenXdesdiaY$ for i:=1:7 do for j:=1:7 do <>$ listcommutateursenXdesdiaY:=for i:=1:6 join for j:=i+1:7 collect {{i,j},diaY(i)*diaY(j)}$ %write "listcommutateursenXdesdiaY:=",listcommutateursenXdesdiaY; %changing the indexation of the X(i)s : passage a Y rebaptise YY Y(j):=X(j-1) %(decalage des indices) operator YY$ noncomYY$ for j:=0:6 do X(j):=YY(j+1)$ listcommutateursenYYdesdiaY:=listcommutateursenXdesdiaY$ %write "listcommutateursenYYdesdiaY:=",listcommutateursenYYdesdiaY$ operator commutateursenYYdesdiaY$ for i:=1:7 do for j:=1:7 do <>$ for j:=1:7 do <>$ for j:=0:6 do <>$ %writing the commutator list in terms of diaY(i)s instead of YY(i)s %passage aux diaY QQ:=PP**(-1)$ For j:=1:7 do YY(j):=for k:=1:7 sum QQ(k,j)*diaY(k)$ write "liste des commutateurs des diaY(i) :"$ listcommutateursdesdiaY:=listcommutateursenYYdesdiaY$ operator commdiaY$ for i:=1:7 do for j:=1:7 do <>$ %write "liste totale des commutateursdesdiaY(i,j) :"$ %for i:=1:7 join for j:=1:7 collect {{i,j},commdiay(i,j)}; write "listcommutateurdesdiaY:=",listcommutateursdesdiaY; for j:=1:7 do <>$ %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %writing the file with the foregoing commutation relations PROCEDURE gtildedeltafile()$ begin$ for j:=1:7 do diaY(j):=x(j)$ out "7nilpsgtildedelta/nilp6_6.IX3"$ write "REFALGTEX:={nilp6_6,IX3}"$ write "dim:=7"$ write "operator x"$ write "noncom x"$ for each A in listcommutateursdesdiaY do <>"$ write "for i:=1:6 do for j:=i+1:7 do <>"$ write "operator v"$ write "noncom x,v"$ write "for i:=1:7 do for j:=1:7 do <>"$ write "for i:=1:7 do R(i):=0"$ shut "7nilpsgtildedelta/nilp6_6.IX3"$ for j:=1:7 do <>$ end$ %gtildedeltafile()$ %dont forget to modify the files name above %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% write "Now we make explicit the isomorphism with an algebra of the book:"$ %write "Namely g_{7,1.01(i) }"$ write "Namely g_{7,",part(weightsystem,1),".",part(weightsystem,2),"}"$ write "i.e. we go from the basis diaY(i) to the new basis ZZ(i) defined by the matrix:"$ write "on pose :"$ write "avec comme matrice de changement de base :"$ matrix isom(7,7)$ for i:=1:3 do isom(i,i):=1$ isom(4,4):= (( - sqrt(a**2 - 4)*(a**2 - 3)*a - (a + 2)*(a + 1)*(a - 1)*(a - 2))/( sqrt(a**2 - 4)*(a**2 - 2) + (a + 2)*(a - 2)*a) )**(-1)$ isom(5,5):= ( - (sqrt(a**2 - 4) + a)*(a + 2)*(a - 2))/(sqrt(a**2 - 4)*a + a**2 - 4)$ isom(7,7):= (sqrt(a**2 - 4)*(a + 2)*(a - 2) + (a + 2)*(a - 2)*a)/2$ isom(6,6):= 1/(( - (a + 2)*(a - 2) - sqrt(a**2 - 4)*a)/(sqrt(a**2 - 4)*(a + 2)*(a - 2) + (a + 2)*(a - 2)*a) )$ on complex$ off nat$ write isom$ write "det(isom):= ", det(isom)$ %liste des commutateurs des ZZ(i) (ZZZ=ZZ:= operator ZZ$ noncom ZZ$ For j:=1:7 do ZZ(j):=for k:=1:7 sum isom(k,j)*diaY(k)$ For i:=1:7 do <