Singular

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

Usage:
initialMalgrange(f,[,a,b,v]); f poly, a,b optional ints, v opt. intvec

Return:
ring, Weyl algebra induced by basering, extended by two new vars t,Dt

Purpose:
computes the initial Malgrange ideal of a given polynomial w.r.t. the
weight vector (-1,0...,0,1,0,...,0) such that the weight of t is -1
and the weight of Dt is 1.

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

Note:
Activate the output ring with the `setring` command.
The returned ring contains the ideal 'inF', being the initial ideal
of the Malgrange ideal of f.
Varnames of the basering should not include t and Dt.
If a<>0, `std` is used for Groebner basis computations,
otherwise, and by default, `slimgb` is used.
If b<>0, a matrix ordering is used for Groebner basis computations,
otherwise, and by default, a block ordering is used.
If a positive weight vector v is given, the weight
(d,v[1],...,v[n],1,d+1-v[1],...,d+1-v[n]) is used for homogenization
computations, where d denotes the weighted degree of f.
Otherwise and by default, v is set to (1,...,1). See Noro (2002).

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),dp; poly f = x^2+y^3+x*y^2; def D = initialMalgrange(f); setring D; inF; ==> inF[1]=x*Dt ==> inF[2]=2*x*y*Dx+3*y^2*Dx-y^2*Dy-2*x*Dy ==> inF[3]=2*x^2*Dx+x*y*Dx+x*y*Dy+18*t*Dt+9*x*Dx-x*Dy+6*y*Dy+4*x+18 ==> inF[4]=18*t*Dt^2+6*y*Dt*Dy-y*Dt+27*Dt ==> inF[5]=y^2*Dt ==> inF[6]=2*t*y*Dt+2*x*y*Dx+2*y^2*Dx-6*t*Dt-3*x*Dx-x*Dy-2*y*Dy+2*y-6 ==> inF[7]=x*y^2+y^3+x^2 ==> inF[8]=2*y^3*Dx-2*y^3*Dy-3*y^2*Dx-2*x*y*Dy+y^2*Dy-4*y^2+36*t*Dt+18*x*Dx+1\ 2*y*Dy+36 setring r; intvec v = 3,2; def D2 = initialMalgrange(f,1,1,v); setring D2; inF; ==> inF[1]=x*Dt ==> inF[2]=2*x*y*Dx+3*y^2*Dx-y^2*Dy-2*x*Dy ==> inF[3]=4*x^2*Dx-3*y^2*Dx+2*x*y*Dy+y^2*Dy+36*t*Dt+18*x*Dx+12*y*Dy+8*x+36 ==> inF[4]=18*t*Dt^2+6*y*Dt*Dy-y*Dt+27*Dt ==> inF[5]=y^2*Dt ==> inF[6]=2*t*y*Dt-y^2*Dx+y^2*Dy-6*t*Dt-3*x*Dx+x*Dy-2*y*Dy+2*y-6 ==> inF[7]=x*y^2+y^3+x^2 ==> inF[8]=2*y^3*Dx-2*y^3*Dy-3*y^2*Dx-2*x*y*Dy+y^2*Dy-4*y^2+36*t*Dt+18*x*Dx+1\ 2*y*Dy+36 ```