Macaulay2 » Documentation
Packages » CompleteIntersectionResolutions :: exteriorExtModule
next | previous | forward | backward | up | index | toc

exteriorExtModule -- Ext(M,k) or Ext(M,N) as a module over an exterior algebra

Synopsis

Description

If M,N are S-modules annihilated by the elements of the matrix ff = (f_1..f_c), and k is the residue field of S, then the script exteriorExtModule(f,M) returns Ext_S(M, k) as a module over an exterior algebra E = k<e_1,...,e_c>, where the e_i have degree 1. It is computed as the E-dual of exteriorTorModule.

The script exteriorTorModule(f,M,N) returns Ext_S(M,N) as a module over a bigraded ring SE = S<e_1,..,e_c>, where the e_i have degrees {d_i,1}, where d_i is the degree of f_i. The module structure, in either case, is defined by the homotopies for the f_i on the resolution of M, computed by the script makeHomotopies1.The script calls makeModule to compute a (non-minimal) presentation of this module.

i1 : kk = ZZ/101

o1 = kk

o1 : QuotientRing
i2 : S = kk[a,b,c]

o2 = S

o2 : PolynomialRing
i3 : f = matrix"a4,b4,c4"

o3 = | a4 b4 c4 |

             1      3
o3 : Matrix S  <-- S
i4 : R = S/ideal f

o4 = R

o4 : QuotientRing
i5 : p = map(R,S)

o5 = map (R, S, {a, b, c})

o5 : RingMap R <-- S
i6 : M = coker map(R^2, R^{3:-1}, {{a,b,c},{b,c,a}})

o6 = cokernel | a b c |
              | b c a |

                            2
o6 : R-module, quotient of R
i7 : betti (FF =res( M, LengthLimit =>6))

            0 1 2 3 4  5  6
o7 = total: 2 3 4 6 9 13 18
         0: 2 3 . . .  .  .
         1: . . 1 . .  .  .
         2: . . 3 3 .  .  .
         3: . . . 3 3  .  .
         4: . . . . 3  3  .
         5: . . . . 3  9  6
         6: . . . . .  .  3
         7: . . . . .  1  9

o7 : BettiTally
i8 : MS = prune pushForward(p, coker FF.dd_6);
i9 : resFld := pushForward(p, coker vars R);
i10 : T = exteriorTorModule(f,MS);
i11 : E = exteriorExtModule(f,MS);
i12 : hf(-4..0,E)

o12 = {0, 9, 29, 33, 13}

o12 : List
i13 : betti res MS

              0  1  2 3
o13 = total: 13 33 29 9
          9:  3  .  . .
         10:  9  6  . .
         11:  .  3  . .
         12:  1 15  . .
         13:  .  9  8 .
         14:  .  .  6 .
         15:  .  . 12 .
         16:  .  .  3 3
         17:  .  .  . 3
         18:  .  .  . 3

o13 : BettiTally
i14 : betti res (PE = prune E)

              0  1  2  3  4
o14 = total: 16 13 25 49 81
         -3:  9  4  3  3  3
         -2:  6  3  .  .  .
         -1:  .  .  7 18 33
          0:  1  6 15 28 45

o14 : BettiTally
i15 : betti res (PT = prune T)

              0  1  2   3   4
o15 = total: 31 55 87 127 175
          0: 13 24 39  58  81
          1: 18 31 48  69  94

o15 : BettiTally
i16 : E1 = prune exteriorExtModule(f, MS, resFld);
i17 : ring E1

o17 = kk[X ..X , e ..e ]
          0   2   0   2

o17 : PolynomialRing, 3 skew commutative variable(s)
i18 : exRing = kk[e_0,e_1,e_2, SkewCommutative =>true]

o18 = exRing

o18 : PolynomialRing, 3 skew commutative variable(s)

We can also construct the exteriorExtModule as a bigraded module, over a ring SE that has both polynomial variables like S and exterior variables like E. The polynomial variables have degrees {1,0}. The exterior variables have degrees {deg ff_i, 1}.

i19 : E1 = prune exteriorExtModule(f, MS, resFld);
i20 : ring E1

o20 = kk[X ..X , e ..e ]
          0   2   0   2

o20 : PolynomialRing, 3 skew commutative variable(s)
i21 : exRing = kk[e_0,e_1,e_2, SkewCommutative =>true]

o21 = exRing

o21 : PolynomialRing, 3 skew commutative variable(s)

To see that this is really the same module, with a more complex grading, we can bring it over to a pure exterior algebra. Note that the necessary map of rings must contain a DegreeMap option. In general we could only take the degrees of the generators of the exterior algebra to be the gcd of the deg ff_i ; in the example above this is 1.

i22 : q = map(exRing, ring E1, {3:0,e_0,e_1,e_2}, DegreeMap => d -> {d_1})

o22 = map (exRing, kk[X ..X , e ..e ], {0, 0, 0, e , e , e })
                       0   2   0   2              0   1   2

o22 : RingMap exRing <-- kk[X ..X , e ..e ]
                             0   2   0   2
i23 : E2 = coker q presentation E1;
i24 : hf(-5..5,E2) == hf(-5..5,E)

o24 = true

See also

Ways to use exteriorExtModule :

For the programmer

The object exteriorExtModule is a method function.