next | previous | forward | backward | up | top | index | toc | home

inverse systems

Suppose that R = k[x1,...,xn], and that E = k[y1,...,yn] is the injective envelop of k. IE, E is given the R-module structure: x^A . y^B = y^(B-A), if B-A >= 0 in every component, and x^A . y^B = 0 otherwise.

If I is an ideal of R, then the submodule I' = Hom_R(R/I,E) of E is called the (Macaulay) inverse system of I. I is zero-dimensional iff I' is finitely generated.

This is a dual operation, since I can be recovered as ann_R(I').

In Macaulay2, currently the computation of the inverse system I' (toDual) and of the ideal I from I' (fromDual) are restricted to the situation where I and I' are homogeneous. As an example, let's compute the ideal corresponding to a cubic.

i1 : R = QQ[a..e];
i2 : g = matrix{{a^3+b^3+c^3+d^3+e^3-d^2*e-a*b*c-a*d*e}}

o2 = | a3+b3-abc+c3+d3-ade-d2e+e3 |

             1       1
o2 : Matrix R  <--- R
i3 : f = fromDual g

o3 = | ce be d2+ae+e2 cd bd ad+e2 bc+ae-de b2+ac ab+c2 a2-ae+de |

             1       10
o3 : Matrix R  <--- R
i4 : I = ideal f

                       2          2                   2                    2
o4 = ideal (c*e, b*e, d  + a*e + e , c*d, b*d, a*d + e , b*c + a*e - d*e, b 
     ------------------------------------------------------------------------
                   2   2
     + a*c, a*b + c , a  - a*e + d*e)

o4 : Ideal of R
The resulting ideal is always zero dimensional, and its Cohen-Macaulay type is the number of generators of the submodule E defined by g. Therefore, if g is a 1 by 1 matrix, then the resulting ideal is Gorenstein.
i5 : res I

      1      10      21      21      10      1
o5 = R  <-- R   <-- R   <-- R   <-- R   <-- R  <-- 0
                                                    
     0      1       2       3       4       5      6

o5 : ChainComplex
i6 : betti oo

            0  1  2  3  4 5
o6 = total: 1 10 21 21 10 1
         0: 1  .  .  .  . .
         1: . 10 16  5  . .
         2: .  .  5 16 10 .
         3: .  .  .  .  . 1

o6 : BettiTally

The other direction (starting with an ideal I) is more complicated, since the result may not be finitely generated. So, we must give an integer d as well as the generators of I:

i7 : toDual(3,f)

o7 = {12} | a3+b3-abc+c3+d3-ade-d2e+e3 |

             1       1
o7 : Matrix R  <--- R
The integer d has two interpretations. The most general is that the (finitely generated) intersection of I' and the submodule generated by y1^d ... yn^d is returned. If the ideal I is zero dimensional, d should be an integer such that x^(d+1) is in I = image f for every variable x.
i8 : f = matrix{{a*b,c*d,e^2}}

o8 = | ab cd e2 |

             1       3
o8 : Matrix R  <--- R
i9 : toDual(1,f)

o9 = {2} | ace |
     {2} | bce |
     {2} | ade |
     {2} | bde |

             4       1
o9 : Matrix R  <--- R
i10 : toDual(2,f)

o10 = {5} | a2c2e |
      {5} | b2c2e |
      {5} | a2d2e |
      {5} | b2d2e |

              4       1
o10 : Matrix R  <--- R
i11 : toDual(3,f)

o11 = {8} | a3c3e |
      {8} | b3c3e |
      {8} | a3d3e |
      {8} | b3d3e |

              4       1
o11 : Matrix R  <--- R
i12 : g = toDual(4,f)

o12 = {11} | a4c4e |
      {11} | b4c4e |
      {11} | a4d4e |
      {11} | b4d4e |

              4       1
o12 : Matrix R  <--- R
i13 : fromDual g

o13 = | e2 cd ab d5 c5 b5 a5 |

              1       7
o13 : Matrix R  <--- R

See also