## restriction

``` [[f1 f2 ...] [t1 t2 ...] [vars params] [k0 k1 limitdeg ]] restriction
[ 0-th cohomology group,  (-1)-th cohomology group, .... ]

[[f1 f2 ...] [t1 t2 ...] [vars params] limitdeg] restriction

Restriction of the D-ideal [f1 f2 ...] to t1=0, t2=0, ... is computed.
vars is a list of the variables and params is a list of parameters.
k0 is the minimum integral root of the b-function and k1 is the maximum
integral root of the b-function. If these values are not given and
they are small, then they are automatically computed. The program returns
0-th, ..., -limitdeg-th cohomology groups.
[vars params] and [k0 k1 deg] are optional arguments.
If vars and params are not given, the values of the global variables
BFvarlist and BFparlist will be used.

For the algorithm, see math.AG/9805006, http://xxx.langl.gov

Example 1: cf. math.AG/9801114, Example 1.4
[[(- 2 x Dx - 3 y Dy +1) (3 y Dx^2 - 2 x Dy)]
[(x) (y)] [[(x) (y)] [ ]]] restriction  ::
[    [    0 , [   ]  ]  , [    1 , [   ]  ]  , [    1 , [   ]  ]  ]
H^0 = 0,     H^(-1)= C^1/(no relation), H^(-2)=C^1/(no relation).
Example 2:
[[(x Dx-1) (Dy^2)] [(y)] [[(x) (y)] [ ]]] restriction ::
[    [    2 , [    -x*Dx+1 , -x*e*Dx+e ]  ]  , [    0 , [   ]  ]  ]
H^0=D_1^2/([-x Dx+1,0],[0, -x Dx + 1]),  H^(-1) = 0
where  e^0, e^1, e^2, ..., e^(m-1) are standard basis vectors of
rank m free module (D_1)^m. D_1 is the ring of differential
opertors of one variable x.
Example 3:
[[(x Dx-1) (Dy^2)] [(y)] [[(x) (y)] [ ]] 0] restriction ::
Example 4:
[[[(0) (x^2 Dx+x)] [(Dx^2+x Dx^3) (0)]] [(x)] [[(x)] [ ]]] restriction ::
In case of vector input,  RESTRICTION VARIABLES MUST APPEAR FIRST
in the list of variable. We are using wbfRoots to get the roots of
b-functions, so we can use only generic weight vector for now.
```

Nobuki Takayama 2020-11-24