##### 7.5.25.0. ratstd

Procedure from library `ratgb.lib` (see ratgb_lib).

Usage:
  ratstd(I, n [,eng]); I an ideal/module, n an integer, eng an optional integer

Return:
  ring

Purpose:
  compute the Groebner basis of I in the Ore localization of the basering with respect to the subalgebra, generated by first n variables

Assume:
  the variables of basering are organized in two blocks and - the first block of length `n` contains the elements with respect to which one localizes, - the basering is equipped with anti-block ordering, giving block dominance for the variables in the second block

Note:
  the output ring C is commutative. The ideal `rGBid` in C represents the rational form of the output ideal `pGBid` in the basering. - During the computation, the D-dimension of I, `Ratgb::Ddim` and the corresponding dimension as K(x)-vector space of I (`Ratgb::KXdim`, if `Ratgb::Ddim`=0) are computed and exported. - Setting optional integer eng to 1, std is taken as Groebner engine; default is slimgb.

Display:
  In order to see the steps of the computation, set printlevel to >=2

Example:

    LIB "ratgb.lib";
    ring r = (0,c),(x,y,Dx,Dy),(a(0,0,1,1),a(0,0,1,0),dp);
    // this ordering is an antiblock ordering, as it must be
    def S = Weyl(); setring S;
    // the ideal I below annihilates parametric Appel F4 function
    // where we set parameters to a=-2, b=-1 and d=0
    ideal I =
    x*Dx*(x*Dx+c-1) - x*(x*Dx+y*Dy-2)*(x*Dx+y*Dy-1),
    y*Dy*(y*Dy-1) - y*(x*Dx+y*Dy-2)*(x*Dx+y*Dy-1);
    int is = 2; // hence 1st and 2nd variables, that is x and y
    // will become invertible in the localization
    def A = ratstd(I,2); // main call
    pGBid; // polynomial form of the basis in the localized ring
    ==> pGBid[1]=2*x*y*Dx*Dy+x*y*Dy^2+y^2*Dy^2-y*Dy^2+(-c-2)*x*Dx-2*y*Dy+2
    ==> pGBid[2]=x*Dx^2-y*Dy^2+(c)*Dx
    ==> pGBid[3]=2*x^2*y*Dy^3-4*x*y^2*Dy^3+2*y^3*Dy^3-4*x*y*Dy^3-4*y^2*Dy^3+2*y*D\
       y^3+(-2*c)*x^2*Dx*Dy+(2*c)*x*Dx*Dy+2*x^2*Dy^2+(c-2)*x*y*Dy^2+(-3*c)*y^2*D\
       y^2-4*x*Dy^2+(3*c-2)*y*Dy^2+2*Dy^2+(-c^2+2*c)*x*Dx+(6*c)*y*Dy+(-6*c)
    setring A; // A is a commutative ring used for presentation
    rGBid; // "rational" or "localized" form of the basis
    ==> rGBid[1]=(2*x*y)*Dx*Dy+(x*y+y^2-y)*Dy^2+(-c*x-2*x)*Dx+(-2*y)*Dy+2
    ==> rGBid[2]=(x)*Dx^2+(-y)*Dy^2+(c)*Dx
    ==> rGBid[3]=(2*x^2*y-4*x*y^2-4*x*y+2*y^3-4*y^2+2*y)*Dy^3+(-2*c*x^2+2*c*x)*Dx\
       *Dy+(c*x*y-3*c*y^2+3*c*y+2*x^2-2*x*y-4*x-2*y+2)*Dy^2+(-c^2*x+2*c*x)*Dx+(6\
       *c*y)*Dy+(-6*c)
    Ratgb::Ddim; // the Krull-like dimension of A/I
    ==> 0
    Ratgb::KXdim; // the dimension of A/I as a left K(x,y)-vector space
    ==> 4
    //--- Now, let us compute a K(x,y) basis explicitly
    print(matrix(kbase(rGBid)));
    ==> // ** rGBid is no standard basis
    ==> Dy^2,Dy,Dx,1

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