# Singular

### D.1.2 par2varRing

Procedure from library `standard.lib` (see standard_lib).

Usage:
par2varRing([l]); l list of ideals/modules [default:l=empty list]

Return:
list, say L, with L[1] a ring where the parameters of the basering have been converted to an additional last block of variables, all of weight 1, and ordering dp.
If a list l with l[i] an ideal/module is given, then
l[i] + minpoly*freemodule(nrows(l[i])) is mapped to an ideal/module in L[1] with name Id[i].
If the basering has no parameters then L[1] is the basering.

Example:
 ``` ring R = (0,x),(y,z,u,v),lp; minpoly = x2+1; ideal i = x3,x2+y+z+u+v,xyzuv-1; i; ==> i[1]=(-x) ==> i[2]=y+z+u+v-1 ==> i[3]=(x)*yzuv-1 def P = par2varRing(i)[1]; P; ==> // coefficients: QQ ==> // number of vars : 5 ==> // block 1 : ordering lp ==> // : names y z u v ==> // block 2 : ordering dp ==> // : names x ==> // block 3 : ordering C setring(P); Id[1]; ==> _[1]=-x ==> _[2]=y+z+u+v-1 ==> _[3]=yzuvx-1 ==> _[4]=x2+1 setring R; module m = x3*[1,1,1], (xyzuv-1)*[1,0,1]; def Q = par2varRing(m)[1]; Q; ==> // coefficients: QQ ==> // number of vars : 5 ==> // block 1 : ordering lp ==> // : names y z u v ==> // block 2 : ordering dp ==> // : names x ==> // block 3 : ordering C setring(Q); print(Id[1]); ==> -x,yzuvx-1,x2+1,0, 0, ==> -x,0, 0, x2+1,0, ==> -x,yzuvx-1,0, 0, x2+1 ```