| ##### 7.5.5.0. deRhamCohomIdeal Procedure from library `dmodapp.lib` (see dmodapp_lib). Usage: deRhamCohomIdeal (I[,w,eng,k,G]); I ideal, w optional intvec, eng and k optional ints, G optional ideal Return: ideal Assume: The basering is the n-th Weyl algebra D over a field of characteristic zero and for all 1<=i<=n the identity var(i+n)*var(i)=var(i)*var(i+1)+1 holds, i.e. the sequence of variables is given by x(1),...,x(n),D(1),...,D(n), where D(i) is the differential operator belonging to x(i). Further, assume that I is of special kind, namely let f in K[x] and consider the module K[x,1/f]f^m, where m is smaller than or equal to the minimal integer root of the Bernstein-Sato polynomial of f. Since this module is known to be a holonomic D-module, it has a cyclic presentation D/I. Purpose: computes a basis of the n-th de Rham cohomology group of the complement of the hypersurface defined by f Note: The elements of the basis are of the form f^m*p, where p runs over the entries of the returned ideal. If I does not satisfy the assumptions described above, the result might have no meaning. Note that I can be computed with `annfs`. If w is an intvec with exactly n strictly positive entries, w is used in the computation. Otherwise, and by default, w is set to (1,...,1). If eng<>0, `std` is used for Groebner basis computations, otherwise, and by default, `slimgb` is used. Let F(I) denote the Fourier transform of I wrt w. An integer smaller than or equal to the minimal integer root of the b-function of F(I) wrt the weight (-w,w) can be specified via the optional argument k. The optional argument G is used for specifying a Groebner Basis of F(I) wrt the weight (-w,w), that is, the initial form of G generates the initial ideal of F(I) wrt the weight (-w,w). Further note, that the assumptions on I, k and G (if given) are not checked. Theory: (SST) pp. 232-235 Display: If printlevel=1, progress debug messages will be printed, if printlevel>=2, all the debug messages will be printed. Example:
    LIB "dmodapp.lib";
    ring r = 0,(x,y,z),dp;
    poly F = x^3+y^3+z^3;
    bfctAnn(F);            // Bernstein-Sato poly of F has minimal integer root -2
    ==> [1]:
    ==>    _[1]=-1
    ==>    _[2]=-4/3
    ==>    _[3]=-5/3
    ==>    _[4]=-2
    ==> [2]:
    ==>    2,1,1,1
    def W = annRat(1,F^2); // so we compute the annihilator of 1/F^2
    setring W; W;          // Weyl algebra, contains LD = Ann(1/F^2)
    ==> // coefficients: QQ
    ==> // number of vars : 6
    ==> //        block   1 : ordering dp
    ==> //                  : names    x y z Dx Dy Dz
    ==> //        block   2 : ordering C
    ==> // noncommutative relations:
    ==> //    Dxx=x*Dx+1
    ==> //    Dyy=y*Dy+1
    ==> //    Dzz=z*Dz+1
    LD;                    // K[x,y,z,1/F]F^(-2) is isomorphic to W/LD as W-module
    ==> LD[1]=x*Dx+y*Dy+z*Dz+6
    ==> LD[2]=z^2*Dy-y^2*Dz
    ==> LD[3]=z^2*Dx-x^2*Dz
    ==> LD[4]=y^2*Dx-x^2*Dy
    ==> LD[5]=x^3*Dz+y^3*Dz+z^3*Dz+6*z^2
    ==> LD[6]=x^3*Dy+y^3*Dy+y^2*z*Dz+6*y^2
    deRhamCohomIdeal(LD);  // we see that the K-dim is 2
    ==> _[1]=-x^3*Dx*Dy*Dz
    ==> _[2]=-x*y*z*Dx*Dy*Dz
See also: deRhamCohom.

User manual for Singular version 4.3.2, 2023, generated by texi2html.