|  |  D.7.5.2 stratify Procedure from librarystratify.lib(see  stratify_lib).
 
Example:Usage:
stratify(M,wr,ws,step);
where M is a matrix, wr is an intvec of size ncols(M),
ws an intvec of size nrows(M) and step is an integer
 
Return:
list of lists, each entry of the big list corresponds to one
locally closed set and has the following entries:
1) intvec giving the corresponding rs-vector
 2) ideal determining the closed set
 3) list d of polynomials determining the open set D(d[1])
empty list if there is more than one open set
 4-n) lists of polynomials determining open sets which all lead
to the same rs-vector
 
Note:
* ring ordering should be global, i.e. the ring should be a
polynomial ring
* the entries of the matrix M are M_ij=delta_i(x_j),
 * wr is used to determine what subset of the set of all dx_i is
generating AdF^l(A):
 if (k-1)*step < wr[i] <= k*step, then dx_i is in the set of
generators of AdF^l(A) for all l>=k
 * ws is used to determine what subset of the set of all delta_i
is generating Z_l(L):
 if (k-1)*step <= ws[i] < k*step, then delta_i is in the set
of generators of Z_l(A) for l < k
 * the entries of wr and ws as well as step should be positive
integers
 * the filtrations have to be known, no sanity checks concerning
the filtrations are performed !!!
 
 |  | LIB "stratify.lib";
ring r=0,(t(1..3)),dp;
matrix M[2][3]=0,t(1),3*t(2),0,0,t(1);
intvec wr=1,3,5;
intvec ws=2,4;
int step=2;
stratify(M,wr,ws,step);
==> [1]:
==>    [1]:
==>       0,0,0,0
==>    [2]:
==>       _[1]=t(2)
==>       _[2]=t(1)
==>    [3]:
==>       [1]:
==>          1
==> [2]:
==>    [1]:
==>       0,1,0,1
==>    [2]:
==>       _[1]=t(1)
==>    [3]:
==>       [1]:
==>          t(2)
==>       [2]:
==>          t(2)
==> [3]:
==>    [1]:
==>       1,2,1,2
==>    [2]:
==>       _[1]=0
==>    [3]:
==>       [1]:
==>          t(1)
==>       [2]:
==>          t(1)
 | 
 |