
D.8.2.4 elimpartanyr
Procedure from library presolve.lib (see presolve_lib).
 Usage:
 elimpartanyr(i [,p,e] ); i=ideal, p=polynomial, e=integer
p: product of vars to be eliminated,
e =0: substitute from linear part of i (same as elimlinearpart)
e!=0: eliminate also by direct substitution
(default: p=product of all vars, e=1)
 Return:
 list of 6 objects:
 [1]: (interreduced) ideal obtained by substituting from i those vars
appearing in p, which occur in the linear part of i (or which can
be expressed directly in the remaining variables, if e!=0)
[2]: ideal, variables which have been substituted
[3]: ideal, ith element defines substitution of ith var in [2]
[4]: ideal of variables of basering, substituted ones are set to 0
[5]: ideal, describing the map from the basering, say k[x(1..m)], to
itself onto k[..variables fom [4]..] and [1] is the image of i
[6]: int, # of vars considered for substitution (= # of factors of p)
 The ideal i is generated by [1] and [3] in k[x(1..m)], the map [5]
maps [3] to 0, hence induces an isomorphism
 k[x(1..m)]/i > k[..variables fom [4]..]/[1]

 Note:
 the procedure uses
execute to create a ring with ordering dp
and vars placed correctly and then applies elimpart .
Example:
 LIB "presolve.lib";
ring s=0,(x,y,z),dp;
ideal i = x3+y2+z,x2y2+z3,y+z+1;
elimpartanyr(i,z);
==> [1]:
==> _[1]=x3+y2y1
==> _[2]=x2y2y33y23y1
==> [2]:
==> _[1]=z
==> [3]:
==> _[1]=y+z+1
==> [4]:
==> _[1]=0
==> _[2]=x
==> _[3]=y
==> [5]:
==> _[1]=y1
==> _[2]=x
==> _[3]=y
==> [6]:
==> 1

