- Usage:
`inF = inw(F,w), inI = inw(I,w), inM = inw(M,w)`

- Inputs:
`F`, a ring element, an element of the Weyl algebra`I`, an ideal, in the Weyl algebra`M`, a matrix, with entries in the Weyl algebra`w`, a list, of weights

- Outputs:
`inF`, a ring element, the initial form of*F*with respect to the weight vector`inI`, an ideal, the initial ideal of*I*with respect to the weight vector`inM`, a matrix, with the columns generating the initial module of the image of*M*with respect to the weight vector

This routine computes the initial ideal of a left ideal *I* of the Weyl algebra with respect to a weight vector *w = (u,v)* where *u+v >= 0*. In the case where u+v > 0, then the ideal lives in the associated graded ring which is a commutative ring. In the case where u+v = 0, then the ideal lives in the associated graded ring which is again the Weyl algebra. In the general case *u+v >= 0* the associated graded ring is somewhere between. There are two strategies to compute the initial ideal. One is to homogenize to an ideal of the homogeneous Weyl algebra. The other is to homogenize with respect to the weight vector *w*.

i1 : W = QQ[x,y,Dx,Dy, WeylAlgebra => {x=>Dx,y=>Dy}] o1 = W o1 : PolynomialRing |

i2 : I = ideal (x*Dx+2*y*Dy-3, Dx^2-Dy) 2 o2 = ideal (x*Dx + 2y*Dy - 3, Dx - Dy) o2 : Ideal of W |

i3 : inw(I, {1,3,3,-1}) 2 2 2 o3 = ideal (x*Dx, 4y Dy + 2x*Dx, 2y*Dx*Dy, Dx ) o3 : Ideal of QQ[x, y, Dx, Dy] |

i4 : inw(I, {-1,-3,1,3}) o4 = ideal (x*Dx + 2y*Dy - 3, Dy) o4 : Ideal of W |

The weight vector *w = (u,v)* must have *u+v>=0*.

- gbw -- Groebner basis w.r.t. a weight
- setHomSwitch -- toggles the use of homogeneous Weyl algebra

- inw(Ideal,List)
- inw(Matrix,List)
- inw(RingElement,List)