# Singular

#### D.14.4.1 boolean_std

Procedure from library `polybori.lib` (see polybori_lib).

Usage:
boolean_std(Is); Is ideal

Return:
Singular ideal of the boolean groebner basis of Is

Example:
 ```LIB "polybori.lib"; ==> // ** args must be 1 in system("install", "bideal", "ideal", bid\ eal2ideal, 4); ring r0=2,x(1..4),lp; poly f1=x(1)^2+2*x(2)*(x(3))-x(4)^3; poly f2=x(1)^2-x(3)*x(1); poly f3=x(2)+5-2*x(1); poly f4=x(1)*x(2)-x(3); ideal I=f1,f2,f3,f4; boolean_std(I); // implicitely add x(i)^2-x(i) ==> _[1] = x(1) + x(4) ==> _[2] = x(3) + x(4) ==> _[3] = x(2) + 1 ==> bideal bI=I; // alternative syntax bideal re = std(bI); // Continue PolyBoRi computations std(re[1..2]); ==> _[1] = x(1) + x(4) ==> _[2] = x(3) + x(4) ==> ring r1=0,x,Dp; poly f1=x3+2*x+1; poly f2=x10-x5+2x; poly f3=19; ideal I=f1,f2,f3; boolean_std(I); ==> _[1] = 1 ==> ring r2=32003,(x,y,z),Dp; poly f1=xz+y+20*x^2*y; poly f2=32002*xy+xz2+y; ideal I=f1,f2; boolean_std(I); ==> _[1] = x*z ==> _[2] = y ==> ring r2=32003,(x,y,z),Dp; ==> // ** redefining r2 (ring r2=32003,(x,y,z),Dp;) poly f1=xyz+20*x^2*y-3*xz+15; poly f2=32002*xy+z2; poly f3=19*x5y; ideal I=f1,f2,f3; boolean_std(I); ==> _[1] = 1 ==> ```