> restart: > f := factor(x^6 - 2*x^5 - 2*x^4 + 2*x^2 - 2*x - 1); 6 5 4 2 f := x - 2 x - 2 x + 2 x - 2 x - 1 > alias(y1 = RootOf(f,x)); y1 > facs_y1:=evala(Factor(f,y1)); / 2 3 4 5 | 3 y1 y1 5 y1 3 y1 y1 2 facs_y1 := |- ----- + --- + 1/2 - ---- + ----- - --- + x \ 2 2 2 2 2 \ 4 5 3 | + (1 + 2 y1 - y1 - 2 y1 + 2 y1 ) x| / / 2 3 5 4 \ | y1 y1 y1 y1 3 y1 2 | |- ---- + --- - --- + 1/2 - --- + ----- + x + (-1 + y1) x| \ 2 2 2 2 2 / 3 4 5 (x - 2 + 2 y1 - 2 y1 - 2 y1 + y1 ) (x - y1) > f1 := op(1,facs_y1); 2 3 4 5 3 y1 y1 5 y1 3 y1 y1 2 f1 := - ----- + --- + 1/2 - ---- + ----- - --- + x 2 2 2 2 2 4 5 3 + (1 + 2 y1 - y1 - 2 y1 + 2 y1 ) x > alias(y2 = RootOf(f1,x)); y1, y2 > facs_y1_y2 := evala(Factor(f,{y2,y1})); 5 3 4 facs_y1_y2 := (x - y2) (1 + x - 2 y1 - y1 + 2 y1 + 2 y1 + y2) (x 2 3 5 + y1 - 1/2 y2 - 1/2 y1 y2 + 1/2 y2 y1 + 1/2 y2 y1 4 2 - 3/2 y2 y1 + 1/2 y2 y1 - 1) (x + 1/2 y2 + 1/2 y1 y2 3 5 4 - 1/2 y2 y1 - 1/2 y2 y1 + 3/2 y2 y1 - 1/2 y2 y1) 3 4 5 (x - 2 + 2 y1 - 2 y1 - 2 y1 + y1 ) (x - y1) > facs_z := subs({y1=z1,y2=z2},facs_y1_y2); 5 3 4 facs_z := (x - z2) (1 + x - 2 z1 - z1 + 2 z1 + 2 z1 + z2) (x 2 3 5 + z1 - 1/2 z2 - 1/2 z1 z2 + 1/2 z2 z1 + 1/2 z2 z1 4 2 - 3/2 z2 z1 + 1/2 z2 z1 - 1) (x + 1/2 z2 + 1/2 z1 z2 3 5 4 - 1/2 z2 z1 - 1/2 z2 z1 + 3/2 z2 z1 - 1/2 z2 z1) 3 4 5 (x - 2 + 2 z1 - 2 z1 - 2 z1 + z1 ) (x - z1) > f1_z := subs({y1=z1,x=z2},f1);f_z := subs(x=z1,f); 2 3 4 5 3 z1 z1 5 z1 3 z1 z1 2 f1_z := - ----- + --- + 1/2 - ---- + ----- - --- + z2 2 2 2 2 2 4 5 3 + (1 + 2 z1 - z1 - 2 z1 + 2 z1 ) z2 6 5 4 2 f_z := z1 - 2 z1 - 2 z1 + 2 z1 - 2 z1 - 1 > F := expand(facs_z); 6 5 4 3 3 15 2 3 14 2 F := x - 2 x - x + 2 x - 1/4 z2 z1 x + 2 z2 z1 x 3 11 2 3 9 4 2 - 5/4 z2 z1 x - 4 x z1 z2 - 1/2 z2 z1 x 7 3 2 6 3 2 3 8 2 - 19/4 z1 z2 x + 31/4 z1 z2 x + 29/4 z2 z1 x 4 4 4 3 3 2 5 16 2 - 4 x z2 z1 - x z2 z1 - 5/4 x z2 z1 + 15/4 x z1 z2 2 6 4 2 7 4 2 3 - 19/4 x z2 z1 + 2 x z2 z1 + x z2 z1 3 18 7 3 21 - 35/4 z2 z1 x - 9 x z1 z2 + 1/4 z2 z1 3 19 17 2 18 2 + 5/2 z2 z1 x - 1/4 x z1 z2 + 11 x z1 z2 19 2 20 2 2 4 - 35/4 x z1 z2 + 5/2 x z1 z2 + 8 x z2 z1 3 20 4 2 4 7 2 - 1/4 z2 z1 x + 1/2 x z2 z1 - 2 z2 z1 x 2 17 4 2 3 12 3 13 + 1/2 z2 z1 - 5/4 x z2 - 71/4 z2 z1 + 45/4 z2 z1 3 15 3 14 3 11 + 137/4 z2 z1 - 135/4 z2 z1 + 187/4 z2 z1 4 13 4 14 4 15 13 + 9/2 z2 z1 - 21/4 z2 z1 + 2 z2 z1 + 7 x z1 z2 14 4 5 4 6 2 4 8 2 + 5 x z1 z2 + 11 x z1 + 9/4 z2 z1 x + 11/4 z2 z1 x 4 10 2 4 11 4 9 2 3 6 + 1/4 z2 z1 x + z2 z1 x - 3/2 z2 z1 x + 8 x z1 3 9 3 10 3 6 2 11 - 4 x z1 + x z1 + 13/2 x z1 z2 - 21/2 x z1 z2 4 2 4 2 10 3 2 11 2 11 - x z1 z2 - 1/4 x z2 z1 + 1/4 x z2 z1 - 5 x z1 3 7 16 3 10 3 9 + 8 x z1 + 4 x z1 z2 - 37 z2 z1 x + 69/2 z2 z1 x 15 3 2 3 2 6 3 2 4 - 10 x z1 z2 + 5 x z1 - 1/4 x z2 z1 + 13/4 x z2 z1 7 2 3 2 8 3 2 2 - 21 x z1 z2 + 3/4 x z2 z1 + 1/4 x z2 z1 2 18 2 2 19 2 2 20 2 + 35/4 x z1 z2 - 5/2 x z1 z2 + 1/4 x z1 z2 21 2 2 11 2 9 2 10 - 1/4 x z1 z2 + 67/2 z2 z1 + 8 x z1 + 4 x z1 2 7 3 2 3 3 - 19 x z1 - 15/2 z2 z1 x + 29/4 z2 z1 x 3 5 3 4 4 16 4 6 + 45/2 z2 z1 x - 12 z2 z1 x - 1/4 z2 z1 - 8 x z1 4 9 4 10 4 13 4 14 + 4 x z1 - x z1 + 21/4 z2 z1 x - 2 z2 z1 x 4 15 2 13 3 16 + 1/4 z2 z1 x - 5 x z1 z2 - 17/4 z2 z1 3 17 12 4 2 + 1/4 z2 z1 + 19/2 x z1 z2 - 2 z2 z1 x 4 3 4 5 4 4 3 2 9 + 9/4 z2 z1 x + 7 z2 z1 x - 5 z2 z1 x + 5/4 x z2 z1 2 2 12 2 14 4 6 + 45/4 x z2 z1 + 10 x z1 z2 - 1/2 x z1 z2 3 7 2 16 17 + 17/2 x z1 z2 + 1/2 x z1 z2 - 1/2 x z1 z2 3 10 2 3 12 4 7 + 25/4 z2 z1 x - 10 z2 z1 x + 19/2 z2 z1 4 6 3 9 2 2 15 - 37/4 z2 z1 - 39/4 z2 z1 x - 4 x z1 z2 4 2 6 4 2 4 4 8 - 9/4 x z2 z1 - 9/4 x z2 z1 - 27/4 z2 z1 4 10 4 9 2 12 4 7 4 2 - 45/4 z2 z1 + 10 z2 z1 + x z1 - 8 x z1 - 5 x z1 3 3 13 3 15 + 19/4 z2 z1 x + 117/4 z2 z1 x + 9/4 z2 z1 x 3 14 3 11 2 13 - 29 z2 z1 x + 23/2 z2 z1 x - 7 z2 z1 4 2 8 4 2 2 4 12 - 11/4 x z2 z1 - 3/4 x z2 z1 - 9/2 z2 z1 x 4 4 3 4 4 4 + 7 x z1 - 6 x z1 + 2 x z1 - 3/2 x z2 8 2 4 7 3 + 101/4 x z1 z2 + 5/4 z2 z1 x + 29/2 z1 z2 x 6 3 3 8 3 2 7 - 103/4 z1 z2 x - 65/4 z2 z1 x + 1/4 x z2 z1 3 2 3 4 2 3 2 3 10 + 7/4 x z2 z1 + 1/4 z2 x + 3/4 z2 x + x z1 z2 10 3 18 3 19 3 20 + 13 x z1 z2 - 11 z2 z1 + 35/4 z2 z1 - 5/2 z2 z1 2 12 2 14 2 15 2 16 - 21/2 z2 z1 - 5 z2 z1 + 10 z2 z1 - 4 z2 z1 3 2 4 7 4 6 4 8 - 9/4 x z2 z1 + 9/2 z2 z1 x - 7 z2 z1 x - 8 z2 z1 x 4 10 4 9 3 2 3 2 - 5 z2 z1 x + 17/2 z2 z1 x + 13/4 x z2 + 4 x z1 z2 3 2 10 2 2 11 2 2 13 - 5/4 x z2 z1 - 18 x z2 z1 - 135/4 x z2 z1 2 2 14 2 2 15 2 2 + 137/4 x z2 z1 - 17/4 x z2 z1 - 5 z1 z2 2 3 2 5 2 4 2 + 10 z2 z1 + 7 z2 z1 - 9 z2 z1 + z2 z1 4 2 5 2 17 2 2 16 2 + 5/2 x z2 z1 - 11 x z1 z2 + 1/4 x z1 z2 4 5 2 5 2 3 2 4 2 + 3 x z2 z1 + 8 x z1 - 10 x z1 - 2 x z1 - 2 x z1 2 3 2 2 3 3 2 3 5 2 - x z2 + 11/4 z2 z1 x - 3 z2 z1 x - 35/4 z2 z1 x 3 4 2 5 2 + 23/4 z2 z1 x - 15 x z2 z1 - 1/2 x z2 z1 2 3 9 4 - 18 x z2 z1 - 5 x z1 z2 + x z2 z1 + 3 x z2 z1 2 10 2 9 2 6 2 7 - 17 z2 z1 - 3 z2 z1 - 35/2 z2 z1 + 28 z2 z1 2 8 2 2 10 3 17 - 12 z2 z1 + 193/4 x z2 z1 + 11 z2 z1 x 2 12 4 2 2 4 3 2 2 - 7 x z1 z2 + 3/4 z2 z1 x - z2 z1 x - 3 x z1 z2 3 2 3 3 3 5 3 4 - 11/2 z2 z1 + 19/2 z2 z1 + 15 z2 z1 - 10 z2 z1 3 2 2 2 3 + 3/2 z2 z1 - z2 x + 10 x z1 z2 + 7/2 x z2 4 11 4 12 2 2 5 + 13/2 z2 z1 - 5/4 z2 z1 - 55/2 x z2 z1 2 10 13 2 15 2 + 65/2 x z1 z2 - 25/4 x z1 z2 - 121/4 x z1 z2 14 2 4 2 5 + 95/4 x z1 z2 - 1/2 z2 x - 17/2 x z2 z1 6 8 4 2 2 + 17/2 x z1 z2 + 12 x z1 z2 + 11 x z2 z1 - 19/2 z1 z2 x 2 3 4 5 2 4 4 2 + 5/2 z2 z1 x - 5/2 z2 z1 x + 9/4 z2 z1 x 4 2 9 3 12 2 2 2 9 + 3/2 x z2 z1 + 9/2 z2 z1 x - 89/2 x z2 z1 3 5 12 2 3 3 - 12 x z2 z1 + 99/4 x z1 z2 - 17/2 x z2 z1 - 3/2 z2 x 4 2 4 3 4 5 4 4 - 3/2 z2 z1 + 5/2 z2 z1 + 6 z2 z1 - 3 z2 z1 4 3 2 3 13 2 7 3 + 1/2 z2 z1 - 2 z2 z1 x - 21/4 z2 z1 x + 69/2 z1 z2 6 3 3 8 2 2 7 - 113/4 z1 z2 - 89/4 z2 z1 - 49/2 x z2 z1 2 6 11 3 5 2 6 + 25 x z1 z2 - 57/2 x z1 z2 - 11 x z1 + 9 x z1 3 3 3 4 2 5 2 4 + 6 x z1 - 2 x z1 + 9/2 z2 z1 x + 4 z2 z1 x 2 2 8 2 9 2 7 + 6 z2 z1 x - 3 x z1 z2 - 13 x z1 z2 - 43/2 x z1 z2 3 4 3 10 3 9 10 2 + x z2 z1 - 167/4 z2 z1 + 21 z2 z1 + 33/4 x z1 z2 2 2 4 3 3 11 2 + 12 x z2 z1 + 8 x z2 z1 - 145/4 x z1 z2 2 2 6 9 2 2 2 8 + 73/2 x z2 z1 - 4 x z1 z2 + 23 x z2 z1 2 2 2 2 2 3 2 2 3 + 10 x z2 z1 - 47/4 x z2 z1 - 15/4 x z2 z1 - 7 x z1 2 2 2 2 - x z2 + 8 x z1 > expand(rem(F,f1_z,z2)); 6 5 4 13 2 3 19 x - 2 x - 3/8 x + -- x - 1/8 x + 3/8 x + 149 z2 z1 x 16 565 2 16 7 3 9 7 + --- x z1 + 255/8 z1 z2 + 5/2 x z1 z2 + 565/8 z1 x 16 19 2 13 4 4 13 + 139/2 z1 + 341/8 x z1 + 7/4 x z2 z1 + 81/8 z1 z2 14 22 23 24 - 453/8 z1 z2 - 167/8 z1 x + 87/4 z1 x - 71/8 z1 x 4 3 8 13 14 - x z2 z1 - 179/4 z1 + 245/4 z1 x - 1383/8 z1 x 20 15 4 16 15 - 91/8 z1 - 1/8 z1 x - 77 z1 z2 + 613/4 z1 z2 23 24 25 157 22 26 + 47/4 z1 - 19/4 z1 + 7/8 z1 - --- z1 - 1/16 z1 16 14 4 26 2 24 2 25 + 9/8 z1 x - 1/8 x z1 - 13/8 x z1 + 1/8 x z1 18 20 11 787 18 - 311/8 z2 z1 - 30 z2 z1 + 327/2 z1 x - --- z1 16 15 9 7 20 + 184 z1 x + 289/4 z1 x + 81 x z1 z2 - 409/8 z2 z1 x 3 13 3 14 3 16 4 13 - 1/2 x z1 + 19/8 x z1 + 1/8 x z1 - 7/2 x z1 2 4 8 12 18 - 97/8 x z2 z1 - 307/4 z1 x - 183/2 z1 x - 815/8 z1 x 17 21 689 10 15 - 59/2 z1 - 11/2 z1 - --- z1 + 537/4 z1 16 13 14 4 5 + 375/4 x z1 z2 - 1467/8 x z1 z2 + 37/8 x z1 12 27 25 15 3 3 6 - 391/4 z1 z2 + -- z1 x - z1 x + 15/2 x z1 16 3 8 3 9 3 10 22 - 7/2 x z1 + 5/4 x z1 + 11/2 x z1 - 89/4 z2 z1 x 23 24 15 4 + 63/2 z2 z1 x - 119/8 z2 z1 x - 1/4 z2 z1 x 14 4 26 2 24 + 2 z2 z1 x - 1/4 z2 x z1 - 3 z2 x z1 2 25 3 6 2 11 + 1/4 z2 x z1 - 2 x z1 z2 + 125 x z1 z2 4 2 2 11 3 7 157 2 20 + 3/4 x z1 z2 + 779/8 x z1 + 5/4 x z1 + --- x z1 16 16 17 11 - 369/4 x z1 z2 - 129/4 z1 z2 + 1/8 z1 + 441/4 z1 4 11 15 3 2 4 8 - 9/8 x z1 + 475/2 x z1 z2 + 33/8 x z1 + 45/8 x z1 12 3 21 2 22 2 23 2 - 23/8 z1 x + 73/8 z1 x - 17 z1 x + 8 z1 x 10 21 23 24 - 305/8 z1 z2 - 39/4 z2 z1 + 17 z2 z1 - 8 z2 z1 25 22 26 9 + 13/8 z2 z1 - 73/8 z2 z1 - 1/8 z2 z1 + 37/2 z1 3 13 3 14 3 16 + 3/4 z2 x z1 + 13/4 z2 x z1 + 1/4 z2 x z1 4 13 25 15 3 - 21/4 z2 x z1 + 25/8 z2 z1 x - 7/4 z2 z1 x 3 8 21 437 2 8 2 9 - 5/2 z2 x z1 - 3 z2 x z1 - --- x z1 + 46 x z1 16 2 10 2 7 4 6 4 9 - 213/2 x z1 + 369/8 x z1 - 25/8 x z1 - 35/8 x z1 4 10 2 13 12 + 19/8 x z1 + 277/8 x z1 z2 - 1031/8 x z1 z2 2 14 4 6 3 7 - 663/4 x z1 z2 + 27/4 x z1 z2 - 2 x z1 z2 2 16 17 2 18 + 173/8 x z1 z2 + 17 x z1 z2 - 377/4 x z1 2 19 2 15 3 11 + 117/4 x z1 + 253/2 x z1 z2 - 9/4 x z1 2 12 4 7 4 2 19 - 3/16 x z1 - 93/8 x z1 - 21/4 x z1 + 781/8 z2 z1 2 20 4 11 4 8 + 97/8 z2 x z1 - 5/4 z2 x z1 + 29/4 z2 x z1 12 3 21 2 22 2 - 13/4 z2 z1 x + 21/4 z2 z1 x - 47/2 z2 z1 x 23 2 4 4 3 4 4 + 53/4 z2 z1 x + 29/8 x z1 - 7 x z1 + 49/8 x z1 4 9 3 10 - 1/4 x z2 + 141/4 z1 z2 + 7/2 x z1 z2 10 13 15 2 979 14 - 525/4 x z1 z2 - 7 z1 + 651/8 z1 x - --- z1 16 14 2 8 20 - 303/2 z1 x - 219/4 z1 z2 - 95/4 x z1 4 9 4 10 2 18 - 39/4 z2 x z1 + 25/4 z2 x z1 - 119 z2 x z1 2 19 3 11 4 7 + 487/8 z2 x z1 - 5 z2 x z1 - 19/4 z2 x z1 3 2 4 3 5 - 3/4 x z1 z2 - 93/4 x z1 + 31/4 x z1 + 36 x z1 13 5 3 4 + -- x z1 + 19/2 z1 + 27/4 z1 - 81/8 z1 - 1/4 z2 z1 16 2 3 5 4 + 3/2 z1 z2 + 1/4 z2 z1 + 39/4 z2 z1 - 27/4 z2 z1 7 291 6 2 4 5 + 93/2 z1 - --- z1 - 13/8 z1 - 19/4 x z2 z1 16 2 5 6 2 3 229 2 4 + 67/4 x z1 - 429/8 x z1 + 8 x z1 - --- x z1 16 10 2 2 2 - 1129/8 z1 x - 45/8 x z1 + 3/8 x z2 - 3/2 x z1 5 2 2 3 + 1/4 x z2 + 43/2 x z2 z1 - 9/8 x z2 z1 + 25/4 x z2 z1 9 17 3 + 87 x z1 z2 - 15/8 x z2 z1 + 55/4 x z1 + 13/2 x z2 z1 6 12 2 12 16 - 83/8 z2 z1 - 511/8 z1 - 307/8 x z1 z2 - 203/4 x z1 18 2 2 2 3 - 885/8 z2 z1 x + 5/8 x z1 z2 + 1/4 x z1 z2 + 1/4 x z2 2 17 2 10 2 5 + 13 z2 x z1 - 99 x z1 z2 + 55/4 x z2 z1 6 8 16 2 17 - 351/8 x z1 z2 - 711/8 x z1 z2 - 36 z1 + 259/8 x z1 11 4 19 3 5 + 199/2 z1 z2 - 61/4 x z2 z1 + 845/8 z1 x + 3 x z2 z1 3 4 12 2 6 + 1/4 x z2 z1 + 9/2 z2 x z1 - 31 x z1 z2 11 3 5 2 6 3 3 + 187 x z1 z2 + 21/4 x z1 - 149/4 x z1 + 3/4 x z1 3 4 2 8 2 9 - 21/8 x z1 - 429/8 x z1 z2 + 39 x z1 z2 2 7 3 4 3 3 + 483/8 x z1 z2 - 3/4 x z2 z1 + 1/4 x z2 z1 3 2 2 4 12 + 9/4 x z1 + 1/2 x z1 + 4 x z1 > rem(%,f_z,z1); 6 5 4 2 x - 2 x - 2 x + 2 x - 2 x - 1 > evala(Factor(f1,{y2,y1})); 5 3 4 (x - y2) (1 + x - 2 y1 - y1 + 2 y1 + 2 y1 + y2) > for i from 1 to 6 do ry||i := -subs(x=0,op(i,facs_y1_y2)); od; ry1 := y2 4 5 3 ry2 := -1 - 2 y1 + 2 y1 + y1 - 2 y1 - y2 3 2 5 ry3 := -1/2 y2 y1 - y1 + 1/2 y2 + 1/2 y1 y2 + 1 - 1/2 y2 y1 4 + 3/2 y2 y1 - 1/2 y2 y1 2 3 5 4 ry4 := -1/2 y2 - 1/2 y1 y2 + 1/2 y2 y1 + 1/2 y2 y1 - 3/2 y2 y1 + 1/2 y2 y1 4 3 5 ry5 := 2 y1 + 2 - 2 y1 + 2 y1 - y1 ry6 := y1 > # check a root by substituting back > for i from 1 to 6 do evala(subs(x=ry||i, f)); od; 0 0 0 0 0 0 > # Now we wish to identify an automorphism which maps y1 -> ry4 > # First, find the possible images of y2 > map_y1 := ry4; 2 3 5 map_y1 := -1/2 y2 - 1/2 y1 y2 + 1/2 y2 y1 + 1/2 y2 y1 4 - 3/2 y2 y1 + 1/2 y2 y1 > map_f1 := evala(subs(y1 = map_y1, f1)); 2 4 3 5 map_f1 := x - 2 x + 2 x y1 - 2 x y1 - 2 x y1 + x y1 + 2 y2 3 5 4 - x y2 + 2 y2 y1 - y2 y1 + 2 y2 y1 - 2 y2 y1 > # map_f1 is a factor of f over Q(y1,y2) > evala(Factor(map_f1, {y2,y1})); # could have plugged in roots 3 4 5 (x - 2 + 2 y1 - 2 y1 - 2 y1 + y1 ) (x - y2) > # Possible images for y2 are ry3 and ry5 > map_y2 := ry3; 3 2 5 map_y2 := -1/2 y2 y1 - y1 + 1/2 y2 + 1/2 y1 y2 + 1 - 1/2 y2 y1 4 + 3/2 y2 y1 - 1/2 y2 y1 > # Compute the permutation of the roots by mapping them > for i from 1 to 6 do > map_ry||i := evala(subs({y1=map_y1,y2=map_y2},ry||i)); > # print(i); > print(sort(map_ry||i)); > # print("Check if root of f", > #evala(subs(x=map_ry||i,f))); > for j from 1 to 6 do > if eval(map_ry||i - ry||j) = 0 then print(cat(i,"->",j)); fi; > od; > end do: 3 2 5 -1/2 y2 y1 - y1 + 1/2 y2 + 1/2 y1 y2 + 1 - 1/2 y2 y1 4 + 3/2 y2 y1 - 1/2 y2 y1 1->3 5 3 4 2 3 1 - y1 - y1 + 2 y1 + 2 y1 + 1/2 y2 - 1/2 y1 y2 + 1/2 y2 y1 5 4 + 1/2 y2 y1 - 3/2 y2 y1 + 1/2 y2 y1 5 2 3 4 3/2 y1 - 1/2 y1 - 5/2 y1 + 1/2 y1 + 3/2 y1 - 1/2 y2 + 3/2 2 3 5 4 + 5/2 y1 y2 - 1/2 y2 y1 + 1/2 y2 y1 - 3/2 y2 y1 - 3/2 y2 y1 5 2 3 4 -3/2 y1 + 1/2 y1 + 5/2 y1 - 1/2 y1 - 3/2 y1 + y2 - 1/2 2 5 4 - 2 y1 y2 - y2 y1 + 3 y2 y1 + y2 y1 4 5 3 -1 - 2 y1 + 2 y1 + y1 - 2 y1 - y2 5->2 2 3 5 4 -1/2 y2 - 1/2 y1 y2 + 1/2 y2 y1 + 1/2 y2 y1 - 3/2 y2 y1 + 1/2 y2 y1 6->4 > # Compute the norm of a random element > u:= RandomTools['Generate'](polynom(integer(range=-10..10),{z1,z2})); 2 2 2 2 u := 4 - 10 z1 - 9 z2 + 3 z2 z1 - z1 + 4 z2 + 3 z2 z1 - z1 z2 3 3 2 2 3 3 4 + 4 z1 - 2 z2 - 3 z1 z2 - 2 z2 z1 + 5 z2 z1 - 3 z1 4 3 2 2 3 4 4 - 4 z2 - 5 z2 z1 - 3 z2 z1 + 5 z2 z1 - 3 z2 z1 5 5 + 6 z1 - 7 z2 > norm_u_y2:=evala(expand(subs({z1=y1,z2=y2},u) * > subs({z1=y1,z2=ry2},u))); norm_u_y2 := 5 2 3 4 4580 + 12769 y1 + 4766 y1 + 1412 y1 - 5011 y1 - 2459 y1 > norm_u_y2_y1:=1: for i from 1 to 6 do > norm_u_y2_y1 := evala(expand(norm_u_y2_y1 * > subs(y1=ry||i, norm_u_y2))); > od: > norm_u_y2_y1; 46218921476072144894977 > ifactor(%); (113) (409017004213027830929) > norm_ux_y2:=evala(expand((x - subs({z1=y1,z2=y2},u)) * (x - > subs({z1=y1,z2=ry2},u)))); 2 5 4 3 2 norm_ux_y2 := x + 170 x y1 - 318 x y1 - 547 x y1 - 41 x y1 5 4 3 + 763 x y1 + 243 x + 4766 y1 - 2459 y1 - 5011 y1 2 + 1412 y1 + 12769 y1 + 4580 > evala(Factor(norm_ux_y2,{y2,y1})); > 5 2 3 4 (x + 238 y1 + 20 y1 + 90 y1 - 69 y1 - 70 y1 + 68 + 75 y2 2 3 5 4 - 45 y1 y2 - 176 y2 y1 + 55 y2 y1 - 83 y2 y1 + 182 y2 y1 5 2 3 4 ) (175 + x + 525 y1 + 150 y1 - 131 y1 - 478 y1 - 248 y1 2 3 5 4 - 75 y2 + 45 y1 y2 + 176 y2 y1 - 55 y2 y1 + 83 y2 y1 - 182 y2 y1) > norm_ux_y2_y1:=1: for i from 1 to 6 do > norm_ux_y2_y1 := evala(expand(norm_ux_y2_y1 > * subs(y1=ry||i, > norm_ux_y2))); > od: > norm_ux_y2_y1; 12 11 10 9 8 x + 592 x - 1420796 x - 312331836 x + 624302317052 x 7 6 - 89233621737092 x + 4749342065769734 x 5 4 - 93991354899520808 x - 409482735125049236 x 3 2 + 35856699740545014708 x - 189284743705668041380 x - 4527479969308416019164 x + 46218921476072144894977 > factor(%); 12 11 10 9 8 x + 592 x - 1420796 x - 312331836 x + 624302317052 x 7 6 - 89233621737092 x + 4749342065769734 x 5 4 - 93991354899520808 x - 409482735125049236 x 3 2 + 35856699740545014708 x - 189284743705668041380 x - 4527479969308416019164 x + 46218921476072144894977 >