Macaulay2 » Documentation
Packages » NoetherianOperators :: getModuleFromNoetherianOperators
next | previous | forward | backward | up | index | toc

getModuleFromNoetherianOperators -- Computes a primary submodule corresponding to a list of Noetherian operators and a prime ideal

Synopsis

Description

This method contains an implementation of Algorithm 4.3 in the paper Primary decomposition of modules: a computational differential approach. This method can be seen as the reverse operation of computing a set of Noetherian operators for a primary module. For more details, see Section 4 of the paper Primary decomposition of modules: a computational differential approach.

i1 : R = QQ[x1,x2,x3,x4]

o1 = R

o1 : PolynomialRing
i2 : U = image matrix{{x1*x2,x2*x3,x3*x4,x4*x1}, {x1^2,x2^2,x3^2,x4^2}}

o2 = image | x1x2 x2x3 x3x4 x1x4 |
           | x1^2 x2^2 x3^2 x4^2 |

                             2
o2 : R-module, submodule of R
i3 : dpd = differentialPrimaryDecomposition U

                                                                           
o3 = {{ideal (x4, x2), {| 1 |}}, {ideal (x3, x1), {| 1 |}}, {ideal (x4, x3,
                        | 0 |                      | 0 |                   
     ------------------------------------------------------------------------
                                                             
     x2), {| x1dx2 |, | x1dx2^2 |, | x1^2dx2^3+6x1dx2dx3 |, |
           |   -1  |  |  -2dx2  |  |    -3x1dx2^2-6dx3   |  |
     ------------------------------------------------------------------------
                                                                           
     x1^2dx2^4+12x1dx2^2dx3 |}}, {ideal (x4, x3, x1), {| x2dx3 |, | x2dx3^2
       -4x1dx2^3-24dx2dx3   |                          |   -1  |  |  -2dx3 
     ------------------------------------------------------------------------
                                                                          
     |, | x2^2dx3^3+6x2dx3dx4 |, | x2^2dx3^4+12x2dx3^2dx4 |}}, {ideal (x4,
     |  |    -3x2dx3^2-6dx4   |  |   -4x2dx3^3-24dx3dx4   |               
     ------------------------------------------------------------------------
                                                                 
     x2, x1), {| x3dx4 |, | x3dx4^2 |, | x3^2dx4^3+6x3dx1dx4 |, |
               |   -1  |  |  -2dx4  |  |    -3x3dx4^2-6dx1   |  |
     ------------------------------------------------------------------------
                                                                           
     x3^2dx4^4+12x3dx1dx4^2 |}}, {ideal (x3, x2, x1), {| x4dx1 |, | x4dx1^2
       -4x3dx4^3-24dx1dx4   |                          |   -1  |  |  -2dx1 
     ------------------------------------------------------------------------
                                                                           
     |, | x4^2dx1^3+6x4dx1dx2 |, | x4^2dx1^4+12x4dx1^2dx2 |}}, {ideal (x3 -
     |  |    -3x4dx1^2-6dx2   |  |   -4x4dx1^3-24dx1dx2   |                
     ------------------------------------------------------------------------
                                                                             
     x4, x2 - x4, x1 - x4), {| -1 |}}, {ideal (x3 + x4, x2 - x4, x1 + x4), {|
                             |  1 |                                         |
     ------------------------------------------------------------------------
                                        2     2
     1 |}}, {ideal (x2 + x4, x1 + x3, x3  + x4 ), {| x4 |}}, {ideal (x4, x3,
     1 |                                           | x3 |                   
     ------------------------------------------------------------------------
     x2, x1), {|      -2dx1dx2dx3^2-2dx1^2dx3dx4      |}}}
               | 2dx1dx2^2dx3+dx1^2dx3^2+2dx1dx3dx4^2 |

o3 : List
i4 : M = dpd / (L -> getModuleFromNoetherianOperators(first L, last L)) // intersect

o4 = image | x1x4 x3x4 x2x3 x1x2 |
           | x4^2 x3^2 x2^2 x1^2 |

                             2
o4 : R-module, submodule of R
i5 : M == U

o5 = true

Ways to use getModuleFromNoetherianOperators :

For the programmer

The object getModuleFromNoetherianOperators is a method function.