Singular

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

Usage:
Calls internally AddConsP and allows a different input. Input L: list of pairs of of ideals [ [P_1,Q_1], .., [Pr,Qr] ] representing a set of locally closed setsV(P_i) \ V(Q_i) to be added.

Return:
list of lists of levels of the different locally closed sets of the canonical P-rep of the constructible.
[ [level_1,[ [Comp_11,..Comp_1r_1] ] ], .. ,
[level_s,[ [Comp_s1,..Comp_sr_1] ] ] where level_i=i, Comp_ij=[ p_i,[p_i1,..,p_it_i] ] is a prime component.

Note:
Operates in a ring R=Q[u_1,..,u_m]

Example:
 ```LIB "grobcov.lib"; if (defined(Grobcov::@P)){kill Grobcov::@P; kill Grobcov::@R; kill Grobcov::@RP;} ring R=0,(x,y,z),lp; short=0; ideal P1=x; ideal Q1=x,y; ideal P2=y; ideal Q2=y,z; list L=list(list(P1,Q1), list(P2,Q2) ); L; ==> [1]: ==> [1]: ==> _[1]=x ==> [2]: ==> _[1]=x ==> _[2]=y ==> [2]: ==> [1]: ==> _[1]=y ==> [2]: ==> _[1]=y ==> _[2]=z AddCons(L); ==> [1]: ==> [1]: ==> 1 ==> [2]: ==> [1]: ==> [1]: ==> _[1]=x ==> [2]: ==> [1]: ==> _[1]=z ==> _[2]=y ==> _[3]=x ==> [2]: ==> [1]: ==> _[1]=y ==> [2]: ==> [1]: ==> _[1]=z ==> _[2]=y ```