# Singular          #### 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:
 ``` : (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) : ideal, variables which have been substituted : ideal, i-th element defines substitution of i-th var in  : ideal of variables of basering, substituted ones are set to 0 : ideal, describing the map from the basering, say k[x(1..m)], to itself onto k[..variables fom ..] and  is the image of i : int, # of vars considered for substitution (= # of factors of p) ```
The ideal i is generated by  and  in k[x(1..m)], the map  maps  to 0, hence induces an isomorphism
 ``` k[x(1..m)]/i -> k[..variables fom ..]/ ```

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); ==> : ==> _=x3+y2-y-1 ==> _=x2y2-y3-3y2-3y-1 ==> : ==> _=z ==> : ==> _=y+z+1 ==> : ==> _=0 ==> _=x ==> _=y ==> : ==> _=-y-1 ==> _=x ==> _=y ==> : ==> 1 ```

### Misc 