next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Dmodules :: diffOps

diffOps -- differential operators of up to the given order for a quotient polynomial ring

Synopsis

Description

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 => {-3} | 0  0  0  0  0   -2xz  0    2xy  yz  y2   2xz  0    z2   -yz   0   0   2x2z-2yz2   |
                           {-3} | 0  0  0  0  0   -6yz  0    0    2xy 0    8yz  y2   6xz  0     0   0   0           |
                           {-3} | 0  0  0  0  0   -6z2  0    12yz 4xz 6xy  4z2  -yz  0    -6xz  0   0   0           |
                           {-3} | 0  0  0  0  0   0     0    0    0   0    8xy  0    12yz 4y2   0   0   0           |
                           {-3} | 0  0  0  0  0   -24xz 0    0    8yz 0    16xz 4xy  0    -8yz  0   0   24x2z-24yz2 |
                           {-3} | 0  0  0  0  0   0     0    24xz 4z2 12yz 0    -4xz 0    -8z2  0   0   0           |
                           {-3} | 0  0  0  0  0   8y2   0    0    0   0    0    0    8xy  0     0   0   0           |
                           {-3} | 0  0  0  0  0   -24yz 0    0    0   0    16yz 0    0    8xy   0   0   0           |
                           {-3} | 0  0  0  0  0   0     0    0    8xz 0    0    4yz  0    -16xz 0   0   0           |
                           {-3} | 0  0  0  0  0   0     0    16z2 0   8xz  0    -4z2 0    0     0   0   0           |
                           {-2} | 0  z  y  x  0   -3z   0    -3y  x   0    z    y    0    -x    xy  xz  0           |
                           {-2} | 0  4x 0  2y 0   0     0    0    -2y 0    0    0    6z   8y    0   4yz 0           |
                           {-2} | 0  0  4x 2z 0   0     0    0    4z  6y   0    0    0    -10z  4yz 0   0           |
                           {-2} | 0  4y 0  0  0   24y   y2   0    0   0    -12y 0    12x  0     0   4xy 0           |
                           {-2} | 0  0  0  4x 0   -12z  -2yz 0    0   0    8z   2y   0    0     0   0   0           |
                           {-2} | 0  0  4z 0  0   0     z2   12z  0   12x  0    -6z  0    0     4xz 0   0           |
                           {-1} | 0  0  0  1  yz  0     0    0    -1  0    0    0    0    1     -y  -z  -3z         |
                           {-1} | y  2  0  0  0   6     0    0    0   0    -6   0    0    0     0   0   -6x         |
                           {-1} | -z 0  2  0  2xz 0     2z   -6   0   0    0    0    0    0     0   0   0           |

o3 : HashTable

See also

Ways to use diffOps :

For the programmer

The object diffOps is a method function.