ring R = 0, (x,y,z), lp; poly f1= 5x3y+x2; poly f2 = x2+y2; poly f3 = z+7; ideal I = f1, f2, f3; ideal J = x3y+x2, x2y3+y2; lead(f1); lead(I[2]); ideal I1 = groebner(I); ideal J1 = groebner(J); poly f9 = x3y4-y2; reduce(f9, I1); reduce(f9, J1); reduce(f9, I); proc libreCuadrados(poly f, int i) { poly g = f / gcd(f, diff(f,var(i)); return(g); } proc todasMenosUna(int ind) { int i; poly f = 1; for(i = 1; i<= nvars(basering); i++) { if(ind <> i) { f = f * var(i); } } return(f); }