# Singular

##### 7.5.6.0. extractS
Procedure from library `dmodideal.lib` (see dmodideal_lib).

Usage:
extractS(I,r); I ideal, r int

Return:
ring

Assume:
I is an ideal in the first r variables of the basering and these r variables generate a commutative subring

Purpose:
give the ideal generated by I in the commutative subring generated by the first r variables, ordering dp

Note:
The returned ring contains I.

Example:
 ```LIB "dmodideal.lib"; ring R = 0,(x,y),dp; ideal f = x^2-y^2,y; def S = BernsteinSatoIdeal(f); setring S; BS; ==> BS[1]=8*s(1)^4*s(2)+8*s(1)^4+12*s(1)^3*s(2)^2+56*s(1)^3*s(2)+44*s(1)^3+6*\ s(1)^2*s(2)^3+54*s(1)^2*s(2)^2+136*s(1)^2*s(2)+88*s(1)^2+s(1)*s(2)^4+16*s\ (1)*s(2)^3+77*s(1)*s(2)^2+138*s(1)*s(2)+76*s(1)+s(2)^4+10*s(2)^3+35*s(2)^\ 2+50*s(2)+24 def T = extractS(BS,2); setring T; I; ==> I[1]=8*s(1)^4*s(2)+12*s(1)^3*s(2)^2+6*s(1)^2*s(2)^3+s(1)*s(2)^4+8*s(1)^4+\ 56*s(1)^3*s(2)+54*s(1)^2*s(2)^2+16*s(1)*s(2)^3+s(2)^4+44*s(1)^3+136*s(1)^\ 2*s(2)+77*s(1)*s(2)^2+10*s(2)^3+88*s(1)^2+138*s(1)*s(2)+35*s(2)^2+76*s(1)\ +50*s(2)+24 factorize(I[1]); ==> [1]: ==> _[1]=1 ==> _[2]=s(1)+1 ==> _[3]=s(2)+1 ==> _[4]=2*s(1)+s(2)+3 ==> _[5]=2*s(1)+s(2)+4 ==> _[6]=2*s(1)+s(2)+2 ==> [2]: ==> 1,1,1,1,1,1 ```