SINGULAR / Development A Computer Algebra System for Polynomial Computations / version 4.0.3 0< by: W. Decker, G.-M. Greuel, G. Pfister, H. Schoenemann \ Jan 2016 FB Mathematik der Universitaet, D-67653 Kaiserslautern \ > //---[CLO, p. 309] . //---Specialization of Groebner bases . ring r=0,(c1,s1,c2,s2,a,b,l2,l3),(dp(4),dp); //product order > option(redSB); > . ideal id=l3*(c1*c2-s1*s2)+l2*c1-a, . l3*(c1*s2+c2*s1)+l2*s1-b, . c1^2+s1^2-1,c2^2+s2^2-1; > . ideal j = std(id); > j; j[1]=2*c2*l2*l3-a^2-b^2+l2^2+l3^2 j[2]=s1*a^2+s1*b^2-c2*b*l3+s2*a*l3-b*l2 j[3]=c1*b-s1*a-s2*l3 j[4]=c1*a+s1*b-c2*l3-l2 j[5]=2*s2^2*l2*l3+c2*a^2+c2*b^2-c2*l2^2-c2*l3^2-2*l2*l3 j[6]=2*s1*s2*l2*l3-c1*l2^2+c1*l3^2-c2*a*l3-s2*b*l3+a*l2 j[7]=2*c1*s2*l2*l3+s1*l2^2-s1*l3^2+c2*b*l3-s2*a*l3-b*l2 j[8]=c2^2+s2^2-1 j[9]=s1*c2*l3+c1*s2*l3+s1*l2-b j[10]=s1*c2*l2-c1*s2*l2+s1*l3-c2*b+s2*a j[11]=c1*c2*l3-s1*s2*l3+c1*l2-a j[12]=c1*c2*l2+s1*s2*l2+c1*l3-c2*a-s2*b j[13]=c1^2+s1^2-1 > //---[CLO, p. 309, line 16] should be corrected as follows: . // 2*l_2l_3, a^2+b^2, b, a, 2*l_2l_3, 2*l_2l_3, 2*l_2l_3, 1, l_3, . // l_2, l_3, l_2, 1. . //---Groebner cover di in Q(t)[x,y] . LIB "grobcov.lib"; ideal I = x+y, x+t*y; grobcov(I);// ** loaded /usr/bin/../share/singular/LIB/grobcov.lib (4.0.2.0,Jul_2015) // ** loaded /usr/bin/../share/singular/LIB/qhmoduli.lib (4.0.0.0,Jun_2013) // ** loaded /usr/bin/../share/singular/LIB/rinvar.lib (4.0.1.1,Jan_2015) // ** loaded /usr/bin/../share/singular/LIB/ring.lib (4.0.2.2,Jan_2016) // ** loaded /usr/bin/../share/singular/LIB/general.lib (4.0.0.1,Jan_2014) // ** loaded /usr/bin/../share/singular/LIB/matrix.lib (4.0.0.0,Jun_2013) // ** loaded /usr/bin/../share/singular/LIB/nctools.lib (4.0.0.0,Jun_2013) // ** loaded /usr/bin/../share/singular/LIB/random.lib (4.0.0.0,Jun_2013) // ** loaded /usr/bin/../share/singular/LIB/poly.lib (4.0.0.0,Jun_2013) // ** loaded /usr/bin/../share/singular/LIB/inout.lib (4.0.0.0,Jun_2013) // ** loaded /usr/bin/../share/singular/LIB/zeroset.lib (4.0.0.0,Jun_2013) // ** loaded /usr/bin/../share/singular/LIB/primitiv.lib (4.0.0.0,Jun_2013) // ** loaded /usr/bin/../share/singular/LIB/elim.lib (4.0.0.1,Jan_2014) // ** loaded /usr/bin/../share/singular/LIB/presolve.lib (4.0.2.2,Jan_2016) // ** loaded /usr/bin/../share/singular/LIB/primdec.lib (4.0.2.0,Apr_2015) // ** loaded /usr/bin/../share/singular/LIB/absfact.lib (4.0.0.0,Jun_2013) // ** loaded /usr/bin/../share/singular/LIB/triang.lib (4.0.0.0,Jun_2013) > ring rr = (0,t),(x,y),lp; > ideal I = x+y, x+t*y; > grobcov(I); [1]: [1]: _[1]=y _[2]=x [2]: _[1]=y _[2]=x [3]: [1]: [1]: _[1]=0 [2]: [1]: _[1]=(t-1) [4]: y,x [2]: [1]: _[1]=x [2]: _[1]=x+y [3]: [1]: [1]: _[1]=(t-1) [2]: [1]: _[1]=1 [4]: x > //---Torniamo al robot 1 . ring r=(0,l3,l2,a,b),(c1,s1,c2,s2),dp; // ** redefining r ** > option(redSB); > ideal id=l3*(c1*c2-s1*s2)+l2*c1-a, . l3*(c1*s2+c2*s1)+l2*s1-b, . c1^2+s1^2-1,c2^2+s2^2-1; > list g = grobcov(id); > g; [1]: [1]: _[1]=c2 _[2]=s1 _[3]=c1 _[4]=s2^2 [2]: _[1]=(2*l3*l2)*c2+(l3^2+l2^2-a^2-b^2) _[2]=(2*l2*a^2+2*l2*b^2)*s1+(2*l3*l2*a)*s2+(l3^2*b-l2^2*b-a^2*b-b^3) _[3]=(2*l2*a^2+2*l2*b^2)*c1+(-2*l3*l2*b)*s2+(l3^2*a-l2^2*a-a^3-a*b^2) _[4]=(4*l3^2*l2^2)*s2^2+(l3^4-2*l3^2*l2^2-2*l3^2*a^2-2*l3^2*b^2+l2^4-2*l2^2*a^2-2*l2^2*b^2+a^4+2*a^2*b^2+b^4) [3]: [1]: [1]: _[1]=0 [2]: [1]: _[1]=(a^2+b^2) [2]: _[1]=(l2) [3]: _[1]=(l3) [4]: c2,s1,c1,s2^2 [2]: [1]: _[1]=1 [2]: _[1]=1 [3]: [1]: [1]: _[1]=(l3) [2]: [1]: _[1]=(l2^2-a^2-b^2) _[2]=(l3) [2]: _[1]=(a^2+b^2) _[2]=(l3) [2]: [1]: _[1]=(l2) [2]: [1]: _[1]=(l2) _[2]=(l3^2-a^2-b^2) [2]: _[1]=(a^2+b^2) _[2]=(l2) [4]: @t,s1,c1,c2^2 [3]: [1]: _[1]=s1 _[2]=c1 _[3]=c2^2 [2]: _[1]=(l2^2*a^2+l2^2*b^2+l2*a^2+l2*b^2-a^4-2*a^2*b^2-b^4)*s1+(l3*a^2*b+l3*b^3)*c2+(-l3*a^3-l3*a*b^2)*s2+(-l2^2*b) _[2]=(l2^2*a^2+l2^2*b^2+l2*a^2+l2*b^2-a^4-2*a^2*b^2-b^4)*c1+(l3*a^3+l3*a*b^2)*c2+(l3*a^2*b+l3*b^3)*s2+(-l2^2*a) _[3]=c2^2+s2^2-1 [3]: [1]: [1]: _[1]=(l2^2-a^2-b^2) _[2]=(l3) [2]: [1]: _[1]=(a^2+b^2) _[2]=(l2) _[3]=(l3) [2]: [1]: _[1]=(l2) _[2]=(l3^2-a^2-b^2) [2]: [1]: _[1]=(a^2+b^2) _[2]=(l2) _[3]=(l3) [4]: s1,c1,c2^2 [4]: [1]: _[1]=1 [2]: _[1]=1 [3]: [1]: [1]: _[1]=(a^2+b^2) _[2]=(l2) _[3]=(l3) [2]: [1]: _[1]=(b) _[2]=(a) _[3]=(l2) _[4]=(l3) [4]: @t^2,c2*@t,c1,c2^2 [5]: [1]: _[1]=c2^2 _[2]=c1^2 [2]: _[1]=c2^2+s2^2-1 _[2]=c1^2+s1^2-1 [3]: [1]: [1]: _[1]=(b) _[2]=(a) _[3]=(l2) _[4]=(l3) [2]: [1]: _[1]=1 [4]: c2^2,c1^2 [6]: [1]: _[1]=1 [2]: _[1]=1 [3]: [1]: [1]: _[1]=(a^2+b^2) _[2]=(l3) [2]: [1]: _[1]=(b) _[2]=(a) _[3]=(l3) [2]: _[1]=(a^2+b^2) _[2]=(l2) _[3]=(l3) [4]: @t,c1,c2^2,s1*c2 [7]: [1]: _[1]=1 [2]: _[1]=1 [3]: [1]: [1]: _[1]=(b) _[2]=(a) _[3]=(l3) [2]: [1]: _[1]=(b) _[2]=(a) _[3]=(l2) _[4]=(l3) [4]: @t,c2^2,s1*c2,c1*c2,c1^2 [8]: [1]: _[1]=1 [2]: _[1]=1 [3]: [1]: [1]: _[1]=(a^2+b^2) _[2]=(l2) [2]: [1]: _[1]=(b) _[2]=(a) _[3]=(l2) [2]: _[1]=(a^2+b^2) _[2]=(l2) _[3]=(l3) [4]: @t,c2,c1,s1*s2 [9]: [1]: _[1]=1 [2]: _[1]=1 [3]: [1]: [1]: _[1]=(b) _[2]=(a) [2]: [1]: _[1]=(b) _[2]=(a) _[3]=(l3+l2) [2]: _[1]=(b) _[2]=(a) _[3]=(l3) [3]: _[1]=(b) _[2]=(a) _[3]=(l3-l2) [4]: @t,s2,c2,c1^2 [10]: [1]: _[1]=s2 _[2]=c2 _[3]=s1 _[4]=c1 [2]: _[1]=(2*l3*l2*b)*s2+(-l3^2*a+l2^2*a) _[2]=(2*l3*l2)*c2+(l3^2+l2^2) _[3]=(4*l3^2*l2*b-4*l2^3*b)*s1+(l3^4-2*l3^2*l2^2+l2^4+4*l2^2*b^2) _[4]=(4*l3^2*l2*b^2-4*l2^3*b^2)*c1+(-l3^4*a+2*l3^2*l2^2*a-l2^4*a+4*l2^2*a*b^2) [3]: [1]: [1]: _[1]=(a^2+b^2) [2]: [1]: _[1]=(a^2+b^2) _[2]=(l2) [2]: _[1]=(b) _[2]=(a) [3]: _[1]=(a^2+b^2) _[2]=(l3+l2) [4]: _[1]=(a^2+b^2) _[2]=(l3) [5]: _[1]=(a^2+b^2) _[2]=(l3-l2) [4]: s2,c2,s1*@t,c1 [11]: [1]: _[1]=s2 _[2]=c2 _[3]=c1^2 [2]: _[1]=s2 _[2]=(l3)*c2+(l2) _[3]=c1^2+s1^2-1 [3]: [1]: [1]: _[1]=(b) _[2]=(a) _[3]=(l3-l2) [2]: [1]: _[1]=(b) _[2]=(a) _[3]=(l2) _[4]=(l3) [2]: [1]: _[1]=(b) _[2]=(a) _[3]=(l3+l2) [2]: [1]: _[1]=(b) _[2]=(a) _[3]=(l2) _[4]=(l3) [4]: s2,c2,c1^2 [12]: [1]: _[1]=1 [2]: _[1]=1 [3]: [1]: [1]: _[1]=(a^2+b^2) _[2]=(l3-l2) [2]: [1]: _[1]=(b) _[2]=(a) _[3]=(l3-l2) [2]: _[1]=(a^2+b^2) _[2]=(l2) _[3]=(l3) [2]: [1]: _[1]=(a^2+b^2) _[2]=(l3+l2) [2]: [1]: _[1]=(b) _[2]=(a) _[3]=(l3+l2) [2]: _[1]=(a^2+b^2) _[2]=(l2) _[3]=(l3) [4]: @t^2,s2,c2,c1 >