# Singular

#### D.2.4.2 cgsdr

Procedure from library `grobcov.lib` (see grobcov_lib).

Return:
Returns a list T describing a reduced and disjoint
Comprehensive Groebner System (CGS),
With option ("out",0)
the segments are grouped by
leading power products (lpp) of the reduced Groebner
basis and given in P-representation.
The returned list is of the form: ( (lpp, (num,basis,segment),...,(num,basis,segment),lpp), ..,, (lpp, (num,basis,segment),...,(num,basis,segment),lpp) ) The bases are the reduced Groebner bases (after normalization) for each point of the corresponding segment.

The third element of each lpp segment is the lpp of the used ideal in the CGS as a string:
with option ("can",0) the homogenized basis is used
with option ("can",1) the homogenized ideal is used
with option ("can",2) the given basis is used

With option ("out",1) (default)
only KSW is applied and segments are given as
difference of varieties and are not grouped
The returned list is of the form: ( (E,N,B),..(E,N,B) ) E is the null variety
N is the nonnull variety
segment = V(E) \ V(N)
B is the reduced Groebner basis

Note:
The basering R, must be of the form Q[a][x], (a=parameters, x=variables), and should be defined previously, and the ideal defined on R.

Example:
 ```LIB "grobcov.lib"; // Casas conjecture for degree 4: ring R=(0,a0,a1,a2,a3,a4),(x1,x2,x3),dp; short=0; ideal F=x1^4+(4*a3)*x1^3+(6*a2)*x1^2+(4*a1)*x1+(a0), x1^3+(3*a3)*x1^2+(3*a2)*x1+(a1), x2^4+(4*a3)*x2^3+(6*a2)*x2^2+(4*a1)*x2+(a0), x2^2+(2*a3)*x2+(a2), x3^4+(4*a3)*x3^3+(6*a2)*x3^2+(4*a1)*x3+(a0), x3+(a3); cgsdr(F); ==> [1]: ==> [1]: ==> _[1]=0 ==> [2]: ==> _[1]=(-a2+a3^2) ==> _[2]=(-a1*a2+a1*a3^2+3*a2^2*a3-5*a2*a3^3+2*a3^5) ==> _[3]=(23*a1^2-138*a1*a2*a3+92*a1*a3^3+25*a2^3+132*a2^2*a3^2-201*a2*\ a3^4+67*a3^6) ==> _[4]=(a0-4*a1*a3+6*a2*a3^2-3*a3^4) ==> [3]: ==> _[1]=1 ==> [2]: ==> [1]: ==> _[1]=(a2-a3^2) ==> _[2]=(a1-a3^3) ==> _[3]=(a0-a3^4) ==> [2]: ==> _[1]=1 ==> [3]: ==> _[1]=x3+(a3) ==> _[2]=x2^2+(2*a3)*x2+(a3^2) ==> _[3]=x1^3+(3*a3)*x1^2+(3*a3^2)*x1+(a3^3) ```