REDUCE 3.6, 15-Jul-95, patched to 6 Mar 96 ...
I_setting(x,y,z);
torder revgradlex;
{{},lex}
u := I(x*z-y**2, x**3-y*z);
2 3
u := i(x*z - y ,x - y*z)
y member I(x,y^2);
0
x member I(x,y^2);
1
I(x,y^2) subset I(x,y);
1
% yes
I(x,y) subset I(x,y^2);
0
% no
% examples taken from Cox, Little, O'Shea: "Ideals, Varieties and Algorithms"
q1 := u .: I(x);
3 2 2 2
q1 := i(x - y*z,x *y - z , - x*z + y )
% quotient ideal
q2 := u .+ I(x^2 * y - z^2);
3 2 2 2
q2 := i(x - y*z,x *y - z , - x*z + y )
% sum ideal
if q1 .= q2 then write "same ideal";
same ideal
% test equality
intersection(u,I(y));
3 2 2 2 2 3
i(x *y - y *z,x *y - y*z , - x*y*z + y )
% ideal intersection
u .: I(y);
3 2 2 2
i(x - y*z,x *y - z , - x*z + y )
u .: I(x,y);
3 2 2 2
i(x - y*z,x *y - z , - x*z + y )
%-----------------------------------------------------
u1 := I(x,y^2);
2
u1 := i(x,y )
u1u1:= u1 .* u1;
4 2 2
u1u1 := i(y ,x*y ,x )
% square ideal
u0 :=I(x,y);
u0 := i(x,y)
% test equality/inclusion for u1,u1u1,u0
u1 .= u1u1;
0
% no
u1 subset u1u1;
0
% no
u1u1 subset u1;
1
% yes
u1 .= u0;
0
% no
u1 subset u0;
1
% yes
intersection (I(x) , I(x^2,x*y,y^2)) .= intersection(I(x) , I(x^2,y));
1
end;
(TIME: ideals 330 330)