##### 7.5.5.0. integralModule

Procedure from library `dmodapp.lib` (see dmodapp_lib).

Usage:
  integralModule(I,w,[,eng,m,G]);
  I ideal, w intvec, eng and m optional ints, G optional ideal

Return:
  ring (a Weyl algebra) containing a module 'intMod'

Assume:
  The basering is the n-th Weyl algebra over a field of characteristic 0
  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 holonomic and that w is n-dimensional with
  non-negative entries.

Purpose:
  computes the integral module of a holonomic ideal w.r.t. the subspace
  defined by the variables corresponding to the non-zero entries of the
  given intvec

Note:
  The output ring is the Weyl algebra defined by the zero entries of w.
  It contains a module 'intMod' being the integral module of I wrt w.
  If there are no zero entries, the input ring is returned.
  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 w.r.t. w.
  The minimal integer root of the b-function of F(I) w.r.t. the weight
  (-w,w) can be specified via the optional argument m.
  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) w.r.t. the weight (-w,w).
  Further note, that the assumptions on m and G (if given) are not
  checked.

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,b,Dx,Db),dp;
    def D2 = Weyl();
    setring D2;
    ideal I = x*Dx+2*b*Db+2, x^2*Dx+b*Dx+2*x;
    intvec w = 1,0;
    def im = integralModule(I,w);
    setring im; im;
    ==> // coefficients: QQ considered as a field
    ==> // number of vars : 2
    ==> //        block   1 : ordering C
    ==> //        block   2 : ordering dp
    ==> //                  : names    b Db
    ==> // noncommutative relations:
    ==> //    Dbb=b*Db+1
    print(intMod);
    ==> 2*b*Db+1,0,
    ==> 0,       b*Db

User manual for Singular version 4.4.1, 2025, generated by texi2html.