off echo,nat$ out "rcalculautom6_17.r"$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% in "6nilp/6nilp.17"$ DIM:=6$ %for the invertible matrix (b(i,j)) i,j:=1:DIM to realize an isomorphism %from g to g' %one has to satisfy the following equations in "thelist": %equations g-valued for j:=1:DIM do y(j):= for k:=1:DIM sum b(k,j)*x(k)$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % donnees a priori %for i:=1:3 do for j:=4:7 do <>$ %for i:=4:5 do for j:=6:7 do <>$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% write "we look for an automorphism of g_{6,17}"$ %relations de g_{6,17} thelist:= { {{1,2},y(1)*y(2)- y(3)}, {{1,3},y(1)*y(3)- y(4)}, {{1,4},y(1)*y(4)- y(5)}, {{1,5},y(1)*y(5)- y(6)}, {{1,6},y(1)*y(6)- 0}, {{2,3},y(2)*y(3)- y(6)}, {{2,4},y(2)*y(4)- 0}, {{2,5},y(2)*y(5)- 0}, {{2,6},y(2)*y(6)- 0}, {{3,4},y(3)*y(4)- 0}, {{3,5},y(3)*y(5)- 0}, {{3,6},y(3)*y(6)- 0}, {{4,5},y(4)*y(5)- 0}, {{4,6},y(4)*y(6)- 0}, {{5,6},y(5)*y(6)- 0} }$ %collecting the scalar equations {i,j}|k obtained by projection on the x(k) k:=1:DIM collect_eq := for i:=1:length(thelist) join for j:=1:DIM join {{{part(part(thelist,i),1),j} , V(j)*part(part(thelist,i),2)}}$ %COMMENT write "nombre d'equations",length(collect_eq); COMMENT for k:=1:length(collect_eq) do <>$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% write "processus de resolution: phase 1"$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %on factor$ write "nombre d'equations",length(collect_eq); write "collect_eq:=",collect_eq$ %for k:=1:length(collect_eq) do %<>$ matrix isom(DIM,DIM)$ for i:=1:DIM do for j:=1:DIM do isom(i,j):=b(i,j)$ %write "isom:=",isom$ %write "det(isom):=",det(isom)$ %matrix petitisom(3,3)$ %for i:=1:3 do for j:=1:3 do petitisom(i,j):=b(i,j)$ %on factor$ %write "det(petitisom):=",det(petitisom)$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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 SELECTVAR(U)$ %with the b(i,j) as unknowns %%%%%%%%% i,i from 1 to DIM BEGIN$ integer i,j$ i:=1$ j:=1$ LI:=UNKNOWNSINEXPRESSION(U)$ S: IF b(i,j) MEMBER LI AND NUMBERP DF(U,b(i,j)) THEN <> ELSE IF j> ELSE IF i> 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)$ WRITE "Automorphism equations to cancel (Reduce output) : \\", COLLECT_EQ$ % for i:=0:6 do for j:=0:6 do <