##### 7.7.6.0. SannfsVar

Procedure from library `dmodvar.lib` (see dmodvar_lib).

Usage:
  SannfsVar(F [,ORD,eng]); F an ideal, ORD an optional string, eng an optional int

Return:
  ring (Weyl algebra tensored with U(gl_P)), containing an ideal LD

Purpose:
  compute the D<S>-module structure of D<S>*f^s where f = F[1]*...*F[P] and D<S> is the Weyl algebra D tensored with K<S>=U(gl_P), according to the generalized algorithm by Briancon and Maisonobe for affine varieties

Assume:
  The basering is commutative and over a field of characteristic 0.

Note:
  Activate the output ring D<S> with the `setring` command. In the ring D<S>, the ideal LD is the needed D<S>-module structure.
  The value of ORD must be an elimination ordering in D<Dt,S> for Dt written in the string form, otherwise the result may have no meaning. By default ORD = '(a(1..(P)..1),a(1..(P+P^2)..1),dp)'.
  If eng<>0, `std` is used for Groebner basis computations, otherwise, and by default `slimgb` is used.

Display:
  If printlevel=1, progress debug messages will be printed,
  if printlevel>=2, all the debug messages will be printed.

Example:

    LIB "dmodvar.lib";
    ring R = 0,(x,y),Dp;
    ideal F = x^3, y^5;
    //ORD = "(a(1,1),a(1,1,1,1,1,1),dp)";
    //eng = 0;
    def A = SannfsVar(F);
    setring A;
    A;
    ==> //   characteristic : 0
    ==> //   number of vars : 8
    ==> //        block   1 : ordering a
    ==> //                  : names    s(1)(1) s(1)(2) s(2)(1) s(2)(2)
    ==> //                  : weights        1       1       1       1
    ==> //        block   2 : ordering dp
    ==> //                  : names    s(1)(1) s(1)(2) s(2)(1) s(2)(2) x y Dx Dy
    ==> //        block   3 : ordering C
    ==> //   noncommutative relations:
    ==> //    s(1)(2)s(1)(1)=s(1)(1)*s(1)(2)-s(1)(2)
    ==> //    s(2)(1)s(1)(1)=s(1)(1)*s(2)(1)+s(2)(1)
    ==> //    s(2)(1)s(1)(2)=s(1)(2)*s(2)(1)-s(1)(1)+s(2)(2)
    ==> //    s(2)(2)s(1)(2)=s(1)(2)*s(2)(2)-s(1)(2)
    ==> //    s(2)(2)s(2)(1)=s(2)(1)*s(2)(2)+s(2)(1)
    ==> //    Dxx=x*Dx+1
    ==> //    Dyy=y*Dy+1
    LD;
    ==> LD[1]=5*s(2)(2)-y*Dy
    ==> LD[2]=3*s(1)(1)-x*Dx
    ==> LD[3]=15*s(1)(2)*s(2)(1)-x*y*Dx*Dy-5*x*Dx
    ==> LD[4]=5*s(2)(1)*y^4-x^3*Dy
    ==> LD[5]=3*s(1)(2)*x^2-y^5*Dx

User manual for Singular version 4-0-3, 2016, generated by texi2html.