Use R ::= QQ[x,y,z];
S ::= ZZ/(3)[a,b];
Ring(S);
ZZ/(3)[a,b]
-------------------------------
Ring(R);
QQ[x,y,z]
-------------------------------
R; -- same as above, as long as there is no variable with identifier
-- R in the working memory
QQ[x,y,z]
-------------------------------
CurrentRing();
QQ[x,y,z]
-------------------------------
R := 5; -- a variable with identifier R; now there are two objects
-- with the identifier R: a variable and a ring
R;
5
-------------------------------
Memory(); -- the variables of the working memory
["It", "R"]
-------------------------------
RingEnvs(); -- the list of rings
["QQ", "QQt", "R", "S", "ZZ"]
-------------------------------
Ring(R); -- the ring with identifier R
QQ[x,y,z]
-------------------------------
|