i1 : wtR = matrix{{31,12}}; 1 2 o1 : Matrix ZZ <--- ZZ |
i2 : Rq = ZZ/2[y,x,Weights=>entries weightGrevlex(wtR)]; |
i3 : Iq = {y^12+y^11+y^10*x^2+y^8*x^9+x^31}; |
i4 : ic1 = qthIntegralClosure(wtR,Rq,Iq) 28 11 7 9 10 9 2 10 3 6 12 9 3 8 5 9 6 o4 = ({x , y + y x + y + y x , y x + y x + y x + y x , y x + ------------------------------------------------------------------------ 5 15 8 6 7 8 8 9 4 18 7 9 6 11 7 12 3 21 6 12 y x + y x + y x , y x + y x + y x + y x , y x + y x + y x ------------------------------------------------------------------------ 5 14 6 15 2 24 5 15 4 17 28 5 18 27 4 18 + y x , y x + y x + y x + y x , y*x , y x + y*x + y x + ------------------------------------------------------------------------ 3 20 2 26 26 4 21 3 21 2 23 3 24 2 24 26 2 y x , y x + y*x , y x + y x + y x , y x + y x + y*x }, {p 0 ------------------------------------------------------------------------ 3 2 5 2 2 5 + p p + p p + p p + p p , p p + p p + p p + p p + p p , 1 11 2 11 3 11 5 11 0 1 0 11 3 11 5 11 6 11 ------------------------------------------------------------------------ 4 3 2 5 p p + p p + p p + p p , p p + p p + p p + p p , p p + 0 2 1 11 3 11 4 11 0 3 5 11 6 11 7 11 0 4 ------------------------------------------------------------------------ 3 2 5 2 5 p p , p p + p p + p p + p p , p p + p p + p p + p p , p p 1 11 0 5 6 11 7 11 8 11 0 6 7 11 8 11 9 11 0 7 ------------------------------------------------------------------------ 2 5 2 5 2 + p p + p p + p p , p p + p p + p p + p , p p + p p + 8 11 9 11 10 11 0 8 9 11 10 11 11 0 9 4 11 ------------------------------------------------------------------------ 2 2 2 2 5 p p + p , p p + p p + p , p + p p + p p + p p + p p , 10 11 11 0 10 2 11 11 1 1 11 5 11 6 11 7 11 ------------------------------------------------------------------------ 2 4 2 5 3 p p + p p + p p + p p , p p + p p + p p + p p , p p + p p 1 2 2 11 3 11 5 11 1 3 6 11 7 11 8 11 1 4 3 11 ------------------------------------------------------------------------ 2 2 5 2 5 + p p , p p + p p + p p + p p , p p + p p + p p + p p , 4 11 1 5 7 11 8 11 9 11 1 6 8 11 9 11 10 11 ------------------------------------------------------------------------ 2 5 2 2 p p + p p + p p + p , p p + p p + p p + p , p p + p p + 1 7 9 11 10 11 11 1 8 4 11 10 11 11 1 9 2 11 ------------------------------------------------------------------------ 2 3 4 p , p p + p , p + p + p p + p , p p + p p + p p , p p + 11 1 10 0 2 0 1 11 2 2 3 5 11 6 11 2 4 ------------------------------------------------------------------------ 2 4 4 p p + p , p p + p p + p p , p p + p p + p p , p p + p p + 0 11 4 2 5 6 11 7 11 2 6 7 11 8 11 2 7 8 11 ------------------------------------------------------------------------ 4 4 4 p p , p p + p p + p p , p p + p p + p , p p + p p + p , 9 11 2 8 9 11 10 11 2 9 10 11 11 2 10 4 11 11 ------------------------------------------------------------------------ 2 2 2 5 3 2 p + p p + p p + p p + p p , p p + p p , p p + p p + p p + 3 5 11 7 11 8 11 9 11 3 4 5 11 3 5 6 11 8 11 ------------------------------------------------------------------------ 2 5 2 2 5 2 p p + p p , p p + p p + p p + p p + p , p p + p p + 9 11 10 11 3 6 7 11 9 11 10 11 11 3 7 4 11 ------------------------------------------------------------------------ 2 2 2 2 p p + p p + p , p p + p p + p p + p , p p + p + p p , 8 11 10 11 11 3 8 2 11 9 11 11 3 9 0 10 11 ------------------------------------------------------------------------ 2 2 2 3 3 p p + p + p , p + p p + p , p p + p p , p p + p p , p p + 3 10 1 11 4 2 11 4 4 5 6 11 4 6 7 11 4 7 ------------------------------------------------------------------------ 3 3 3 3 2 2 p p , p p + p p , p p + p p , p p + p , p + p p + p p + 8 11 4 8 9 11 4 9 10 11 4 10 11 5 7 11 9 11 ------------------------------------------------------------------------ 2 5 2 2 2 2 p p + p , p p + p p + p p + p p + p , p p + p p + p p 10 11 11 5 6 4 11 8 11 10 11 11 5 7 2 11 9 11 ------------------------------------------------------------------------ 2 2 2 + p , p p + p + p p , p p + p + p , p p + p , p + p p + 11 5 8 0 10 11 5 9 1 11 5 10 3 6 2 11 ------------------------------------------------------------------------ 2 2 2 p p + p , p p + p + p p , p p + p + p , p p + p , p p + p , 9 11 11 6 7 0 10 11 6 8 1 11 6 9 3 6 10 5 ------------------------------------------------------------------------ 2 2 2 p + p + p , p p + p , p p + p , p p + p , p + p , p p + p , 7 1 11 7 8 3 7 9 5 7 10 6 8 5 8 9 6 ------------------------------------------------------------------------ 2 2 ZZ p p + p , p + p , p p + p , p + p }, --[p ..p ], | 45 40 38 35 8 10 7 9 7 9 10 8 10 9 2 0 11 ------------------------------------------------------------------------ 31 30 25 20 15 10 5 12 |) o4 : Sequence |
i5 : ic2 = minimization(ic1); toString ic2 o6 = {matrix {{45, 40, 38, 35, 31, 30, 25, 20, 15, 10, 12, 5}}, (ZZ/2)[p_0..p_11], {p_10^3+p_4*p_11, p_4*p_10+p_2*p_11+p_10, p_2*p_10+p_11^10+p_10^2*p_11^2+p_10, p_4^2+p_10*p_11^10+p_4*p_11^3+p_4+p_10^2, p_2*p_4+p_10^2*p_11^9+p_2*p_11^3+p_4+p_10*p_11^2, p_2^2+p_4*p_11^9+p_11^12+p_11^9+p_10^2*p_11^4+p_2+p_10*p_11^2}} |
i7 : ic3 = qthIntegralClosure(ic2#0,ic2#1,ic2#2) 2 2 9 4 2 12 9 o7 = ({1, p , p , p , p }, {p + p + p p + p p + p p + p + p , p p + 10 10 4 2 0 0 1 4 2 4 3 4 4 4 0 1 ------------------------------------------------------------------------ 3 9 2 3 10 2 p p + p + p p + p p , p p + p p + p + p p , p p + p p + p + 0 4 1 2 4 3 4 0 2 1 4 2 3 4 0 3 2 4 3 ------------------------------------------------------------------------ 10 2 3 10 3 11 p , p + p p + p + p + p p , p p + p p + p + p p + p , p p + 4 1 1 4 1 2 3 4 1 2 2 4 2 3 4 4 1 3 ------------------------------------------------------------------------ 2 2 2 ZZ p p + p , p + p p + p p , p p + p p , p + p }, --[p ..p ], | 38 31 0 4 3 2 0 4 3 4 2 3 1 4 3 2 2 0 4 ------------------------------------------------------------------------ 24 12 5 |) o7 : Sequence |
i8 : R1=ZZ/2[f38,f31,f12,f5,Weights=> entries weightGrevlex(matrix{{38,31,12,5}})]; |
i9 : phi1=map(R1,ic2#1,matrix{{0,0,f38,0,f31,0,0,0,0,0,f12,f5}}); ZZ o9 : RingMap R1 <--- --[p ..p ] 2 0 11 |
i10 : I1=ic2#2/(v->phi1(v)) 3 10 2 2 o10 = {f12 + f31*f5, f31*f12 + f38*f5 + f12, f38*f12 + f5 + f12 f5 + f12, ----------------------------------------------------------------------- 2 10 3 2 2 9 3 f31 + f12*f5 + f31*f5 + f31 + f12 , f38*f31 + f12 f5 + f38*f5 + ----------------------------------------------------------------------- 2 2 9 12 9 2 4 2 f31 + f12*f5 , f38 + f31*f5 + f5 + f5 + f12 f5 + f38 + f12*f5 } o10 : List |
i11 : G1=transpose gens gb ideal I1 o11 = {-3} | f12^3+f31f5 | {-2} | f31f12+f38f5+f12 | {-10} | f38f12+f5^10+f12^2f5^2+f12 | {-11} | f31^2+f12f5^10+f31f5^3+f31+f12^2 | {-11} | f38f31+f12^2f5^9+f38f5^3+f31+f12f5^2 | {-12} | f38^2+f31f5^9+f5^12+f5^9+f12^2f5^4+f38+f12f5^2 | 6 1 o11 : Matrix R1 <--- R1 |
i12 : R2=ZZ/2[f38,f31,f24,f12,f5,MonomialOrder=>{Weights=>{1,1,1,1,0},Weights=>{1,1,1,0,0},Weights=>{1,1,0,0,0},Weights=>{1,0,0,0,0},Weights=>{38,31,24,12,5}}]; |
i13 : phi2=map(R2,R1,matrix{{f38,f31,f12,f5}}); o13 : RingMap R2 <--- R1 |
i14 : I2=ideal((flatten entries G1)/(v->phi2(v)))+ideal(f12^2-f24) 3 2 2 o14 = ideal (f12 + f31*f5, f31*f12 + f38*f5 + f12, f38*f12 + f12 f5 + f12 + ----------------------------------------------------------------------- 10 2 2 3 10 2 9 f5 , f31 + f12 + f31*f5 + f31 + f12*f5 , f38*f31 + f12 f5 + ----------------------------------------------------------------------- 3 2 2 2 4 9 2 f38*f5 + f31 + f12*f5 , f38 + f12 f5 + f38 + f31*f5 + f12*f5 + ----------------------------------------------------------------------- 12 9 2 f5 + f5 , f12 + f24) o14 : Ideal of R2 |
i15 : G2=transpose gens gb I2 o15 = {-2} | f12^2+f24 | {-2} | f24f12+f31f5 | {-2} | f31f12+f38f5+f12 | {-10} | f38f12+f24f5^2+f12+f5^10 | {-3} | f24^2+f38f5^2+f12f5 | {-11} | f31f24+f24f5^3+f24+f12f5+f5^11 | {-11} | f38f24+f31f5^3+f24+f12f5^10 | {-11} | f31^2+f31f5^3+f31+f24+f12f5^10 | {-10} | f38f31+f38f5^3+f31+f24f5^9+f12f5^2 | {-12} | f38^2+f38+f31f5^9+f24f5^4+f12f5^2+f5^12+f5^9 | 10 1 o15 : Matrix R2 <--- R2 |
Minimization changes the order of the variables to impicitly change to a new Noether normalization, but doesn't actually recompute the integral closure presentation as a strict affine algebra over the new Noether normalization. Therefore a second call to an integral closure method is required if the output of normalization doesn't suffice. It does produce the three outputs needed as input to either qthIntegralClosure or rationalIntegralClosure. I don't necessarily like this second call. At the current time it is easier to use the output of minimization to produce manually (as above) a good minimization.
The object minimization is a method function.