off echo,nat$ out "rcalculderivgtildedelta6_nxC3case5IV.r"$ write "rcalculderivgtildedelta6_nxC3case5IV.r"$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %copy here the file reducparautommodg***.red % from : The generic derivation as in (Cohomology tables section ******) : % until : the instruction write "paramindexeslist:=",paramindexeslist$ %and delete the 3 lines pertaining to phi just before that last instruction. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The generic derivation as computed by geneLplus.tex : operator xi$ delta:= mat((xi(1,1),xi(1,2),0,0,0,0), (xi(2,1),xi(2,2),0,0,0,0), (xi(3,1),xi(3,2),xi(1,1)+xi(2,2),xi(3,4),xi(3,5),xi(3,6)), (xi(4,1),xi(4,2),0,xi(4,4),xi(4,5),xi(4,6)), (xi(5,1),xi(5,2),0,xi(5,4),xi(5,5),xi(5,6)), (xi(6,1),xi(6,2),0,xi(6,4),xi(6,5),xi(6,6)))$ write "generic derivation : delta:=",delta; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %The nonzero adjoint derivations matrix adx1(6,6)$ adx1:= sub({ xi(1,1)=0,xi(1,2)=0, xi(2,1)=0,xi(2,2)=0, xi(3,1)=0,xi(3,2)=1,xi(3,4)=0,xi(3,5)=0,xi(3,6)=0, xi(4,1)=0,xi(4,2)=0,xi(4,4)=0,xi(4,5)=0,xi(4,6)=0, xi(5,1)=0,xi(5,2)=0,xi(5,4)=0,xi(5,5)=0,xi(5,6)=0, xi(6,1)=0,xi(6,2)=0,xi(6,4)=0,xi(6,5)=0,xi(6,6)=0}, delta)$ matrix adx2(6,6)$ adx2:= sub({ xi(1,1)=0,xi(1,2)=0, xi(2,1)=0,xi(2,2)=0, xi(3,1)=-1,xi(3,2)=0,xi(3,4)=0,xi(3,5)=0,xi(3,6)=0, xi(4,1)=0,xi(4,2)=0,xi(4,4)=0,xi(4,5)=0,xi(4,6)=0, xi(5,1)=0,xi(5,2)=0,xi(5,4)=0,xi(5,5)=0,xi(5,6)=0, xi(6,1)=0,xi(6,2)=0,xi(6,4)=0,xi(6,5)=0,xi(6,6)=0}, delta)$ %matrix adx3(6,6)$ %adx3:= %matrix adx4(6,6)$ %adx4:= %matrix adx5(6,6)$ %adx5:= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% on nat$ write adx1:=adx1$ write adx2:=adx2$ %write adx3:=adx3$ %write adx4:=adx4$ %write adx5:=adx5$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% write "The generic nilpotent derivation : "$ %write "The generic nilpotent derivation : the eigenvalues are 0"$ write "The matrices MATA:=((xi(1,1),xi(1,2)),(xi(2,1),xi(2,2))) is nilpotent"$ MATA:=mat((xi(1,1),xi(1,2)),(xi(2,1),xi(2,2)))$ write "And MATB:=((xi(4,4),xi(4,5),xi(4,6)),(xi(5,4),xi(5,5),xi(5,6)),(xi(6,4),xi(6,5),xi(6,6))) are nilpotent"$ MATB:=mat((xi(4,4),xi(4,5),xi(4,6)),(xi(5,4),xi(5,5),xi(5,6)),(xi(6,4),xi(6,5),xi(6,6)))$ MATC:=mat((xi(3,4)),(xi(3,5)),(xi(3,6)))$ MATD:=mat((xi(4,1),xi(4,2)),(xi(5,1),xi(5,2)),(xi(6,1),xi(6,2)))$ write "(WE denote MATA,MATB, since B is already for the entries of phi)"$ write "***We consider here the case 5 where MATA has nilpotent order 1"$ write " and MATB has nilpotent order 1.***"$ %write "In that case, one may suppose MATA:=((0,1),(0,0))."$ xi(1,1):=0$ xi(1,2):=1$ xi(2,1):=0$ xi(2,2):=0$ for i:=1:2 do for j:=1:2 do <> $ % %<> $ % 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$ resol(COLLECT_EQ)$ off 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"$ %write "a neq ",conditionssura$ %write "b neq ",conditionssurb$ %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$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% here are the procedures we use to compute the maximal torus %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% 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 <>$ WS:= listparametresMATD$ WS:= for each U in WS JOIN IF U neq d(i,j) and arglength(U)= 2 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$ rkgtildedelta:=1$ RETURN WS$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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):"$ %write "mateigent du commutant de t1 dans der(gtildedelta):",mateigen(ws1,x)$ RETURN WS1$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% ecriture du second membre du tore %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCEDURE CALCUL_t2(i,j)$ %fait d(i,j)=1 autres nuls dans la matrice restante MATD dans le commutant de t1 BEGIN$ integer i,j$ % calcule d'abord le matrices MATD du commutant de t1 Z:=MATD*t1-t1*MATD$ SSOLVE(7,7)$ WS1:=UNKNOWNSINLIST(listmatD)$ %ws:= FOR EACH U IN ws join if U neq a and U neq b then {U} ELSE {}$ IF d(i,j) member ws1 then else <>$ WS:= for each U in WS1 JOIN IF U neq d(i,j) and arglength(U)= 2 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 "t2:=D(",i,",",j,"):=",ws$ off nat$ rkgtildedelta:=2$ 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$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% 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)$ WS1:=UNKNOWNSINLIST(listmatD)$ %ws:= FOR EACH U IN ws join if U neq a and U neq b then {U} ELSE {}$ IF d(i,j) member ws1 then else <>$ WS:= for each U in WS1 JOIN IF U neq d(i,j) and arglength(U)= 2 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$ rkgtildedelta:=3$ RETURN WS$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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)$ write "MATD:=",MATD$ WS1:=UNKNOWNSINLIST(listmatD)$ IF d(i,j) member UNKNOWNSINLIST(listmatD) then else <>$ WS:= for each U in WS1 JOIN IF U neq d(i,j) and arglength(U)= 2 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 "t4:=D(",i,",",j,"):=",ws$ off nat$ rkgtildedelta:=4$ RETURN WS$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %introduction de la matrice ID identite matrix ID(7,7)$ for i:=1:7 do for j:=1:7 do <>$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %introduction de la matrice nullmatrix nulle matrix NULLMATRIX(7,7)$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCEDURE CARACT_NILP_ALG_TEST()$ %this procedure makes the test for caracteristically nilpotent Lie algebra BEGIN$ integer j$ j:=2$ for j:=1:7 do <> ELSE <> ELSE <> >>$ END$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% TEST for caracteristically nilpotent Lie algebra % CARACT_NILP_ALG_TEST()$ % bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% ecriture du premier membre du tore %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %write "un element t1 d'un tore "$ t1:=calcul_t1(0,0)$ on nat$ %% %off nat$ %on factor$ %det(t1-x*ID); %off factor$ %mateigen(t1,x); %write COMMUTANT(t1)$ %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% ecriture du second membre du tore %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% t2:=calcul_t2(1,1)$ %%off nat$ on factor$ %det(t2-x*ID); %off factor$ on nat$ %mateigen(t2,x); off nat$ %write COMMUTANT2(t1,t2)$ on nat$ %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% ecriture du troiseme membre du tore %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% t3:=calcul_t3(4,4)$ %%off nat$ %on factor$ %det(t3-x*ID); %off factor$ on nat$ %mateigen(t3,x); write COMMUTANT3(t1,t2,t3)$ %bye$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %t4:=calcul_t4(0,1)$ on nat$ %%off nat$ %on factor$ %det(t4-x*ID); %off factor$ %mateigen(t4,x); %bye$ %write COMMUTANT4(t1,t2,t3,t4)$ %bye$ IF rkgtildedelta=1 THEN write "rank 1 with maximal torus t1" ELSE IF rkgtildedelta=2 THEN write "rank 2 with maximal torus t1,t2" ELSE IF rkgtildedelta=3 THEN write "rank 3 with maximal torus t1,t2,t3" ELSE IF rkgtildedelta=4 THEN write "rank 4 with maximal torus t1,t2,t3,t4" ELSE IF rkgtildedelta=4 THEN write "rank 4 with maximal torus t1,t2,t3,t4" ELSE write "rank 0 :gtildedelta is characteristically nilpotent"$ write rkgtildedelta$ 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 <>$ on nat$ write "P:=",P$ IF rkgtildedelta=1 THEN write "P**(-1)*t1*P:=", P**(-1)*t1*P ELSE IF rkgtildedelta=2 THEN write "P**(-1)*t1*P:=", P**(-1)*t1*P,"P**(-1)*t2*P:=", P**(-1)*t2*P ELSE IF rkgtildedelta=3 THEN write "P**(-1)*t1*P:=", P**(-1)*t1*P,"P**(-1)*t2*P:=", P**(-1)*t2*P ,"P**(-1)*t3*P:=", P**(-1)*t3*P ELSE IF rkgtildedelta=4 THEN write "P**(-1)*t1*P:=", P**(-1)*t1*P,"P**(-1)*t2*P:=", P**(-1)*t2*P ,"P**(-1)*t3*P:=", P**(-1)*t3*P,"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:7 do <>$ %Si pb pour diagonaliser t2 ou t3 %write "det Q:=",det(Q)$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PP:=P*Q$ on nat$ 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(6,6) =gamma3$ match matddiagonalise(3,3) =gamma1$ match matddiagonalise(1,1) =gamma2$ on factor$ for i:=1:7 do <>$ off factor$ weightsystem:={rkgtildedelta,9}$ %weightsystem:={0,5}$ %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)$ off nat$ 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$ off nat$ %a:=parama$ %%%%% if the parameter is a %%%%% for j:=1:7 do diaY(j):=x(j)$ out "7nilpsgtildedelta/nilp6_53xC.IV"$ %fill in filename here write "REFALGTEX:={nilp6_53xC,IV}"$ %fill in 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_53xC.IV"$ %fill in 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,",part(weightsystem,1),".",part(weightsystem,2),"}"$ %write "(iL)"$ %write "(i)"$ %write "(iii)"$ %ws:=conditionssura$ %conditionssura:=append({0,-1},ws)$ %write "and that for a neq",conditionssura$ 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)$ isom(3,1):=1$ isom(1,2):=1$ isom(6,3):=-1$ isom(7,4):=-1$ isom(2,5):=-1$ isom(5,6):=-1$ isom(4,7):=-1$ off nat$ write isom$ on factor$ write "det(isom):= ", det(isom)$ off factor$ %liste des commutateurs des ZZ(i) (ZZZ=ZZ:= operator ZZ$ noncom ZZ$ on factor$ For j:=1:7 do ZZ(j):=for k:=1:7 sum isom(k,j)*diaY(k)$ For i:=1:7 do <