Given an ideal
I of a polynomial ring
R the set of differential operators of the quotient ring
R/I having order less than or equal to
k forms a finitely generated module over
R/I. This routine returns its generating set.
The output is in the form of a hash table. The key
BasisElts is a row vector of basic differential operators. The key
PolyGens is a matrix over
R whose column vectors represent differential operators of
R/I in the following way. For each column vector, consider its image in
R/I, then take its dot product with the
BasisElts. This gives a differential operator, and the set of these operators generates the differential operators of
R/I of order
k or less as an
(R/I)-module.
i1 : R = QQ[x,y,z]
o1 = R
o1 : PolynomialRing
|
i2 : I = ideal(x^2-y*z)
2
o2 = ideal(x - y*z)
o2 : Ideal of R
|
i3 : diffOps(I, 3)
o3 = HashTable{BasisElts => | dx^3 dx^2dy dx^2dz dxdy^2 dxdydz dxdz^2 dy^3 dy^2dz dydz^2 dz^3 dx^2 dxdy dxdz dy^2 dydz dz^2 dx dy dz |}
PolyGens => | 0 0 0 0 0 -2xz 0 2xy yz y2 2xz 0 z2 -yz 0 0 2x2z-2yz2 |
| 0 0 0 0 0 -6yz 0 0 2xy 0 8yz y2 6xz 0 0 0 0 |
| 0 0 0 0 0 -6z2 0 12yz 4xz 6xy 4z2 -yz 0 -6xz 0 0 0 |
| 0 0 0 0 0 0 0 0 0 0 8xy 0 12yz 4y2 0 0 0 |
| 0 0 0 0 0 -24xz 0 0 8yz 0 16xz 4xy 0 -8yz 0 0 24x2z-24yz2 |
| 0 0 0 0 0 0 0 24xz 4z2 12yz 0 -4xz 0 -8z2 0 0 0 |
| 0 0 0 0 0 8y2 0 0 0 0 0 0 8xy 0 0 0 0 |
| 0 0 0 0 0 -24yz 0 0 0 0 16yz 0 0 8xy 0 0 0 |
| 0 0 0 0 0 0 0 0 8xz 0 0 4yz 0 -16xz 0 0 0 |
| 0 0 0 0 0 0 0 16z2 0 8xz 0 -4z2 0 0 0 0 0 |
| 0 z y x 0 -3z 0 -3y x 0 z y 0 -x xy xz 0 |
| 0 4x 0 2y 0 0 0 0 -2y 0 0 0 6z 8y 0 4yz 0 |
| 0 0 4x 2z 0 0 0 0 4z 6y 0 0 0 -10z 4yz 0 0 |
| 0 4y 0 0 0 24y y2 0 0 0 -12y 0 12x 0 0 4xy 0 |
| 0 0 0 4x 0 -12z -2yz 0 0 0 8z 2y 0 0 0 0 0 |
| 0 0 4z 0 0 0 z2 12z 0 12x 0 -6z 0 0 4xz 0 0 |
| 0 0 0 1 yz 0 0 0 -1 0 0 0 0 1 -y -z -3z |
| y 2 0 0 0 6 0 0 0 0 -6 0 0 0 0 0 -6x |
| -z 0 2 0 2xz 0 2z -6 0 0 0 0 0 0 0 0 0 |
o3 : HashTable
|