|
D.7.4.2 stratify
Procedure from library stratify.lib (see stratify_lib).
- 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 !!!
Example:
| 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)
|
|