// MATH 531: Intro to Singular /////////////////////////////////////////// SINGULAR / A Computer Algebra System for Polynomial Computations / version 2-0-4 0< by: G.-M. Greuel, G. Pfister, H. Schoenemann \ October 2002 FB Mathematik der Universitaet, D-67653 Kaiserslautern \ > 23+435; 458 > int k = 12; > k; 12 > int j; > j = 1 + k; > _; 12 > . . ring r = 0, (x,y,z), dp; > . . ring r5; > r5; // characteristic : 32003 // number of vars : 3 // block 1 : ordering dp // : names x y z // block 2 : ordering C > setring r; > poly f = x**3 + y**2; > poly g = x3+y2; > f; x3+y2 > g; x3+y2 > g + 4xy; x3+4xy+y2 > f = x3+y3+(x-y)*x2y2+z2; > g = f^2*(2x-y); > g; 2x7y4-5x6y5+4x5y6-x4y7+4x7y2-6x6y3+2x5y4+4x4y5-6x3y6+2x2y7+4x4y2z2-6x3y3z2+2x2y4z2+2x7-x6y+4x4y3-2x3y4+2xy6-y7+4x4z2-2x3yz2+4xy3z2-2y4z2+2xz4-yz4 > ideal I = f,g; > // Is (1,2,0) on the variety V(I)? > ideal J = subst(I, var(1), 1); > J = subst(J, var(2), 2); > J = subst(J, var(3), 0); > J; J[1]=2 J[2]=4 > // Is g contained in ideal generated by f? > ideal gbI = groebner(f); > reduce(g,gbI); 0 > // play with Jacobian ideal of f . ideal J = jacob(f); // ** redefining J ** > J; J[1]=3x2y2-2xy3+3x2 J[2]=2x3y-3x2y2+3y2 J[3]=2z > J = groebner(J); > J; J[1]=z J[2]=3x2y2-2xy3+3x2 J[3]=2x3y-2xy3+3x2+3y2 J[4]=4x4-12xy3+4y4+9x2+9y2 J[5]=20y5+54x3-45x2y-30xy2-81y3 J[6]=10xy4+18x3-15x2y-27y3 > ideal K = kbase(J); > K; K[1]=y4 K[2]=xy3 K[3]=y3 K[4]=xy2 K[5]=y2 K[6]=x2y K[7]=xy K[8]=y K[9]=x3 K[10]=x2 K[11]=x K[12]=1 > size(K); 12 > vdim(J); 12 > // local orderings . . ring r=0, (x,y,z), ds; // ** redefining r ** > poly s1 = x3-yz; > poly s2 = y3-xz; > poly s3 = z3-xy; > ideal I = s1,s2,s3; > ideal J=std(I); > mult(J); 11 > kbase(J); _[1]=z4 _[2]=z3 _[3]=z2 _[4]=z _[5]=y3 _[6]=y2 _[7]=y _[8]=x3 _[9]=x2 _[10]=x _[11]=1 > . // solve library . LIB "solve.lib"; // ** loaded /usr/local/Singular/2-0-4/LIB/solve.lib (1.21.2.13,2002/10/21) // ** loaded /usr/local/Singular/2-0-4/LIB/triang.lib (1.7,2001/02/19) // ** loaded /usr/local/Singular/2-0-4/LIB/elim.lib (1.14.2.3,2002/10/24) // ** loaded /usr/local/Singular/2-0-4/LIB/poly.lib (1.33.2.5,2002/04/09) // ** loaded /usr/local/Singular/2-0-4/LIB/ring.lib (1.17.2.1,2002/02/20) // ** loaded /usr/local/Singular/2-0-4/LIB/inout.lib (1.21.2.5,2002/06/12) // ** loaded /usr/local/Singular/2-0-4/LIB/general.lib (1.38.2.8,2002/04/30) // ** loaded /usr/local/Singular/2-0-4/LIB/matrix.lib (1.26.2.2,2002/10/07) // ** loaded /usr/local/Singular/2-0-4/LIB/random.lib (1.16.2.1,2002/02/20) > list s = solve(I); // name of new current ring: rC > s[1]; [1]: -1 [2]: i [3]: i > // THE EXERCISE (a typo corrected in the second generator) > ring r=0, (x,y), ds; // ** redefining r ** > ideal I = x2-2x+y2, x2-4x+3y4; > list s = solve(I); // name of current ring: rC > s[7]; // take one of the integer solutions [1]: 1 [2]: 1 > // PART (d) > setring r; // return to the old ring > ideal J = subst(I, var(1), var(1)+1); // ** redefining J ** > J = subst(J, var(2), var(2)+1);; > J; J[1]=2y+x2+y2 J[2]=-2x+12y+x2+18y2+12y3+3y4 > mult(std(J)); 1 >