proc radical0(ideal I) { int i; ideal J = I; ideal E; for(i = 1; i <= nvars(basering); i++) { E = eliminate(I, todasMenosUna(i)); J = J + libreCuadrados(E[1], i); } return(groebner(J)); } ideal I = x2, y2, z3; radical0(I);