Resolutions and Cohomology over Complete Intersections

Luchezar L. Avramov and Daniel R. Grayson^{⋆}

This chapter contains a new proof and new applications of a theorem of Shamash and Eisenbud, providing a construction of projective resolutions of modules over a complete intersection. The duals of these infinite projective resolutions are finitely generated differential graded modules over a graded polynomial ring, so they can be represented in the computer, and can be used to compute Ext modules simultaneously in all homological degrees. It is shown how to write Macaulay 2 code to implement the construction, and how to use the computer to determine invariants of modules over complete intersections that are difficult to obtain otherwise.

Introduction

Let A = K[x_{1}, …, x_{e}] be a polynomial ring with variables of positive degree over a field K, and B = A/J a quotient ring modulo a homogeneous ideal.

In this paper we consider the case when B is a graded complete intersection, that is, when the defining ideal J is generated by a homogeneous A-regular sequence. We set up, describe, and illustrate a routine Ext, now implemented in Macaulay 2. For any two finitely generated graded B-modules M and N it yields a presentation of ExtB^{•}(M, N) as a bigraded module over an appropriately bigraded polynomial ring S = A[X_{1}, …, X_{c}].

A novel feature of our routine is that it computes the modules Ext_{B}^{n}(M, N) simultaneously in all cohomological degrees n ≥ 0. This is made possible by the use of cohomology operations, a technique usually confined to theoretical considerations. Another aspect worth noticing is that, although the result is over a ring B with nontrivial relations, all the computations are made over the polynomial ring S; this may account for the effectiveness of the algorithm.

To explain the role of the complete intersection hypothesis, we cast it into the broader context of homological algebra over graded rings.

Numerous results indicate that the high syzygy modules of M exhibit ‘similar’ properties. For an outrageous example, assume that M has finite projective dimension. Its distant syzygies are then all equal to 0, and so—for trivial reasons—display an extremely uniform behavior. However, even this case has a highly nontrivial aspect: due to the Auslander-Buchsbaum Equality asymptotic information is available after at most (e + 1) steps. This accounts for the effectiveness of computer constructions of finite free resolutions.

⋆ Authors supported by the NSF, grants DMS 99-70375 and DMS 99-70085.

Problems that computers are not well equipped to handle arise unavoidably when studying asymptotic behavior of infinite resolutions. We describe some, using graded Betti numbers β_{ns}^{B}(M) = dim_{K} Ext_{B}^{n}(M, k)_{−s}, where k = B/(x_{1}, …, x_{e})B, and regularity reg_{B}(M) = sup_{n,s}{s − n | β_{ns}^{B}(M) ≠ 0}.

• Irrationality. There are rings B for which no recurrent relation with constant coefficients exists among the numbers β_{n}^{B}(k) = ∑_{s} β_{ns}^{B}(k), see [1].

• Irregularity. For each r ≥ 2 there exists a ring B(r) with β_{ns}^{B(r)}(k) = 0 for s ≠ n and 0 ≤ n ≤ r, but with β_{r,r+1}^{B(r)}(k) ≠ 0, see [14].

• Span. If B is generated over K by elements of degree one and reg_{B}(k) ≠ 0, then reg_{B}(k) = ∞, see [7].

• Size. There are inequalities β_{n}^{B}(k) ≥ β^{n} for all n ≥ 0 and for some constant β > 1, unless B is a complete intersection, see [3].

These obstructions vanish miraculously when B is a graded complete intersection: For each M and all n ≫ 0 the number β_{n+1}(M) is a linear combination with constant coefficients of β_{n−2c}^{B}(M), …, β_{n}^{B}(M). If B is generated in degree one, then reg_{B}(k) = 0 if and only if the ideal J is generated by quadratic forms. There are inequalities β_{n}^{B}(M) ≤ β(M)n^{c−1} for all n ≥ 1 and for some constant β(M) > 0.

The algebra behind the miracle is a theorem of Gulliksen [12], who proves that ExtB^{•}(M, N) is a finitely generated bigraded module over a polynomial ring of cohomology operators S = A[X_{1}, …, X_{c}], where each variable X_{i} has cohomological degree 2. As a consequence of this result, problems in Homological Algebra can be answered in terms of Commutative Algebra.

Gulliksen’s definition of the operators X_{i} as iterated connecting homomorphisms is badly suited for use by a computer. Other definitions have been given subsequently by several authors, see Remark 4.6. We take the approach of Eisenbud [11], who derives the operators from a specific B-free resolution of M, obtained by extending a construction of Shamash [15].

The resolution of Shamash and Eisenbud, and Gulliksen’s Finiteness Theorem, are presented with detailed proofs in Section 4. They are obtained through a new construction—that of an intermediate resolution of M over the polynomial ring—that encodes C and all the null-homotopies of C corresponding to multiplication with elements of J; this material is contained in Section 3. It needs standard multilinear algebra, developed ad hoc in Section 2. Rules for juggling several gradings are discussed in an Appendix.

In Section 5 we present and illustrate the code for the routine Ext, which runs remarkably close to the proofs in Sections 3 and 4. Section 6 contains numerous computations of popular numerical invariants of a graded module, like its complexity, Poincaré series, and Bass series. They are extracted from knowledge of the bigraded modules ExtB^{•}(M, k) and ExtB^{•}(k, M), whose computation is also illustrated by examples, and is further used to obtain explicit equations for the cohomology variety V_{B}^{∗}(M) defined in [2]. For most invariants we include some short code that automates their computation. In Section 7 we extend these procedures to invariants of pairs of modules.

1 Matrix Factorizations

We start the discussion of homological algebra over a complete intersection with a very special case, that can be packaged attractively in matrix terms.

Let f be a non-zero-divisor in a commutative ring A.

Following Eisenbud [11, Sect. 5] we say that a pair (U, V) of matrices with entries in A, of sizes k × ℓ and ℓ × k, is a matrix factorization of −f if

U · V = −f · I_{k}  and  V · U = −f · I_{ℓ}

where I_{m} denotes the m × m unit matrix. Localizing at f, one sees that −f^{−1} · U and V are inverse matrices over A_{f}; as a consequence ℓ = k, and each equality above implies the other, for instance:

V · U = ( − f^{−1} · U)^{−1} · U = −f · U^{−1} · U = −f · I_{k}

Here is a familiar example of matrix factorization, with f = xy − wz:

(\begin{matrix}w & x \\ y & z \end{matrix}) · (\begin{matrix}z & −y \\ −x & w \end{matrix}) = −(xy − wz) · (\begin{matrix}1 & 0 \\ 0 & 1 \end{matrix}) = (\begin{matrix}z & −y \\ −x & w \end{matrix}) · (\begin{matrix}w & x \\ y & z \end{matrix})

Let now C_{1} and C_{0} be free A-modules of rank r, and let

d_{1} : C_{1} → C_{0}  and  s_{0} : C_{0} → C_{1}

be A-linear homomorphisms defined by the matrices U and V, respectively, after bases have been tacitly chosen.

The second condition on the matrices U and V implies that d_{1} is injective, while the first condition on these matrices shows that fC_{0} is contained in Im(d_{1}). Setting L = Coker(d_{1}), one sees that the chosen matrix factorization defines a commutative diagram with exact rows

\xymatrix{0 \ar[r] & C_{1} \ar[r]^{d_{1}} \ar[d]_{−f·1_{C_{1}}} & C_{0} \ar[r] \ar[d]^{−f·1_{C_{0}}} \ar[dl]_{s_{0}} & L \ar[r] \ar[d]_{0_{L}=}^{−f·1_{L}} & 0 \\ 0 \ar[r] & C_{1} \ar[r]^{d_{1}} & C_{0} \ar[r] & L \ar[r] & 0}

which expresses the following facts: C = 0 → C_{1} ⟶^{d_{1}} C_{0} → 0 is a free resolution of the A-module L, this module is annihilated by f, and s_{0} is a homotopy between the maps −f · 1_{C} and 0_{C}, both of which lift −f · 1_{L}.

Conversely, if an A-module L annihilated by f has a free resolution (C, d_{1}) of length 1, then rank_{A} C_{1} = rank_{A} C_{0}, and any choice of homotopy s_{0} between −f · 1_{C} and 0_{C} provides a matrix factorization of −f.

When we already have an A-module L with a presentation matrix U that defines an injective A-linear map, we can use Macaulay 2 to create a matrix factorization (U, V) of −f.

Example 1.1. We revisit the familiar example from a higher perspective.

4  L. L. Avramov and D. R. Grayson

i1 : A = QQ[w,x,y,z]
o1 = A
o1 : PolynomialRing
i2 : U = matrix {{w,x},{y,z}}
o2 = | w x |
     | y z |
             2       2
o2 : Matrix A  <--- A
i3 : C = chainComplex U
      2      2
o3 = A  <-- A
     0      1
o3 : ChainComplex
i4 : L = HH_0 C
o4 = cokernel | w x |
              | y z |
                            2
o4 : A-module, quotient of A
i5 : f = -det U
o5 = x*y - w*z
o5 : A

Let’s verify that f annihilates L.

i6 : f * L == 0
o6 = true

We use the nullhomotopy function.

i7 : s = nullhomotopy (-f * id_C)
          2                     2
o7 = 1 : A  <----------------- A  : 0
               {1} | z  -x |
               {1} | -y w  |
o7 : ChainComplexMap

Let’s verify that s is a null-homotopy for −f, using C.dd to obtain the differential of the chain complex C as a map of graded modules.

i8 : s * C.dd + C.dd * s == -f
o8 = true

We extract the matrix V from the null-homotopy to get our factorization.

i9 : V = s_0
o9 = {1} | z  -x |
     {1} | -y w  |

                 2       2
    o9 : Matrix A  <--- A

For every f and every r ≥ 1 there exists a trivial matrix factorization of −f, namely, (f ·I_{k}, −I_{k}); it can be obtained from the A-module L = A^{k}/fA^{k}. In general, it may not be clear how to find an A-module L with the properties necessary to obtain an ‘interesting’ matrix factorization of −f.

However, in some cases the supply is plentiful.

Remark 1.2. Let A be a graded polynomial ring in e variables of positive degree over a field K, let f be a homogeneous polynomial in A, and set B = A/(f). Every B-module M of infinite projective dimension generates a matrix factorization (U, V) of −f, as follows.

Let (F, d_{F}) be a minimal graded free resolution of M over B, and set L = Coker (d_{F} : F_{e+1} → F_{e}). Since M has infinite projective dimension, we have L ≠ 0. By the Depth Lemma, depth_{B} L = depth B. On the other hand, depth_{B} L = depth_{A} L and depth B = depth A−1. By Hilbert’s Syzygy Theorem, the minimal graded free resolution (C, d_{C}) of L over A is finite. By the Auslander-Buchsbaum Equality, C_{n} = 0 for n > depth A−depth_{A} L = 1.

The minimality of F ensures that all nonzero entries of the presentation matrix U of L are forms of positive degree. On the other hand, by [11, Sect. 0] the module L has no direct summand isomorphic to B: it follows that all nonzero entries of the homotopy matrix V are forms of positive degree (this is the reason for choosing L as above—stopping one step earlier in the resolution F could have produced a module L with a non-zero free direct summand).

Our reader would have noticed that Macaulay 2 can read all the data and perform all the operations needed to construct a module L by the procedure described in the preceding remark. Here is how it does it.

Example 1.3. We produce a matrix factorization of −f, where

f = x^{3} + 3y^{3} − 2yz^{2} + 5z^{3} ∈ ℚ[x, y, z] = A

generated by the module M = B/𝔪^{2}, where B = A/(f) and 𝔪 = (x, y, z)B.

    i10 : A = QQ[x,y,z];
    i11 : f = x^3 + 3*y^3 - 2*y*z^2 + 5*z^3;
    i12 : B = A/f;
    i13 : m = ideal(x,y,z)
    o13 = ideal (x, y, z)
    o13 : Ideal of B

Let’s take the B-module M and compute its minimal B-free resolution.

    i14 : M = B^1/m^2;

i15 : F = resolution(M, LengthLimit=>8)
       1      6      9      9      9      9      9      9      9
o15 = B  <-- B  <-- B  <-- B  <-- B  <-- B  <-- B  <-- B  <-- B
      0      1      2      3      4      5      6      7      8
o15 : ChainComplex

We introduce a function restrict1 N which accepts a B-module N and restricts scalars to produce an A-module.

i16 : restrict1 = N -> coker(lift(presentation N,A) | f);

Now make L as described in Remark 1.2

i17 : L = restrict1 cokernel F.dd_4;

We proceed as in Example 1.1 to get a matrix factorization.

i18 : C = res L;
i19 : U = C.dd_1;
              9       9
o19 : Matrix A  <--- A
i20 : print U
{4} | 0  xy x2       y2    0        0        0        yz-5/2z2 0      |
{4} | 0  x2 -3y2     xy    yz-5/2z2 0        yz-5/2z2 0        0      |
{4} | x2 0  -2yz+5z2 0     y2-5/2yz yz-5/2z2 -5/2yz   0        0      |
{5} | 0  0  0        1/3z  0        0        0        1/2y     x      |
{5} | 0  0  -z       0     1/2y     0        1/2y     -1/2x    0      |
{5} | 0  -z 0        0     -1/2x    0        -1/2x    0        3y     |
{5} | 0  0  0        -1/3x 0        1/2y     -1/3z    0        0      |
{5} | -z y  x        0     0        -1/2x    0        0        0      |
{5} | y  0  0        0     0        0        1/3x     0        -2y+5z |
i21 : s = nullhomotopy (-f * id_C);
i22 : V = s_0;
              9       9
o22 : Matrix A  <--- A
i23 : print V
{6} | 0   0  -x  0         0         -2y2+5yz 0         -2yz+5z2 -3y2 |
{6} | 0   -x 0   0         0         -2yz+5z2 -3xy      -3y2     -3yz |
{6} | -x  y  0   0         -2yz+5z2  0        0         0        0    |
{6} | -3y 0  0   6yz-15z2  0         0        3x2       3xy      3xz  |
{6} | 0   2z -3y -15xz     -15yz     2x2      6yz-15z2  0        3x2  |
{6} | -2x 0  2z  0         -4yz+10z2 0        -6y2      2x2      0    |
{6} | 0   0  3y  -6xy+15xz -6y2+15yz 0        -6yz+15z2 0        -3x2 |
{6} | 2z  0  0   -6y2      2x2       2xy      0         0        0    |
{6} | 0   0  0   -x2       -xy       -y2      -xz       -yz      -z2  |
i24 : U*V+f==0
o24 = true
i25 : V*U+f==0
o25 = true

The procedure described above can be automated for more pleasant usage.

Code 1.4. The function matrixFactorization M produces a matrix factorization (U, V) of −f generated by a module M over B = A/(f).

    i26 : matrixFactorization = M -> (
             B := ring M;
             f := (ideal B)_0;
             e := numgens B;
             F := resolution(M, LengthLimit => e+1);
             L := restrict1 cokernel F.dd_(e+1);
             C := res L;
             U := C.dd_1;
             s := nullhomotopy (-f * id_C);
             V := s_0;
             assert( U*V + f == 0 );
             assert( V*U + f == 0 );
             return (U,V));

We use the assert command to signal an error in case the matrices found don’t satisfy our requirement for a matrix factorization.

Let’s illustrate the new code with a slightly bigger module M than before.

Example 1.5. With the same A, f, B, and 𝔪 as in Example 1.3, we produce a matrix factorization generated by the B-module M = B/𝔪^{3}.

    i27 : time (U,V) = matrixFactorization(B^1/m^3);
         -- used 0.21 seconds

The parallel assignment statement above provides both variables U and V with matrix values. We examine their shapes without viewing the matrices themselves by appending a semicolon to the appropriate command.

    i28 : U;
                  15       15
    o28 : Matrix A   <--- A
    i29 : V;
                  15       15
    o29 : Matrix A   <--- A

Matrix factorizations were introduced to construct resolutions over the the residue ring B = A/(f), using the following observation.

Remark 1.6. If (U, V) is a factorization of −f by k × k matrices and the maps d_{1} : C_{1} → C_{0} and s_{0} : C_{0} → C_{1} are homomorphisms of free A-modules defined by U and V, respectively, then the sequence

⋯ → C_{1} ⊗_{A} B ⟶^{d_{1}⊗1_{B}} C_{0} ⊗_{A} B ⟶^{s_{0}⊗1_{B}} C_{1} ⊗_{A} B ⟶^{d_{1}⊗1_{B}} C_{0} ⊗_{A} B → 0

of B-linear maps is a free resolution of the B-module L = Coker(d_{1}). Indeed, freeness is clear, and we have a complex because d_{1}s_{0} = −f · 1_{C_{0}}

and s_{0}d_{1} = −f ·1_{C_{1}}. If x ∈ C_{1} satisfies (d_{1} ⊗1_{B})(x⊗1) = 0, then d_{1}(x) = fy for some y ∈ C_{0}, hence d_{1}x = d_{1}s_{0}(y). As d_{1} is injective, we get x = s_{0}(y), so Ker (d_{1} ⊗ 1_{B}) ⊆ Im (s_{0} ⊗ 1_{B}); the reverse inclusion follows by symmetry.

Pooling Remarks 1.2 and 1.6 we recover Eisenbud’s result [11, Sect. 6].

Theorem 1.7. Let A be a graded polynomial ring in e variables of positive degree over a field K, and f a homogeneous polynomial in A. The minimal graded free resolution of every finitely generated graded module over B = A/(f) becomes periodic of period 2 after at most e steps. The periodic part of the resolution is given by a matrix factorization of −f generated by M.

We illustrate the theorem on an already computed example.

Example 1.8. Let A, f, B, M, and F be as in Example 1.3.

To verify the periodicity of F we subtract pairs of differentials and compare the result with 0: direct comparison of the differentials would not work, because the free modules involved have different degrees.

    i30 : F.dd_3 - F.dd_5 == 0
    o30 = false
    i31 : F.dd_4 - F.dd_6 == 0
    o31 = false
    i32 : F.dd_5 - F.dd_7 == 0
    o32 = true

The first two answers above come as a surprise—and suggest a property of F that is weaker than the one we already know to be true!

There is an easy explanation: we checked the syzygy modules for equality, rather than for isomorphism. We do not know why Macaulay 2 didn’t produce an equality at the earliest possible stage, nor why it eventually produced one. The program has other strategies for computing resolutions, so let’s try one.

    i33 : M = B^1/m^2;
    i34 : G = resolution(M, LengthLimit => 8, Strategy => 0)
           1      6      9      9      9      9      9      9      9
    o34 = B  <-- B  <-- B  <-- B  <-- B  <-- B  <-- B  <-- B  <-- B
          0      1      2      3      4      5      6      7      8
    o34 : ChainComplex
    i35 : G.dd_3 - G.dd_5 == 0
    o35 = true
    i36 : G.dd_4 - G.dd_6 == 0
    o36 = true
    i37 : G.dd_5 - G.dd_7 == 0
    o37 = true

The strategy paid off, revealing periodicity at the earliest possible stage. However, the algorithm used may be a lot slower that the default algorithm.

2 Graded Algebras

We describe some standard universal algebras over a commutative ring A.

Let Q denote a free A-module of rank c, and set Q^{∗} = Hom_{A}(Q, A). We assign degree 2 to the elements of Q, and degree −2 to those of Q^{∗}. We let Q^{∧} denote a copy of Q whose elements are assigned degree 1; if x is an element of Q, then x^{∧} denotes the corresponding element of Q^{∧}.

We use α = (α_{1}, …, α_{c}) ∈ ℤ^{c} as a multi-index, set |α| = ∑_{i} α_{i}, and order ℤ^{c} by the rule: α ≥ β means α_{i} ≥ β_{i} for each i. We let o denote the trivial element of ℤ^{c}, and ϵ_{i} the i’th element of its standard basis.

Construction 2.1. For each integer m ≥ 0 we form free A-modules

S^{m}(Q^{∗}) with basis {X^{α} : |α| = m}
D^{m}(Q) with basis {Y^{(α)} : |α| = m}
⋀^{m}(Q^{∧}) with basis {Y^{∧α} : |α| = m and α ≤ (ϵ_{1} + ⋯ + ϵ_{c})}

For m < 0 we declare the modules S^{m}(Q^{∗}), D^{m}(Q), and ⋀^{m}(Q^{∧}) to be equal to 0, and define the symbols X^{α}, Y^{(α)}, and Y^{∧α} accordingly; in addition, we set ⋀^{m}(Q^{∧}) = 0 and Y^{∧α} = 0 if |α| ≰ (ϵ_{1} + ⋯ + ϵ_{c}), and we set

X_{i} = X^{ϵ_{i}}  Y_{i} = Y^{(ϵ_{i})}  Y_{i}^{∧} = Y^{∧ϵ_{i}}  for  i = 1, …, c

Taking S^{m}(Q^{∗}), D^{m}(Q), and ⋀^{m}(Q^{∧}) as homogeneous components of degree −2m, 2m, and m, respectively, we introduce graded algebras

S = S(Q^{∗})  D = D(Q)  E = ⋀(Q^{∧})

by defining products of basis elements by the formulas

X^{α} · X^{β} = X^{α+β}

Y^{(α)} · Y^{(β)} = ∏_{i=1}^{c} \frac{(α_{i} + β_{i})!}{α_{i}!β_{i}!}Y^{(α+β)}

Y^{∧α} · Y^{∧β} = inv(α, β)Y^{∧ α+β}

where inv(α, β) denotes the number of pairs (i, j) with α_{i} = β_{j} = 1 and i > j. Thus, S is the symmetric algebra of Q^{∗}, with X^{o} = 1, while D is the divided powers algebra of Q, with Y^{(o)} = 1, and E is the exterior algebra of Q^{∧}, with Y^{∧ o} = 1. We identify S and the polynomial ring A[X_{1}, …, X_{c}].

A homogeneous derivation of a graded A-algebra W is a homogeneous A-linear map d: W → W such that the Leibniz rule

d(xy) = d(x)y + (−1)^{deg x·deg d}xd(y)

holds for all homogeneous elements x, y ∈ W.

Construction 2.2. Each sequence f_{1}, …, f_{c} ∈ A yields a Koszul map

d_{E}: E → E defined by the formula

d_{E}(Y^{∧β}) = ∑_{i=1}^{c}(−1)^{β_{1}+···+β_{i−1}}f_{i}Y^{∧ β−ϵ_{i}}

It is a derivation of degree −1 and satisfies d_{E}^{2} = 0.

Construction 2.3. For every X_{i} ∈ S^{1}(Q^{∗}) and each Y^{(β)} ∈ D^{m}(Q) we set

X_{i} ⌟ Y^{(β)} = Y^{(β−ϵ_{i})} ∈ D^{m−1}(Q)

Extending this formula by A-bilinearity, we define g ⌟ y for all g ∈ S^{1}(Q^{∗}) and all y ∈ D. It is well known, and easily verified, that the map g ⌟: y ↦ g ⌟ y is a graded derivation D → D of degree −2, and that the derivations associated with arbitrary g and g′ commute. As a consequence, the formula

X^{α} ⌟ Y^{(β)} = (X_{1} ⌟)^{α_{1}} ⋯ (X_{c} ⌟)^{α_{c}}(Y^{(β)}) ∈ D^{|β−α|}(Q)

extended A-linearly to all u ∈ S, defines on D a structure of graded S-module. The usual products on S ⊗_{A} E and D ⊗_{A} E and the induced gradings

(S ⊗_{A} E)_{n} = ⨁_{ℓ−2k=n} S^{k}(Q^{∗}) ⊗_{A} ⋀^{ℓ}(Q^{∧})

(D ⊗_{A} E)_{n} = ⨁_{ℓ+2k=n} D^{(k)}(Q) ⊗_{A} ⋀^{ℓ}(Q^{∧})

turn S ⊗_{A} E and D ⊗_{A} E into graded algebras. The second one is a graded module over the first, for the action (u ⊗ z) · (y ⊗ z′) = (u ⌟ v) ⊗ (z · z′).

Construction 2.4. The element w = ∑_{i=1}^{c} X_{i} ⊗ Y_{i}^{∧} yields a Cartan map

d_{DE}: D ⊗_{A} E → D ⊗_{A} E defined by the formula

d_{DE}(y ⊗ z) = w · (y ⊗ z) = ∑_{i=1}^{c}(X_{i} ⌟ y) ⊗ (Y_{i}^{∧} · z)

It is an E-linear derivation of degree −1, and d_{DE}^{2} = 0 because w^{2} = 0.

Lemma 2.5. For each integer s define a complex G^{s} as follows:

⋯ → D^{k}(Q) ⊗_{A} ⋀^{s−k}(Q^{∧}) ⟶^{w} D^{k−1}(Q) ⊗_{A} ⋀^{s−k+1}(Q^{∧}) → ⋯

with D^{0}(Q) ⊗_{A} ⋀^{s}(Q^{∧}) in degree s. If s > 0, then G^{s} is split exact.

Proof. Note that for each s ∈ ℤ there exist isomorphisms of complexes ⨁_{s=1}^{∞} G^{s} ≅ (D ⊗_{A} E)_{≥1} ≅ ( ⨂_{i=1}^{c} G(i))_{≥1}, where G(i) is the complex

⋯ → AY_{i}^{(k+1)} ⊗_{A} A ⟶^{w_{i}} (AY_{i}^{(k)}) ⊗ (AY_{i}^{∧}) ⟶^{0} (AY_{i}^{(k)}) ⊗_{A} A → ⋯

and w_{i} is left multiplication with X_{i}⊗Y_{i}^{∧}. This map bijective, so each complex G(i)_{≥1} is split exact. The assertion follows. ⊓ ⊔

3 Universal Homotopies

This section contains the main new mathematical result of the paper.

We introduce a universal construction, that takes as input a projective resolution C of an A-module M and a finite set f of elements annihilating M; the output is a new projective resolution of M over A. If f ≠ ∅, then the new resolution is infinite—even when C is finite—because it encodes additional data: the null-homotopies for f · 1_{C} for all f ∈ f, all compositions of such homotopies, and all relations between those compositions. This higher-order information tracks the transformation of the homological properties of M when its ring of operators is changed from A to A/(f).

Our construction is motivated by, and is similar to, one due to Shamash [15] and Eisenbud [11]: assuming that the elements of f form an A-regular sequence, they produce a projective resolution of M over A/(f). By contrast, we make no assumption whatsoever on f. With the additional hypothesis, in the next section we quickly recover the original result from the one below. As an added benefit, we eliminate the use of spectral sequences from the proof.

Theorem 3.1. Let A be a commutative ring, let f_{1}, …, f_{c} be a sequence of elements of A, let M be an A-module annihilated by f_{i} for i = 1, …, c, and let r: C → M be a resolution of M by projective (respectively, free) A-modules.

There exists a family of homogeneous A-linear maps

{d_{γ}: C → C | deg(d_{γ}) = 2|γ| − 1}_{γ∈ℕ^{c}}

satisfying the following conditions

d_{o} = d_{C} is the differential of C
[d_{o}, d_{γ}] = \begin{cases}−f_{i} · 1_{C} & if γ = ϵ_{i} for i = 1, …, c \\ −\begin{matrix}∑ & ^{+} \\ α+β=γ \end{matrix}d_{α}d_{β} & if |γ| ≥ 2 \end{cases} (1)

where ∑^{+} denotes a summation restricted to indices in ℕ^{c} ∖ {o}. Any family {d_{γ}}_{γ∈ℕ^{c}} as above defines an A-linear map of degree −1,

\begin{matrix}d_{CD}: C ⊗_{A} D → C ⊗_{A} D  given by \\ d_{CD}(x ⊗ y) = ∑_{γ∈ℕ^{c}} d_{γ}(x) ⊗ (X^{γ} ⌟ y) \end{matrix}  (2)

where D is the divided powers algebra defined in Construction 2.1, and the action of X^{γ} on D is defined in Construction 2.3.

With d_{E} and d_{DE} defined in Constructions 2.2 and 2.4 and the tensor product of maps of graded modules defined as in Remark 3.4, the map

\begin{matrix}d: C ⊗_{A} D ⊗_{A} E → C ⊗_{A} D ⊗_{A} E  given by \\ d = d_{CD} ⊗ 1_{E} + 1_{C} ⊗ d_{DE} + 1_{C} ⊗ 1_{D} ⊗ d_{E} \end{matrix}  (3)

is an A-linear differential of degree −1, and the map

q: C ⊗_{A} D ⊗_{A} E → M given by

q(x ⊗ y ⊗ z) = \begin{cases}yz · r(x) & if deg(y) = deg(z) = 0 \\ 0 & otherwise \end{cases}

is a resolution of M by projective (respectively, free) A-modules.

For use in the proof, we bring up a few general homological points.

A bounded filtration of a chain complex F is a sequence

0 = F^{0} ⊆ F^{1} ⊆ ⋯ ⊆ F^{s−1} ⊆ F^{s} ⊆ ⋯

of subcomplexes such that for each n there exists an s with F_{n}^{s} = F_{n}. As usual, we let gr^{s}(F) denote the complex of A-modules F^{s}/F^{s−1}.

Lemma 3.2. Let q: F → F′ be a morphism of complexes with bounded filtrations, such that q(F^{s}) ⊆ F′^{s} for all s ∈ ℤ. If for each s the induced map gr^{s}(q): gr^{s}(F) → gr^{s}(F′) is a quasi-isomorphism, then so is q.

Proof. Denoting q^{s} the restriction of q to F^{s}, we first show by induction on s that H_{n}(q^{s}) is bijective for all n. The assertion is clear for s = 0, since F^{0} = 0 and F^{′ 0} = 0. For the inductive step, we assume that q^{s−1} is a quasiisomorphism for some s ≥ 1. We have a commutative diagram of complexes

\xymatrix{0 \ar[r] & F^{s−1} \ar[d]_{q^{s−1}} \ar[r] & F^{s} \ar[d]_{q^{s}} \ar[r] & gr^{s}(F) \ar[d]_{gr^{s}(q)} \ar[r] & 0 \\ 0 \ar[r] & F^{′ s−1} \ar[r] & F^{′ s} \ar[r] & gr^{s}(F′) \ar[r] & 0}

By hypothesis and inductive assumption, in the induced diagram

\xymatrix{H_{n+1}(gr^{s}(F)) \ar[d]_{H_{n+1}(gr^{s}(q))}^{≅} \ar[r] & H_{n}(F^{s−1}) \ar[d]_{H_{n}(q^{s−1})}^{≅} \ar[r] & H_{n}(F^{s}) \ar[d]_{H_{n}(q^{s})} \ar[r] & H_{n}(gr^{s}(F)) \ar[d]_{H_{n}(gr^{s}(q))}^{≅} \ar[r] & H_{n−1}(F^{s−1}) \ar[d]_{H_{n−1}(q^{s−1})}^{≅} \\ H_{n+1}(gr^{s}(F′)) \ar[r] & H_{n}(F^{′ s−1}) \ar[r] & H_{n}(F^{′ s}) \ar[r] & H_{n}(gr^{s}F′) \ar[r] & H_{n−1}(F^{′ s−1})}

the four outer vertical maps are bijective. By the Five-Lemma, so is H_{n}(q^{s}). Now we fix an integer n ∈ ℤ, and pick s so large that

F_{k}^{s} = F_{k}  and  F_{k}^{′ s} = F′_{k}  hold for  k = n − 1, n, n + 1 .

The choice of s implies that H_{n}(F^{s}) = H_{n}(F), H_{n}(F^{′ s}) = H_{n}(F′), and H_{n}(q^{s}) = H_{n}(q). Since we have already proved that H_{n}(q^{s}) is an isomorphism, we conclude that H_{n}(q): H_{n}(F) → H_{n}(F′) is an isomorphism. ⊓ ⊔ Remark 3.3. If (F, d_{F}) is a complex of A-modules, then Hom_{A}^{gr}(F, F) denotes the graded module whose n’th component consists of the A-linear maps g: F → F with g(F_{i}) ⊆ F_{i+n} for all i ∈ ℤ.

If g, h are homogeneous A-linear maps, then their composition gh is homogeneous of degree deg(g) + deg(h), and so is their graded commutator

[g, h] = gh − (−1)^{deg g·deg h}hg

Commutation is a graded derivation: for each homogeneous map h′ one has

[g, hh′] = [g, h]h′ + (−1)^{deg g·deg h}h[g, h′]

The map h ↦ [d_{F} , h] has square 0, and transforms Hom_{A}^{gr}(F, F) into a complex of A-modules; by definition, its cycles are the chain maps F → F, and its boundaries are the null-homotopic maps.

Remark 3.4. If p: F → F′ and q: G → G′ are graded maps of graded modules, we define the tensor product p⊗q: F ⊗F′ → G⊗G′ by the formula (p ⊗ q)(f ⊗ g) = (−1)^{deg q·deg f}(p(f) ⊗ q(g)). With this convention, when F = F′ and G = G′, the graded commutator [1_{F} ⊗ q, p ⊗ 1_{G}] vanishes.

Lemma 3.5. Let M be an A-module and let r: C → M be a free resolution. If g: C → C is an A-linear map with deg(g) > 0, and [d_{C}, g] = 0, then g = [d_{C}, h] for some A-linear map h: C → C with deg(h) = deg(g) + 1.

Proof. The augmentation r: C → M defines a chain map of degree zero

Hom_{A}^{gr}(C, r): Hom_{A}^{gr}(C, C) → Hom_{A}^{gr}(C, M)

The map induced in homology is an isomorphism: to see this, apply the ‘comparison theorem for projective resolutions’. Since A-linear maps C → M of positive degree are trivial, the conclusion follows from Remark 3.3. ⊓ ⊔

Proof (of Theorem 3.1). Recall that D is the divided powers algebra of a free A-module Q with basis Y_{1}, …, Y_{c}, that X_{1}, …, X_{c} is the dual basis of the free A-module Q^{∗}, and S for the symmetric algebra of Q^{∗}, see Construction 2.1 for details. We set f = ∑_{i=1}^{c} f_{i}X_{i} ∈ S^{1}(Q^{∗}).

We first construct the maps d_{γ} by induction on |γ|.

If |γ| = 0, then γ = o, so d_{o} = d_{C} is predefined. If |γ| = 1, then γ = ϵ_{i} for some i with 1 ≤ i ≤ c. Since f_{i} annihilates the B-module M, the map −f_{i} · 1_{C} lifts the zero map on M, hence is null-homotopic. For each i we take d_{ϵ_{i}} to be a null-homotopy, that is, [d_{o}, d_{ϵ_{i}}] = −f_{i} · 1_{C}. With these choices, the desired formulas hold for all γ with |γ| ≤ 1.

Assume by induction that maps d_{γ} satisfying the conclusion of the lemma have been chosen for all γ ∈ ℕ^{c} with |γ| < n, for some n ≥ 2. Fix γ ∈ ℕ^{c} with |γ| = n. Using Remark 3.3 and the induction hypothesis, we obtain

[d_{o}, \begin{matrix}∑ & ^{+} \\ α+β=γ \end{matrix}d_{α}d_{β}] = \begin{matrix}∑ & ^{+} \\ α+β=γ \end{matrix}([d_{o}, d_{α}]d_{β} − d_{α}[d_{o}, d_{β}])

= \begin{matrix}∑ & ^{+} \\ α+β=γ \end{matrix}((\begin{matrix}∑ & ^{+} \\ α′+α′′=α \end{matrix}d_{α′}d_{α′′})d_{β} − d_{α}(\begin{matrix}∑ & ^{+} \\ β′+β′′=β \end{matrix}d_{β′}d_{β′′}))

= \begin{matrix}∑ & ^{+} \\ α′+α′′+β=γ \end{matrix}d_{α′}d_{α′′}d_{β} − \begin{matrix}∑ & ^{+} \\ α+β′+β′′=γ \end{matrix}d_{α}d_{β′}d_{β′′}

= 0

The map − ∑_{α+β=γ}^{+} d_{α}d_{β} has degree 2|γ| − 2, so by Lemma 3.5 it is equal to [d_{o}, d_{γ}] for some A-linear map d_{γ}: C → C of degree 2|γ| − 1. Choosing such a d_{γ} for each γ ∈ ℕ^{c} with |γ| = n, we complete the step of the induction.

From the definition of d we obtain an expression

d^{2} =d_{CD}^{2} ⊗ 1_{E} + 1_{C} ⊗ [d_{DE} , 1_{D} ⊗ d_{E}] + [d_{CD} ⊗ 1_{E} , 1_{C} ⊗ d_{DE}]+
1_{C} ⊗ d_{DE}^{2} + 1_{C} ⊗ 1_{D} ⊗ d_{E}^{2} + [d_{CD} ⊗ 1_{E} , 1_{C} ⊗ 1_{D} ⊗ d_{E}]

Constructions 2.4, 2.2, and Remark 3.4 show that the maps in the second row are equal to 0, so to prove that d^{2} = 0 it suffices to establish the equalities

d_{CD}^{2} = −f · 1_{C⊗D}  (4)
[d_{DE} , 1_{D} ⊗ d_{E}] = f · 1_{D⊗E}  (5)
[d_{CD} ⊗ 1_{E} , 1_{C} ⊗ d_{DE}] = 0  (6)

A direct computation with formula (1) proves equality (4) above:

d_{CD}^{2}(x ⊗ y) = d_{CD}( ∑_{β∈ℕ^{c}} d_{β}(x) ⊗ (X^{β} ⌟ y))

= ∑_{β∈ℕ^{c}} ( ∑_{α∈ℕ^{c}} d_{α}d_{β}(x) ⊗ (X^{α} ⌟ (X^{β} ⌟ y)))

= ∑_{α+β∈ℕ^{c}} d_{α}d_{β}(x) ⊗ (X^{α+β} ⌟ y)

= ∑_{i=1}^{c} −f_{i}x ⊗ (X_{i} ⌟ y)

= −f · (x ⊗ y)

By Constructions 2.2 and 2.4, the maps 1_{D} ⊗ d_{E} and d_{DE} are derivations of degree −1, so the commutator [d_{DE}, 1_{D} ⊗ d_{E}] is a derivation of degree −2. Every element of D ⊗_{A} E is a product of elements 1 ⊗ Y_{i}^{∧} of degree 1 and Y_{j}^{(k)} ⊗ 1 of degree 2k, so it suffices to check that the map on either side of (6) takes the same value on those elements. For degree reasons, both sides vanish on 1 ⊗ Y_{i}^{∧}. We now complete the proof of equality (5) as follows:

[d_{DE} , 1_{E} ⊗ d_{E}](Y_{j}^{(k)} ⊗ 1)
= d_{DE}((1_{D} ⊗ d_{E})(Y_{j}^{(k)} ⊗ 1)) + (1_{E} ⊗ d_{E})(d_{DE}(Y_{j}^{(k)} ⊗ 1))
= (1_{E} ⊗ d_{E})(Y_{j}^{(k−1)} ⊗ Y_{j}^{∧})
= Y_{j}^{(k−1)} ⊗ f_{j}
= f · (Y_{j}^{(k)} ⊗ 1)

To derive equation (6) we use Constructions 2.2 and 2.4 once again:

((d_{CD} ⊗ 1_{E})(1_{C} ⊗ d_{DE}))(x ⊗ y ⊗ z)
=(−1)^{deg x}d_{CD}( ∑_{i=1}^{c} x ⊗ (X_{i} ⌟ y) ⊗ (Y_{i}^{∧} · z))

=(−1)^{deg x} ∑_{i=1}^{c} ∑_{γ∈ℕ^{c}} d_{γ}(x) ⊗ (X^{γ} ⌟(X_{i} ⌟ y)) ⊗ (Y_{i}^{∧} · z)

= − ∑_{γ∈ℕ^{c}} ∑_{i=1}^{c}(−1)^{deg(d_{γ}(x))}d_{γ}(x) ⊗ (X_{i} ⌟(X^{γ} ⌟ y)) ⊗ (Y_{i}^{∧} · z)

= − (1_{C} ⊗ d_{DE})( ∑_{γ∈ℕ^{c}} d_{γ}(x) ⊗ (X^{γ} ⌟ y) ⊗ z)
= − ((1_{C} ⊗ d_{DE})(d_{CD} ⊗ 1_{E}))(x ⊗ y ⊗ z)

It remains to show q is a quasi-isomorphism. Setting

F^{s} = ⨁_{k+ℓ≤s} C ⊗_{A} D^{k}(Q) ⊗_{A} ⋀^{ℓ}(Q^{∧})  for  s ∈ ℤ

we obtain a bounded filtration of the complex F = (C ⊗_{A} D ⊗_{A} E, d). On the other hand, we let F′ denote the complex with F′_{0} = M and F′_{n} = 0 for n ≠ 0; the filtration defined by F^{′ 0} = 0 and F^{′ s} = F′ for s ≥ 1 is obviously bounded, and q(F^{s}) ⊆ F^{′ s} holds for all s ≥ 0. By Lemma 3.2 it suffices to show that the induced map gr^{s}(q): gr^{s}(F) → gr^{s}(F′) is bijective for all s.

Inspection of the differential d of F shows that gr^{s}(F) is isomorphic to the tensor product of complexes C ⊗_{A} G^{s}, where G^{s} is the complex defined in Lemma 2.5. It is established there that G^{s} is is split exact for s > 0, hence H_{n}(C ⊗_{A} G^{s}) = 0 for all n ∈ ℤ. As G^{0} = A and gr^{0}(q) = r, we are done. ⊓ ⊔

4 Cohomology Operators

We present a new approach to the procedure of Shamash [15] and Eisenbud [11] for building projective resolutions over a complete intersection. We then use this resolution to prove a fundamental result of Gulliksen [12] on the structure of Ext modules over complete intersections.

A set f = {f_{1}, …, f_{c}} ⊆ A is Koszul-regular if the complex (E, d_{E}) of Construction 2.2, has H_{n}(E) = 0 for n > 0. A sufficient condition for Koszulregularity is that the elements of f, in some order, form a regular sequence.

Theorem 4.1. Let A be a commutative ring, f = {f_{1}, …, f_{c}} ⊆ A a subset, B = A/(f) the residue ring, M a B-module, and r: C → M a resolution of M by projective (respectively, free) A-modules.

Let {d_{γ}: C → C}_{γ∈ℕ^{c}} be a family of A-linear maps provided by Theorem 3.1, set D′ = D ⊗_{A} B, and y′ = y ⊗ 1 for y ∈ D. The map

\begin{matrix}∂: C ⊗_{A} D′ → C ⊗_{A} D′  given by \\ ∂(x ⊗ y′) = ∑_{γ∈ℕ^{c}} d_{γ}(x) ⊗ (X^{γ} ⌟ y)′ \end{matrix}  (7)

is a B-linear differential of degree −1. If f is Koszul-regular, then the map

q′: C ⊗_{A} D′ → M given by

q′(x ⊗ y′) = \begin{cases}y · r(x) & if deg(y′) = 0 \\ 0 & otherwise \end{cases}

is a resolution of M by projective (respectively, free) A-modules.

Remark 4.2. Assume that in the theorem f = {f_{1}}. The module D_{ℓ} is then trivial if ℓ is odd, and is free with basis consisting of a single element Y_{1}^{(ℓ/2)} if ℓ is even. Thus, the resolution C ⊗_{A} D′ has the form

⋯ ⟶^{∂_{2n+1}} ⨁_{j=0}^{∞} C_{2j} ⊗_{A} BY_{1}^{(n−j)} ⟶^{∂_{2n}} ⨁_{j=1}^{∞} C_{2j−1} ⊗_{A} BY_{1}^{(n−j)} ⟶^{∂_{2n−1}} ⋯

The simplest situation occurs when, in addition, C is a free resolution with C_{n} = 0 for n ≥ 2. In this case the differential d_{o} has a single nonzero component, d_{1} : C_{1} → C_{0}, the homotopy d_{ϵ_{1}} between −f · 1_{C} and 0_{C} has a single non-zero component, s_{0} : C_{0} → C_{1}, and all the maps d_{γ} with γ ∈ ℕ^{1} ∖ {o, ϵ_{1}} are trivial for degree reasons. It is now easy to see that the complex above coincides with the one constructed, ad hoc, in Remark 1.6.

Proof (of the theorem). In the notation of Theorem 3.1, we have equalities

C ⊗_{A} D′ = (C ⊗_{A} D ⊗_{A} E) ⊗_{E} B  and  ∂ = d ⊗ 1_{B}

It follows that ∂^{2} = 0. For each s ≥ 0 consider the subcomplexes

F^{s} = ⨁_{k+ℓ≤s} C_{k} ⊗_{A} D_{ℓ} ⊗_{A} E  of  F = C ⊗_{A} D ⊗_{A} E
F^{′ s} = ⨁_{k+ℓ≤s} C_{k} ⊗_{A} D′_{ℓ}  of  F′ = C ⊗_{A} D′

They provide bounded filtrations of the complexes F and F′, respectively, such that the map p′ = 1_{C} ⊗ 1_{D} ⊗ p: F → F′ satisfies p′(F^{s}) ⊆ F^{′ s} for all s ≥ 0. Setting G_{s} = ⨁_{k+ℓ=s}(C_{k} ⊗_{A} D_{ℓ}), we obtain equalities gr^{s}(F) = (G_{s} ⊗_{A} E, 1_{G_{s}} ⊗ d_{E}) and gr^{s}(F′) = (G_{s} ⊗_{A} B, 0) of complexes of A-modules.

If f is Koszul regular, then p: E → B is a quasi-isomorphism, hence so is 1_{G_{s}} ⊗ p = gr^{s}(p′) for each s ≥ 0. Lemma 3.2 then shows that p′ is a quasiisomorphism. The quasi-isomorphism q: F → M of Theorem 3.1 factors as q = q′(1_{C} ⊗ 1_{D} ⊗ p), so we see that q′ is a quasi-isomorphism, as desired. ⊓ ⊔

Let M and N be B-modules, and let ExtB^{•}(M, N) denote the graded Bmodule having Ext_{B}^{n}(M, N) as component of degree −n. To avoid negative numbers, it is customary to regrade ExtB^{•}(M, N) by cohomological degree, under which the elements of Ext_{B}^{n}(M, N) are assigned degree n; we do not do it here, in order not to confuse Macaulay 2. Of course, these modules can be computed from any projective resolution of M over B.

The next couple of remarks collect a few innocuous observations. In hindsight, they provide some of the basic tools for studying cohomology of modules over complete intersections: see Remark 4.6 for some related material.

Remark 4.3. The resolution (C ⊗_{A} D′, ∂) provided by Theorem 4.1 is a graded module over the graded algebra S, with action defined by the formula

u · (x ⊗ y′) = x ⊗ (u ⌟ y)′

and this action commutes with the differential ∂. The induced action provides a structure of graded S-module on the complex Hom_{B}(C ⊗_{A} D′, N).

The action of S commutes with the differential ∂^{∗} = Hom_{B}(∂, N) of this complex, hence passes to its homology, making it a graded a S-module. Thus, each element u ∈ S_{−2k} = S^{k}(Q) determines homomorphisms

Ext_{B}^{n}(M, N) ⟶^{u} Ext_{B}^{n+2k}(M, N)  for all  n ∈ ℤ

For this reason, from now on we refer to the graded ring S as the ring of cohomology operators determined by the Koszul-regular set f.

Remark 4.4. The canonical isomorphisms of complexes of A-modules

Hom_{B}(C ⊗_{A} D′, N) = S ⊗_{A} Hom_{A}(C, N) = S ⊗_{A} Hom_{A}(C, A) ⊗_{A} N

commute with the actions of S.

The following fundamental result shows that in many important cases the action of the cohomology operators is highly nontrivial.

Theorem 4.5. Let A be a commutative ring, let f be a Koszul regular subset of A, and let S be the graded ring of cohomology operators defined by f.

If M and N are finitely generated modules over B = A/(f), and M has finite projective dimension over A (in particular, if A is regular), then the graded S-module ExtB^{•}(M, N) is finitely generated.

Proof. Choose a resolution r: C → M with C_{n} a finite projective A-module for each n and C_{n} = 0 for all n ≫ 0. By Remark (4.4), the graded S-module Hom_{B}(C ⊗_{A} D′, N) is finitely generated. Since S is noetherian, so is the submodule Ker(∂^{∗}), and hence the homology module, ExtB^{•}(M, N). ⊓ ⊔

Remark 4.6. The resolution of Remark 4.2 was constructed by Shamash [15, Sect. 3], that of Theorem 4.1 by Eisenbud [11, Sect. 7]. The new aspect of our approach is indicated at the beginning of Section 3.

As introduced in Remark 4.3, the S-module structure on Ext may appear ad hoc. In fact, it is independent of all choices of resolutions and maps, it can be computed from any projective resolution of M over B, it is natural in both module arguments and—in an appropriate sense—in the ring argument, and it commutes with Yoneda products from either side. These properties were proved by Gulliksen [12, Sect. 2], Mehta [13, Ch. 2], Eisenbud [11, Sect. 4], and Avramov [2, Sect. 2]. However, each author used a different construction of cohomology operators, and comparison of the different approaches has turned to be an unexpectedly delicate problem. It was finally resolved in [8], where complete proofs of the main properties of the operators can be found.

Gulliksen [12, Sect. 3] established a stronger form of Theorem 4.5, without finiteness hypotheses on the ring A: If the A-module ExtA^{•}(M, N) is noetherian, then the S-module ExtB^{•}(M, N) is noetherian; this can be obtained from the complexes of Remark (4.4) by means of a spectral sequence, cf. [4, Sect. 6]. The converse of Gulliksen’s theorem was proved in [6, Sect. 4].

For the rest of the paper we place ourselves in a situation where Macaulay 2 operates best—graded modules over positively graded rings. This grading is inherited by the various Ext modules, and we keep careful track of it. Our conventions and bookkeeping procedures are discussed in detail in an Appendix, which the reader is invited to consult as needed.

For ease of reference, we collect some notation.

Notation 4.7. The following is assumed for the rest of the paper.

• K is a field.

• {x_{h} | deg′(x_{h}) > 0}_{h=1,...,e} is a set of indeterminates over K.

• A = K[x_{1}, …, x_{e}], graded by deg′(a) = 0 for a ∈ K.

• f_{1}, …, f_{c} is a homogeneous A-regular sequence in (x_{1}, …, x_{e})^{2}.

• r_{i} = deg′(f_{i}) for i = 1, …, c.

• {X_{i} | Deg X_{i} = (−2, −r_{i})}_{i=1,...,c} is a set of indeterminates over A.

• S = A[X_{1}, …, X_{c}], bigraded by Deg(a) = (0, deg′(a)).

• B = A/(f), with degree induced by deg′.

• M and N are finitely generated graded B-modules.

• S acts as bigraded ring of cohomology operators on ExtB^{•}(M, N).

• k = B/(x_{1}, …, x_{e})B, with degree induced by deg′.

• R = S ⊗_{A} k ≅ K[X_{1}, …, X_{c}], with bidegree induced by Deg.

Remark 4.8. Under the conditions above, it is reasonable to ask when the B-free resolution G of Theorem 4.1, obtained from a minimal A-free resolution C of M, will itself be minimal. Shamash [15, Sect. 3] proves that G is minimal if f_{i} ∈ (x_{1}, …, x_{e})ann_{A}(M) for i = 1, …, c. An obvious example with non-minimal G occurs when M has finite projective dimension over B: if c > 0 then G is infinite. A more interesting failure of minimality follows.

Example 4.9. Let A, f, B, and M be as in Example 1.5.

    i38 : M = B^1/m^3;
    i39 : F = resolution(M, LengthLimit=>8)
           1      10      16      15      15      15      15      15      15
    o39 = B  <-- B   <-- B   <-- B   <-- B   <-- B   <-- B   <-- B   <-- B
          0      1       2       3       4       5       6       7       8
    o39 : ChainComplex

Thus, the sequence of Betti numbers β_{n}^{B}(M) is (1, 10, 16, 15, 15, 15, …).

    i40 : M' = restrict1 M;
    i41 : C = res M'
           1      10      15      6
    o41 = A  <-- A   <-- A   <-- A  <-- 0
          0      1       2       3      4
    o41 : ChainComplex

By Remark 4.2, the sequence rank_{B} F_{n} is (1, 10, 16, 16, 16, 16, …).

In a graded context, all cohomological entities discussed so far in the text acquire an extra grading, discussed in detail in the Appendix. The notions below are used, but not named, in [5] in a local situation.

Remark 4.10. We define the reduced Ext module for M and N over B by

extB^{•}(M, N) = ExtB^{•}(M, N) ⊗_{A} k

With the induced bigrading and action, it is a bigraded module over the bigraded ring R, that we call the reduced ring of cohomology operators.

The dimension of the K-vector space ext_{B}^{n}(M, N)_{s} is equal to the number of generators of bidegree (−n, s) in any minimal set of generators of the graded B-module Ext_{B}^{n}(M, N). We define the graded (respectively, ungraded) Ext-generator series of M and N to be the formal power series

G_{B}^{M,N}(t, u) = ∑_{n∈ℕ , s∈ℤ} dim_{K} ext_{B}^{n}(M, N)_{s} t^{n}u^{−s} ∈ ℤ[u, u^{−1}][[t]]

G_{B}^{M,N}(t) = ∑_{n=0}^{∞} dim_{K} ext_{B}^{n}(M, N) t^{n} ∈ ℤ[[t]]

There is a simple relation between these series: G_{B}^{M,N}(t) = G_{B}^{M,N}(t, 1).

Corollary 4.11. In the notation above, extB^{•}(M, N) is a finitely generated bigraded R-module, and G_{B}^{M,N}(t, u) represents a rational function of the form

\frac{g_{B}^{M,N}(t, u)}{(1 − t^{2}u^{r_{1}}) ⋯ (1 − t^{2}u^{r_{c}})}  with  g_{B}^{M,N}(t, u) ∈ ℤ[t, u, u^{−1}]

Proof. The assertion on finite generation results from Theorem 4.5 and the one on bigradings from Remark A.2. The form of the power series is then given by the Hilbert-Serre Theorem. ⊓ ⊔

5 Computation of Ext Modules

This section contains the main new computational result of the paper.

We discuss, apply, and present an algorithm that computes, for graded modules M and N over a graded complete intersection ring B, the graded B-modules Ext_{B}^{n}(M, N) simultaneously in all degrees n, along with all the cohomology operators defined in Remark 4.3.

More precisely, the input consists of a field K, a polynomial ring A = K[x_{1}, …, x_{e}] with deg′(x_{h}) > 0, a sequence f_{1}, …, f_{c} of elements of A, and finitely generated modules M, N over B = A/(f_{1}, …, f_{c}). The program checks whether the sequence consists of homogeneous elements, whether it is regular, and whether the modules M, N are graded, sending the appropriate error message if any one of these conditions is violated. If the input data pass those tests, then the program produces a presentation of the bigraded module H = ExtB^{•}(M, N), where the elements of Ext_{B}^{n}(M, N) have homological degree −n, over the polynomial ring A[X_{1}, …, X_{c}], bigraded by Deg(a) = (0, deg′(a)) and Deg(X_{i}) = (−2, − deg′(f_{i})).

The algorithm is based on the proofs of Theorems 4.1 and 4.5, and is presented in Code 5.4 below. We start with an informal discussion.

Remark 5.1. The routine resolution of Macaulay 2 finds the matrices d_{o,n}: C_{n} → C_{n−1} of the differential d_{C} of a minimal free resolution C of M over A. Matrices d_{γ,n}: C_{n} → C_{n+2|γ|−1} satisfying equation (1) for γ ∈ ℕ^{c} with |γ| > 0 are computed using the routine nullhomotopy of the Macaulay 2 language in a loop that follows the first part of the proof of Theorem 4.1.

The transposed matrix d_{γ,n}^{∗} yields an endomorphism of the free bigraded A-module C^{∗} = ⨁_{n=0}^{e} Hom_{A}(C_{n}, A) of rank m, where m = ∑_{n=0}^{e} rank_{A} C_{n}. The m × m matrix d̃_{γ,n}^{∗} describing this endomorphism is formed using the routines transpose and sum. The m × m matrix

Δ = ∑_{n=0}^{e}(−1)^{n+2|γ|−1} ∑_{\begin{matrix}γ∈ℕ^{c} \\ |γ|≤(e−n+1)/2 \end{matrix}} X^{γ} · d̃_{γ,n}^{∗}

with entries in S = A[X_{1}, …, X_{c}] defines an endomorphism of the free bigraded S-module S ⊗_{A} C^{∗}. It induces an endomorphism \overline{Δ} of the bigraded S-module S ⊗_{A} C^{∗} ⊗_{A} N. The bigraded S-module H = ExtB^{•}(M, N) is computed as H = Ker(\overline{Δ})/ Im(\overline{Δ}) using the routine homology.

In the computations we let H denote the bigraded S-module ExtB^{•}(M, N). As the graded ring S is zero in odd homological degrees, there is a canonical direct sum decomposition H = H^{even} ⊕ H^{odd} of bigraded S-modules, where ‘even’ or ‘odd’ refers to the parity of the first degree in each pair Deg(x).

We begin with an example in codimension 1, where it is possible to construct the infinite resolution and the action of S on it by hand.

Example 5.2. Consider the ring A = K[x] where the variable x is assigned degree 5, and set B = A/(x^{3}). The bigraded ring of cohomology operators then is S = A[X, x], where Deg(X) = (−2, −15) and Deg x = (0, 5).

For the B-modules M = B/(x^{2}) and N = B/(x), the bigraded S-module H = ExtB^{•}(M, N) is described by the isomorphism

H ≅ (S/(x)) ⊕ (S/(x))[1, 10]

A minimal free resolution of M over B is displayed below.

F = … ⟶ B[−30] ⟶^{−x} B[−25] ⟶^{x^{2}} B[−15] ⟶^{−x} B[−10] ⟶^{x^{2}} B ⟶ 0

This resolution is actually isomorphic to the resolution C ⊗_{A} D′ described in Remark 4.2, formed from the free resolution

C = 0 ⟶ A[−10] ⟶^{x^{2}} A ⟶ 0

of M over A and the nullhomotopy d_{ϵ_{1}} displayed in the diagram

\xymatrix{0 \ar[r] & A[−10] \ar[r]^{x^{2}} \ar[d]_{−x^{3}} & A \ar[r] \ar[d]^{−x^{3}} \ar[dl]_{−x} & 0 \\ 0 \ar[r] & A[−10] \ar[r]^{x^{2}} & A \ar[r] & 0}

The isomorphism of F with C ⊗_{A} D′ endows F with a structure of bigraded module over S, where the action of X on F is the chain map F → F of homological degree −2 and internal degree −15 that corresponds to the identity map of B in each component.

The bigraded S-module H = ExtB^{•}(M, N) is the homology of the complex

Hom_{R}(F, N) = 0 ⟶ N ⟶^{0} N[10] ⟶^{0} N[15] ⟶^{0} N[25] ⟶^{0} N[30] ⟶ ⋯

where multiplication by x ∈ S is the zero map, and for each i ≥ 0 multiplication by X ∈ S sends N[15i] to N[15i + 15] (respectively, N[10i + 10] to N[10i + 25]) by the identity map. This description provides the desired isomorphisms of bigraded S-modules.

Here is how to compute H with Macaulay 2.

Create the rings and modules.

    i42 : K = ZZ/103;
    i43 : A = K[x,Degrees=>{5}];
    i44 : B = A/(x^3);
    i45 : M = B^1/(x^2);
    i46 : N = B^1/(x);

Use the function Ext to compute H = ExtB^{•}(M, N) (the semicolon at the end of the line will suppress printing until we have assigned the name S to the ring of cohomology operators constructed by Macaulay 2.)

    i47 : H = Ext(M,N);

We may look at the ring.

    i48 : ring H
    o48 = K [$X , x, Degrees => {{-2, -15}, {0, 5}}]
               1
    o48 : PolynomialRing

Macaulay 2 has assigned the name $X_1 to the variable X. The dollar sign indicates an internal name that cannot be entered from the keyboard: if necessary, obtain the variable by entering S_0; notice that indexing in Macaulay 2 starts with 0 rather than 1. Notice also the appearance of braces rather than parentheses in Macaulay 2’s notation for bidegrees.

    i49 : degree \ gens ring H
    o49 = {{-2, -15}, {0, 5}}
    o49 : List

Assign the ring a name.

    i50 : S = ring H;

We can now look at the S-module H.

    i51 : H
    o51 = cokernel {0, 0}    | 0 x |
                   {-1, -10} | x 0 |
                                 2
    o51 : S-module, quotient of S

Each row in the display above is labeled with the bidegree of the corresponding generator of H. This presentation gives the isomorphisms of bigraded S-modules, already computed by hand earlier.

Let’s try an example with a complete intersection of codimension 2. It is not so easy to do by hand, but can be checked using the theory in [4].

Example 5.3. Begin by constructing a polynomial ring A = K[x, y].

    i52 : A = K[x,y];

Now we produce a complete intersection quotient ring B = A/(x^{3}, y^{2}).

    i53 : J = ideal(x^3,y^2);
    o53 : Ideal of A
    i54 : B = A/J;

We take N to be the B-module B/(x^{2}, xy).

    i55 : N = cokernel matrix{{x^2,x*y}}
    o55 = cokernel | x2 xy |
                                 1
    o55 : B-module, quotient of B

Remark A.1 shows that H = ExtB^{•}(N, N) is a bigraded module over the bigraded ring S = A[X_{1}, X_{2}] = K[X_{1}, X_{2}, x, y] where

Deg(X_{1}) = (−2, −3) Deg(X_{2}) = (−2, −2)
Deg(x) = (0, 1)  Deg(y) = (0, 1)

Using Macaulay 2 (below) we obtain an isomorphism of bigraded S-modules

H^{even} ≅ \frac{S}{(x^{2}, xy, y^{2}, xX_{1}, yX_{1})} ⊕ \frac{S}{(x, y)}[2, 2]

H^{odd} ≅ (\frac{S}{(x, y, X_{1})} ⊕ \frac{S}{(x, y)})^{2} [1, 1]

These isomorphisms also yield expressions for the graded B-modules:

Ext_{B}^{2i}(N, N) ≅ N · X_{2}^{i} ⊕ ⨁_{h=1}^{i} k · X_{1}^{h}X_{2}^{i−h} ⊕ ⨁_{h=0}^{i−1} k[2] · X_{1}^{h}X_{2}^{i−1−h}

Ext_{B}^{2i+1}(N, N) ≅ (k[1] · X_{2}^{i} ⊕ ⨁_{h=0}^{i} k[1] · X_{1}^{i−h}X_{2}^{h})^{2}

Now we follow in detail the computation of the bigraded S-module H.

    i56 : time H = Ext(N,N);
         -- used 0.2 seconds
    i57 : ring H
    o57 = K [$X , $X , x, y, Degrees => {{-2, -2}, {-2, -3}, {0, 1}, {0, 1}}]
               1    2
    o57 : PolynomialRing
    i58 : S = ring H;

One might wish to have a better view of the bidegrees of the variables of the ring S. An easy way to achieve this, with signs reversed, is to display the transpose of the matrix of variables.

    i59 : transpose vars S

    o59 = {2, 2}  | $X_1 |
          {2, 3}  | $X_2 |
          {0, -1} | x    |
          {0, -1} | y    |
                  4       1
    o59 : Matrix S  <--- S

The internal degrees displayed for the cohomology operators may come as a surprise. To understand what is going on, recall that these degrees are determined by a choice of minimal generators for J. At this point we do not know what is the sequence of generators that Macaulay 2 used, so let’s compute those generators the way the program did.

    i60 : trim J
                  2   3
    o60 = ideal (y , x )
    o60 : Ideal of A

Notice that Macaulay 2 has reordered the original sequence of generators. Now we see that our variable X_{1}, which corresponds to x^{3}, is denoted X_2 by Macaulay 2, and that X_{2}, which corresponds to y^{2} is denoted X_1. This explains the bidegrees used by the program.

Display H.

    i61 : H
    o61 = cokernel {-2, -2} | 0 0 0 0 0 0 0 0 0  0  0  y x 0    0    0  · · ·
                   {-1, -1} | y 0 0 0 0 x 0 0 0  0  0  0 0 $X_1 0    0  · · ·
                   {-1, -1} | 0 0 0 y 0 0 0 x 0  0  0  0 0 0    $X_1 0  · · ·
                   {-1, -1} | 0 y 0 0 x 0 0 0 0  0  0  0 0 0    0    0  · · ·
                   {-1, -1} | 0 0 y 0 0 0 x 0 0  0  0  0 0 0    0    0  · · ·
                   {0, 0}   | 0 0 0 0 0 0 0 0 y2 xy x2 0 0 0    0    $X_1y · · ·
                                 6
    o61 : S-module, quotient of S

That’s a bit large, so we want to look at the even and odd parts separately. We may compute the even and odd parts of H as the span of the genera-

tors of H with the appropriate parity. Since the two desired functions differ only in the predicate to be applied, we can generate them both by writing a function that accepts the predicate as its argument and returns a function.

    i62 : partSelector = predicate -> H -> (
             R := ring H;
             H' := prune image matrix {
                 select(
                     apply(numgens H, i -> H_{i}),
                     f -> predicate first first degrees source f
                     )
                 };
             H');
    i63 : evenPart = partSelector even; oddPart = partSelector odd;

Now to obtain the even part, H^{even}, simply type

    i65 : evenPart H

Complete Intersections  25

o65 = cokernel {-2, -2} | 0  0  0  y x 0     0     |
           {0, 0}   | y2 xy x2 0 0 $X_1y $X_1x |
                         2
o65 : S-module, quotient of S

Do the same thing for the odd part, H^{odd}.

i66 : oddPart H
o66 = cokernel {-1, -1} | 0 0 y 0 0 0 x 0 0    0    |
           {-1, -1} | 0 y 0 0 x 0 0 0 0    0    |
           {-1, -1} | 0 0 0 y 0 0 0 x 0    $X_1 |
           {-1, -1} | y 0 0 0 0 x 0 0 $X_1 0    |
                         4
o66 : S-module, quotient of S

These presentations yield the desired isomorphism of bigraded S-modules.

Here is the source code which implements the routine Ext. It is incorporated into Macaulay 2.

Code 5.4. The function Ext(M,N) computes ExtB^{•}(M, N) for graded modules M, N over a graded complete intersection ring B. The function code can be used to obtain a copy of the source code.

i67 : print code(Ext,Module,Module)
-- ../../../m2/ext.m2:82-171
Ext(Module,Module) := Module => (M,N) -> (
cacheModule := youngest(M,N);
cacheKey := (Ext,M,N);
if cacheModule#?cacheKey then return cacheModule#cacheKey;
B := ring M;
if B =!= ring N
then error "expected modules over the same ring";
if not isCommutative B
then error "'Ext' not implemented yet for noncommutative rings.";
if not isHomogeneous B
then error "'Ext' received modules over an inhomogeneous ring";
if not isHomogeneous N or not isHomogeneous M
then error "'Ext' received an inhomogeneous module";
if N == 0 then B^0
else if M == 0 then B^0
else (
p := presentation B;
A := ring p;
I := ideal mingens ideal p;
n := numgens A;
c := numgens I;
if c =!= codim B
then error "total Ext available only for complete intersections";
f := apply(c, i -> I_i);
pM := lift(presentation M,A);
pN := lift(presentation N,A);
M' := cokernel ( pM | p ** id_(target pM) );
N' := cokernel ( pN | p ** id_(target pN) );
C := complete resolution M';
X := local X;
K := coefficientRing A;
-- compute the fudge factor for the adjustment of bidegrees

fudge := if #f > 0 then 1 + max(first \ degree \ f) // 2 else 0;
S := K(monoid [X_1 .. X_c, toSequence A.generatorSymbols,
  Degrees => {
    apply(0 .. c-1, i -> {-2, - first degree f_i}),
    apply(0 .. n-1, j -> { 0,   first degree A_j})
    },
  Adjust => v -> {- fudge * v#0 + v#1, - v#0},
  Repair => w -> {- w#1, - fudge * w#1 + w#0}
  ]);
-- make a monoid whose monomials can be used as indices
Rmon := monoid [X_1 .. X_c,Degrees=>{c:{2}}];
-- make group ring, so 'basis' can enumerate the monomials
R := K Rmon;
-- make a hash table to store the blocks of the matrix
blks := new MutableHashTable;
blks#(exponents 1_Rmon) = C.dd;
scan(0 .. c-1, i ->
     blks#(exponents Rmon_i) = nullhomotopy (- f_i*id_C));
-- a helper function to list the factorizations of a monomial
factorizations := (gamma) -> (
  -- Input: gamma is the list of exponents for a monomial
  -- Return a list of pairs of lists of exponents showing the
  -- possible factorizations of gamma.
  if gamma === {} then { ({}, {}) }
  else (
    i := gamma#-1;
    splice apply(factorizations drop(gamma,-1),
      (alpha,beta) -> apply (0..i,
           j -> (append(alpha,j), append(beta,i-j))))));
scan(4 .. length C + 1,
  d -> if even d then (
    scan( exponents \ leadMonomial \ first entries basis(d,R),
      gamma -> (
        s := - sum(factorizations gamma,
          (alpha,beta) -> (
            if blks#?alpha and blks#?beta
            then blks#alpha * blks#beta
            else 0));
        -- compute and save the nonzero nullhomotopies
        if s != 0 then blks#gamma = nullhomotopy s;
        ))));
-- make a free module whose basis elements have the right degrees
spots := C -> sort select(keys C, i -> class i === ZZ);
Cstar := S^(apply(spots C,
    i -> toSequence apply(degrees C_i, d -> {i,first d})));
-- assemble the matrix from its blocks.
-- We omit the sign (-1)^(n+1) which would ordinarily be used,
-- which does not affect the homology.
toS := map(S,A,apply(toList(c .. c+n-1), i -> S_i),
  DegreeMap => prepend_0);
Delta := map(Cstar, Cstar,
  transpose sum(keys blks, m -> S_m * toS sum blks#m),
  Degree => {-1,0});
DeltaBar := Delta ** (toS ** N');
assert isHomogeneous DeltaBar;
assert(DeltaBar * DeltaBar == 0);
-- now compute the total Ext as a single homology module
cacheModule#cacheKey = prune homology(DeltaBar,DeltaBar)))

Remark 5.5. The bigraded module TorB_{•}(M, N) is the homology of the complex (C ⊗_{A} D′) ⊗_{B} N, where C ⊗_{A} D′ is the complex from Theorem 4.1. Observations parallel to Remarks 4.3 and A.1 show that TorB_{•}(M, N) inherits from D′ a structure of bigraded S-module.

It would be desirable also to have algorithms to compute TorB_{•}(M, N) in the spirit of the algorithm presented above for ExtB^{•}(M, N). If one of the modules has finite length, then each Tor_{n}^{B}(M, N) is a B-module of finite length, and the computation of TorB_{•}(M, N) can be reduced to a computation of Ext by means of Matlis duality, which here can be realized as vector space duality over the field K. However, in homology there is no equivalent for the finiteness property described in Remark 4.4; it is an open problem to devise algorithms that would compute TorB_{•}(M, N) in general.

6 Invariants of Modules

In this section we apply our techniques to develop effective methods for computation (for graded modules over a graded complete intersection) of invariants such as cohomology modules, Poincaré series, Bass series, complexity, critical degree, and support varieties. For each invariant we produce code that computes it, and illustrate the action of the code on some explicit example.

Whenever appropriate, we describe open problems on which the computational power of Macaulay 2 could be unleashed.

Notation 4.7 is used consistently throughout the section.

6.1 Cohomology Modules

We call the bigraded R-module P = ExtB^{•}(M, k) the contravariant cohomology module of M over B, and the bigraded R-module I = ExtB^{•}(k, M) the covariant cohomology module of M. Codes that display presentations of the cohomology modules are presented after a detailed discussion of an example.

Example 6.1.1. Let us create the ring B = K[x, y, z]/(x^{3}, y^{4}, z^{5}).

    i68 : A = K[x,y,z];
    i69 : J = trim ideal(x^3,y^4,z^5)
                  3   4   5
    o69 = ideal (x , y , z )
    o69 : Ideal of A
    i70 : B = A/J;

We trimmed the ideal, so that we know the generators Macaulay 2 will use.

This time we want a graded B-module M about whose homology we know nothing a priori. One way to proceed is to create M as the cokernel of some random matrix of forms; let’s try a 3 by 2 matrix of quadratic forms.

    i71 : f = random (B^3, B^{-2,-3})
    o71 = | 27x2+49xy-14y2-23xz-6yz-19z2 38x2y-34xy2+4y3+x2z+16xyz-y2z-5xz · · ·
          | -5x2+44xy+38y2+40xz+15yz+4z2 -37x2y+51xy2-36y3+26x2z-38xyz-17y · · ·
          | 21x2-30xy+32y2-47xz+7yz-50z2 -6x2y-14xy2-26y3-7x2z+41xyz+50y2z · · ·
                  3       2
    o71 : Matrix B  <--- B

We can’t read the second column of that matrix, so let’s display it separately.

    i72 : f_{1}
    o72 = | 38x2y-34xy2+4y3+x2z+16xyz-y2z-5xz2-6yz2+47z3        |
          | -37x2y+51xy2-36y3+26x2z-38xyz-17y2z+17xz2-11yz2+8z3 |
          | -6x2y-14xy2-26y3-7x2z+41xyz+50y2z+26xz2+46yz2-44z3  |
                  3       1
    o72 : Matrix B  <--- B

Now let’s make the module M.

    i73 : M = cokernel f;

We are going to produce isomorphisms of bigraded modules

P^{even} ≅ R[4, 10] ⊕ (X_{1}, X_{2})[2, 7] ⊕ (\frac{R}{(X_{1}, X_{2}, X_{3})})^{3} ⊕ R^{4}[2, 7]

P^{odd} ≅ \frac{R}{(X_{1}, X_{2}, X_{3})}[1, 2] ⊕ (\frac{R}{(X_{1})})^{3} [3, 9] ⊕ \frac{R}{(X_{1}, X_{2})}[1, 3] ⊕ R^{6}[3, 9]

over the polynomial ring R = K[X_{1}, X_{2}, X_{3}] over K, bigraded by

Deg(X_{1}) = (−2, −3)  Deg(X_{2}) = (−2, −4)  Deg(X_{3}) = (−2, −5)

Let’s compute ExtB^{•}(M, B/(x, y, z)) by the routine from Section 5.

    i74 : time P = Ext(M,B^1/(x,y,z));
         -- used 1.64 seconds
    i75 : S = ring P;

Examine the variables of S; due to transposing, their bidegrees are displayed with the opposite signs.

    i76 : transpose vars S
    o76 = {2, 3}  | $X_1 |
          {2, 4}  | $X_2 |
          {2, 5}  | $X_3 |
          {0, -1} | x    |
          {0, -1} | y    |
          {0, -1} | z    |
                  6       1
    o76 : Matrix S  <--- S

The variables x, y, and z of A annihilate P, and so appear in many places in a presentation of P. To reduce the size of such a presentation, we pass to a ring which eliminates those variables.

i77 : R = K[X_1..X_3,Degrees => {{-2,-3},{-2,-4},{-2,-5}},
Adjust => S.Adjust, Repair => S.Repair];
i78 : phi = map(R,S,{X_1,X_2,X_3,0,0,0})
o78 = map(R,S,{X , X , X , 0, 0, 0})
 1   2   3
o78 : RingMap R <--- S
i79 : P = prune (phi ** P);
i80 : transpose vars ring P
o80 = {2, 3} | X_1 |
{2, 4} | X_2 |
{2, 5} | X_3 |
3       1
o80 : Matrix R  <--- R

As we planned, the original variables x, y, z, which act trivially on the cohomology, are no longer present in the ring. Next we compute presentations

i81 : evenPart P
o81 = cokernel {-4, -10} | 0   0   0   0   0   0   0   0   0   0    |
{-4, -10} | 0   0   0   0   0   0   0   0   0   -X_2 |
{-4, -11} | 0   0   0   0   0   0   0   0   0   X_1  |
{0, 0}    | 0   0   X_3 0   0   X_2 0   X_1 0   0    |
{0, 0}    | 0   X_3 0   0   X_2 0   X_1 0   0   0    |
{0, 0}    | X_3 0   0   X_2 0   0   0   0   X_1 0    |
{-2, -7}  | 0   0   0   0   0   0   0   0   0   0    |
{-2, -7}  | 0   0   0   0   0   0   0   0   0   0    |
{-2, -7}  | 0   0   0   0   0   0   0   0   0   0    |
{-2, -7}  | 0   0   0   0   0   0   0   0   0   0    |
              10
o81 : R-module, quotient of R
i82 : oddPart P
o82 = cokernel {-1, -2} | X_3 0   X_2 0   0   0   0   X_1 |
{-3, -9} | 0   0   0   0   0   0   X_1 0   |
{-3, -9} | 0   0   0   0   0   X_1 0   0   |
{-3, -9} | 0   0   0   0   X_1 0   0   0   |
{-1, -3} | 0   X_2 0   X_1 0   0   0   0   |
{-3, -9} | 0   0   0   0   0   0   0   0   |
{-3, -9} | 0   0   0   0   0   0   0   0   |
{-3, -9} | 0   0   0   0   0   0   0   0   |
{-3, -9} | 0   0   0   0   0   0   0   0   |
{-3, -9} | 0   0   0   0   0   0   0   0   |
{-3, -9} | 0   0   0   0   0   0   0   0   |
              11
o82 : R-module, quotient of R

These presentations yield the desired isomorphisms of bigraded R-modules.

The procedure above can be automated by installing a method that will be run when Ext is presented with a module M and the residue field k. It displays a presentation of ExtB^{•}(M, k) as a bigraded R-module.

Code 6.1.2. The function changeRing H takes an S-module H and tensors it with R. It does this by constructing R and a ring homomorphism

φ: A[X_{1}, …, X_{c}] = S → R = K[X_{1}, …, X_{c}]

i83 : changeRing = H -> (
S := ring H;
K := coefficientRing S;
degs := select(degrees source vars S,
     d -> 0 != first d);
R := K[X_1 .. X_#degs, Degrees => degs,
     Repair => S.Repair, Adjust => S.Adjust];
phi := map(R,S,join(gens R,(numgens S - numgens R):0));
prune (phi ** H)
);

Code 6.1.3. The function Ext(M,k) computes ExtB^{•}(M, k) when B is a graded complete intersection, M a graded B-module, and k is the residue field of B. The result is presented as a module over the ring k[X_{1}, …, X_{c}].

i84 : Ext(Module,Ring) := (M,k) -> (
B := ring M;
if ideal k != ideal vars B
then error "expected the residue field of the module";
changeRing Ext(M,coker vars B)
);

Example 6.1.4. For a test, we run again the computation for P^{odd}.

i85 : use B;
i86 : k = B/(x,y,z);
i87 : use B;
i88 : P = Ext(M,k);
i89 : time oddPart P
-- used 0.09 seconds
o89 = cokernel {-1, -2} | X_3 0   X_2 0   0   0   0   X_1 |
      {-3, -9} | 0   0   0   0   0   0   X_1 0   |
      {-3, -9} | 0   0   0   0   0   X_1 0   0   |
      {-3, -9} | 0   0   0   0   X_1 0   0   0   |
      {-1, -3} | 0   X_2 0   X_1 0   0   0   0   |
      {-3, -9} | 0   0   0   0   0   0   0   0   |
      {-3, -9} | 0   0   0   0   0   0   0   0   |
      {-3, -9} | 0   0   0   0   0   0   0   0   |
      {-3, -9} | 0   0   0   0   0   0   0   0   |
      {-3, -9} | 0   0   0   0   0   0   0   0   |
      {-3, -9} | 0   0   0   0   0   0   0   0   |

⋯

o89 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module · · ·
 1   2   3  · · ·

We also introduce code for computing the covariant cohomology modules.

Code 6.1.5. The function Ext(k,M) computes ExtB^{•}(k, M) when B is a graded complete intersection, M a graded B-module, and k is the residue field of B. The result is presented as a module over the ring k[X_{1}, …, X_{c}].

i90 : Ext(Ring,Module) := (k,M) -> (
B := ring M;
if ideal k != ideal vars B
then error "expected the residue field of the module";
changeRing Ext(coker vars B,M)
);

Let’s see the last code in action.

Example 6.1.6. For B and M from Example 6.1.1 we compute the odd part of the covariant cohomology module ExtB^{•}(k, M).

i91 : time I = Ext(k,M);
-- used 14.81 seconds
i92 : evenPart I
o92 = cokernel {0, 6} | 37X_2  37X_1  |
{0, 6} | -18X_2 -18X_1 |
{0, 6} | -13X_2 -13X_1 |
{0, 6} | -37X_2 -37X_1 |
{0, 6} | 22X_2  22X_1  |
{0, 6} | 0      0      |
{0, 6} | X_2    X_1    |

⋯

o92 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module · · ·
1   2   3  · · ·
i93 : oddPart I
o93 = cokernel {-1, 5} | -48X_3 13X_3  34X_3  3X_3   0     0      0 · · ·
{-1, 5} | 3X_3   -40X_3 8X_3   8X_3   0     0      0 · · ·
{-1, 5} | -X_3   37X_3  -13X_3 -35X_3 0     0      0 · · ·
{-1, 4} | 4X_2   20X_2  3X_2   -47X_2 4X_1  20X_1  3X_1 · · ·
{-1, 4} | 0      51X_2  0      -30X_2 0     51X_1  0 · · ·
{-1, 4} | 0      12X_2  0      -3X_2  0     12X_1  0 · · ·
{-1, 4} | 42X_2  12X_2  46X_2  25X_2  42X_1 12X_1  46X_· · ·
{-1, 4} | 45X_2  24X_2  -14X_2 -35X_2 45X_1 24X_1  -14X · · ·
{-1, 4} | 0      0      X_2    0      0     0      X_1 · · ·
{-1, 4} | X_2    0      0      0      X_1   0      0 · · ·
{-1, 4} | 0      -40X_2 0      10X_2  0     -40X_1 0 · · ·
{-1, 4} | 0      X_2    0      0      0     X_1    0 · · ·
{-1, 3} | 0      0      0      X_1    0     0      0 · · ·

⋯

o93 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-module · · ·
1   2   3  · · ·

6.2 Poincaré Series

The graded Betti number of M over B is the number β_{ns}^{B}(M) of direct summands isomorphic to the free module B[−s] in the n’th module of a minimal free resolution of M over B. It can be computed from the equality

β_{ns}^{B}(M) = dim_{K} Ext_{B}^{n}(M, k)_{s}

The graded Poincaré series of M over B is the generating function

P_{M}^{B}(t, u) = ∑_{n∈ℕ , s∈ℤ} β_{ns}^{B}(M) t^{n}u^{−s} ∈ ℤ[u, u^{−1}][[t]]

It is easily computable with Macaulay 2 from the contravariant cohomology module, by using the hilbertSeries routine.

Code 6.2.1. The function poincareSeries2 M computes the graded Poincaré series of a graded module M over a graded complete intersection B.

First we set up a ring whose elements can serve as Poincaré series.

    i94 : T = ZZ[t,u,Inverses=>true,MonomialOrder=>RevLex];
    i95 : poincareSeries2 = M -> (
             B := ring M;
             k := B/ideal vars B;
             P := Ext(M,k);
             h := hilbertSeries P;
             T':= degreesRing P;
             substitute(h, {T'_0=>t^-1,T'_1=>u^-1})
             );

The last line in the code above replaces the variables in the Poincaré series provided by the hilbertSeries function with the variables in our ring T.

The nth Betti number β_{n}^{B}(M) of M over B is the rank of the nth module in a minimal resolution of M by free B-modules. The Poincaré series P_{M}^{B}(t) is the generating function of the Betti numbers. There are expressions

β_{n}^{B}(M) = ∑_{s=0}^{∞} β_{ns}^{B}(M)  and  P_{M}^{B}(t) = P_{M}^{B}(t, 1)

Accordingly, the code for P_{M}^{B}(t) just replaces in P_{M}^{B}(t, u) the variable u by 1.

Code 6.2.2. The function poincareSeries1 M computes the Poincaré series of a graded module M over a graded complete intersection B.

    i96 : poincareSeries1 = M -> (
             substitute(poincareSeries2 M, {u=>1_T})
             );

Now let’s use these codes in computations.

Example 6.2.3. To get a module whose Betti sequence initially decreases, we form an artinian complete intersection B′ and take M′ to be a cosyzygy in a minimal injective resolution of the residue field k. Since B′ is self-injective, this can be achieved by taking a syzygy of k, then transposing its presentation matrix. Of course, we ask Macaulay 2 to carry out these steps.

    i97 : A' = K[x,y,z];
    i98 : B' = A'/(x^2,y^2,z^3);

i99 : C' = res(B'^1/(x,y,z), LengthLimit => 6)
1       3       6       10       15       21       28
o99 = B'  <-- B'  <-- B'  <-- B'   <-- B'   <-- B'   <-- B'
0       1       2       3        4        5        6
o99 : ChainComplex
i100 : M' = coker transpose C'.dd_5
o100 = cokernel {-5} | -y 0   0  0  z  0 0 0  0 0  0  0 0  0 0 |
{-5} | -x -y  0  0  0  z 0 0  0 0  0  0 0  0 0 |
{-5} | 0  x   -y 0  0  0 z 0  0 0  0  0 0  0 0 |
{-5} | 0  0   x  -y 0  0 0 z  0 0  0  0 0  0 0 |
{-5} | 0  0   0  -x 0  0 0 0  z 0  0  0 0  0 0 |
{-5} | 0  0   0  0  y  0 0 0  0 0  0  0 0  0 0 |
{-5} | 0  0   0  0  -x y 0 0  0 0  0  0 0  0 0 |
{-5} | 0  0   0  0  0  x y 0  0 0  0  0 0  0 0 |
{-5} | 0  0   0  0  0  0 x y  0 0  0  0 0  0 0 |
{-5} | 0  0   0  0  0  0 0 -x y 0  0  0 0  0 0 |
{-5} | 0  0   0  0  0  0 0 0  x 0  0  0 0  0 0 |
{-6} | 0  0   0  0  0  0 0 0  0 -y 0  z 0  0 0 |
{-6} | 0  0   0  0  0  0 0 0  0 x  -y 0 z  0 0 |
{-6} | 0  0   0  0  0  0 0 0  0 0  -x 0 0  z 0 |
{-6} | z2 0   0  0  0  0 0 0  0 0  0  y 0  0 0 |
{-6} | 0  -z2 0  0  0  0 0 0  0 0  0  x y  0 0 |
{-6} | 0  0   z2 0  0  0 0 0  0 0  0  0 -x y 0 |
{-6} | 0  0   0  z2 0  0 0 0  0 0  0  0 0  x 0 |
{-7} | 0  0   0  0  0  0 0 0  0 0  0  0 0  0 z |
{-7} | 0  0   0  0  0  0 0 0  0 z2 0  0 0  0 y |
{-7} | 0  0   0  0  0  0 0 0  0 0  z2 0 0  0 x |
                21
o100 : B'-module, quotient of B'

Compute the Poincaré series in two variables P_{M′}^{B′}(t, u).

i101 : poincareSeries2 M'
-7     -6      -5      -6       -5       -4     2 -5      2 - · · ·
3u   + 7u   + 11u   + t*u   + 5t*u   + 9t*u   - 6t u   - 14t u · · ·
o101 = --------------------------------------------------------------- · · ·

⋯

⋯

o101 : Divide

Example 6.2.4. We compute P_{M}^{B}(t) for the module M from Example 6.1.1.

i102 : p = poincareSeries1 M
  2     3      4    5     6    7
3 + 2t - 5t  + 4t  + 12t  + t  - 4t  - t
o102 = -----------------------------------------
      2       2       2
(1 - t )(1 - t )(1 - t )
o102 : Divide

We have written some rather naïve code for simplifying rational functions as above. It locates factors of the form 1 − t^{n} in the denominator, factors out 1−t, and factors out 1+t if n is even. Keeping the factors of the denominator separate, it then cancels as many of them as it can with the numerator.

i103 : load "simplify.m2"
i104 : simplify p
                 2     3     4     5    6
       3 - t - 4t  + 8t  + 4t  - 3t  - t
o104 = ----------------------------------
                       2       3
                (1 + t) (1 - t)
o104 : Divide

In this case, it succeeded in canceling a factor of 1 + t.

Example 6.2.5. We compute some Betti numbers for M. We use the division operation in the Euclidean domain T′ = ℚ[t, t^{−1}] with the reverse monomial ordering to compute power series expansions.

i105 : T' = QQ[t,Inverses=>true,MonomialOrder=>RevLex];
i106 : expansion = (n,q) -> (
           t := T'_0;
           rho := map(T',T,{t,1});
           num := rho value numerator q;
           den := rho value denominator q;
           n = n + first degree den;
           n = max(n, first degree num + 1);
           (num + t^n) // den
           );

Now let’s expand the Poincaré series up to t^{20}.

i107 : expansion(20,p)
                  2      3      4      5      6      7      8      9 · · ·
o107 = 3 + 2t + 4t  + 10t  + 15t  + 25t  + 32t  + 46t  + 55t  + 73t  + · · ·
o107 : T'

Just to make sure, let’s compare the first few coefficients with the more pedestrian way of doing the computation, one Ext module at a time.

i108 : psi = map(K,B)
o108 = map(K,B,{0, 0, 0})
o108 : RingMap K <--- B
i109 : apply(10, i -> rank (psi ** Ext^i(M,coker vars B)))
o109 = {3, 2, 4, 10, 15, 25, 32, 46, 55, 73}
o109 : List

Now we restore t to its original use.

i110 : use T;

6.3 Complexity

The complexity of M is the least d ∈ ℕ such that the function

n ↦ dim_{K} Ext_{B}^{n}(M, k)

is bounded above by a polynomial of degree d − 1 (with the convention that the zero polynomial has degree −1). This number, denoted cx_{B}(M), was introduced in [2] to measures on a polynomial scale the rate of growth of the Betti numbers of M. It is calibrated so that cx_{B}(M) = 0 if and only if M has finite projective dimension. Corollary 4.11 yields

P_{M}^{B}(t) = \frac{p_{M}^{B}(t)}{(1 − t^{2})^{c}}  for some  p_{M}^{B}(t) ∈ ℤ[t]

Decomposing the right hand side into partial fractions, one sees that cx_{R}(M) equals the order of the pole of P_{M}^{B}(t) at t = 1; in particular, cx_{R}(M, N) ≤ c. However, since we get P_{M}^{B}(t) from a computation of the R-module P = ExtB^{•}(M, k), it is natural to obtain cx_{R}(M) as the Krull dimension of P.

Code 6.3.1. The function complexity M yields the complexity of a graded module M over a graded complete intersection ring B.

    i111 : complexity = M -> dim Ext(M,coker vars ring M);

Example 6.3.2. We compute cx_{B}(M) for M from Example 6.1.1.

    i112 : complexity M
    o112 = 3

6.4 Critical Degree

The critical degree of M is the least integer ℓ for which the minimal resolution F of M admits a chain map g: F → F of degree m < 0, such that g_{m+n}: F_{m+n} → F_{n} is surjective for all n > ℓ. This number, introduced in [6] and denoted crdeg_{B} M, is meaningful over every graded ring B. It is equal to the projective dimension whenever the latter is finite.

When B is a complete intersection it is proved in [6, Sect. 7] that crdeg_{B} M is finite and yields important information on the Betti sequence:

• if cx_{B} M ≤ 1, then β_{n}^{B}(M) = β_{n+1}^{B}(M) for all n > crdeg_{B} M.

• if cx_{B} M ≥ 2, then β_{n}^{B}(M) < β_{n+1}^{B}(M) for all n > crdeg_{B} M.

Thus, it is interesting to know crdeg_{B} M, or at least to have a good upper bound. Here is what is known, in terms of h = depth B − depth_{B} M.

• if cx_{B} M = 0, then crdeg_{B} M = h.

• if cx_{B} M = 1, then crdeg_{B} M ≤ h.

• if cx_{B} M = 2, then crdeg_{B} M ≤ h + 1 + max{2β_{h}^{B}(M) − 1 , 2β_{h+1}^{B}(M)}.

The first part is the Auslander-Buchsbaum Equality, the second part is proved in [11, Sect. 6], the third is established in [4, Sect. 7].

These upper bounds are realistic: there exist examples in complexity 1 when they are reached, and examples in complexity 2 when they are not more than twice the actual value of the critical degree. If cx_{R} M ≥ 3, then it is an open problem whether the critical degree of M can be bounded in terms that do not depend on the action of the cohomology operators.

However, in every concrete case crdeg_{R} M can be computed explicitly by using Macaulay 2. Indeed, it is proved in [6, Sect. 7] that crdeg_{R} M is equal to the highest degree of a non-zero element in the socle of the R-module ExtB^{•}(M, k), that is, the submodule consisting of elements annihilated by (X_{1}, …, X_{c}). The socle is naturally isomorphic to Hom_{B}(k, ExtB^{•}(M, k)), so it can be obtained by standard Macaulay 2 routines.

For instance, for the module M from Example 6.1.1, we get

    i113 : k = coker vars ring H;
    i114 : prune Hom(k,H)
    o114 = 0
    o114 : K [$X , $X , x, y, Degrees => {{-2, -2}, {-2, -3}, {0, 1}, {0, · · ·
                1    2

The degrees displayed above show that crdeg_{R} M = 1.

Of course, one might prefer to see the number crdeg_{B} M directly.

Code 6.4.1. The function criticalDegree M computes the critical degree of a graded module M over a graded complete intersection ring B.

    i115 : criticalDegree = M -> (
              B := ring M;
              k := B / ideal vars B;
              P := Ext(M,k);
              k  = coker vars ring P;
              - min ( first \ degrees source gens prune Hom(k,P))
              );

Let’s test the new code in a couple of cases.

Example 6.4.2. For the module M of Example 6.1.1 we have

    i116 : criticalDegree M
    o116 = 1

in accordance with what was already observed above.

For the module M′ of Example 6.2.3 we obtain

    i117 : criticalDegree M'
    o117 = 5

6.5 Support Variety

Let \overline{K} denote an algebraic closure of K. The support variety V_{B}^{∗}(M) is the algebraic set in \overline{K}^{c} defined by the annihilator of ExtB^{•}(M, k) over R = K[X_{1}, …, X_{c}]. This ‘geometric image’ of the contravariant cohomology module was introduced in [2] and used to study the minimal free resolution of M. The dimension of the support variety is equal to the complexity cx_{R}(M), that we can already compute. There is no need to associate a variety to the covariant cohomology module, see 7.4.

Since V_{B}^{∗}(M) is defined by homogeneous equations, it is a cone in \overline{K}^{c}. An important open problem is whether every cone in \overline{K}^{c} that can be defined over K is the variety of some B-module M. By [2, Sect. 6] all linear subspaces and all hypersurfaces arise in this way, but little more is known in general.

Feeding our computation of ExtB^{•}(M, k) to standard Macaulay 2 routines we write code for determining a set of equations defining V_{B}^{∗}(M).

Code 6.5.1. The function supportVarietyIdeal M yields a set of polynomial equations with coefficients in K, defining the support variety V_{B}^{∗}(M) in \overline{K}^{c} for a graded module M over a graded complete intersection B.

    i118 : supportVarietyIdeal = M -> (
              B := ring M;
              k := B/ideal vars B;
              ann Ext(M,k)
              );

As before, we illustrate the code with explicit computations. In view of the open problem mentioned above, we fix a ring and a type of presentation, then change randomly the presentation matrix in the hope of finding an ‘interesting’ variety. The result of the experiment is assessed in Remark 6.5.3.

Example 6.5.2. Let 𝔽_{7} denote the prime field with 7 elements, and form the zero-dimensional complete intersection B′′ = 𝔽_{7}[x, y, z]/(x^{7}, y^{7}, z^{7}).

    i119 : K'' = ZZ/7;
    i120 : A'' = K''[x,y,z];
    i121 : J'' = ideal(x^7,y^7,z^7);
    o121 : Ideal of A''
    i122 : B'' = A''/J'';

We apply the code above to search, randomly, for some varieties. Using scan we print the results from several runs with one command.

    i123 : scan((1,1) .. (3,3), (r,d) -> (
                   V := cokernel random (B''^r,B''^{-d});
                   << "--------------------------------------------------- · · ·
                   << endl
                   << "V = " << V << endl
                   << "support variety ideal = "
                   << timing supportVarietyIdeal V
                   << endl))

------------------------------------------------------------------
V = cokernel | -2x+3y+2z |
support variety ideal = ideal (X  - 2X , X  + X )
                                2     3   1    3
                        -- 0.7 seconds
------------------------------------------------------------------
V = cokernel | 3x2-2xy+xz-3yz |
support variety ideal = ideal(X  + 3X  + 2X )
                               1     2     3
                        -- 0.48 seconds
------------------------------------------------------------------
V = cokernel | -2x3+3x2y+y3-x2z-3y2z-xz2-3z3 |
support variety ideal = 0
                        -- 1.54 seconds
------------------------------------------------------------------
V = cokernel | -3y+3z |
             | -2x-2y |
support variety ideal = ideal(X  + X  - X )
                               1    2    3
                        -- 0.86 seconds
------------------------------------------------------------------
V = cokernel | -x2+2y2-xz+yz+3z2 |
             | 2xy-3xz-3yz-2z2   |
support variety ideal = 0
                        -- 1.31 seconds
------------------------------------------------------------------
V = cokernel | -x3-2x2y-xy2-2xyz+3y2z+2xz2-yz2-2z3 |
             | 2xy2+3y3-3x2z-2y2z+2xz2+2yz2        |
support variety ideal = 0
                        -- 2.21 seconds
------------------------------------------------------------------
V = cokernel | 3x-y-z   |
             | -3x-y+2z |
             | x-2y+3z  |
support variety ideal = 0
                        -- 1.1 seconds
------------------------------------------------------------------
V = cokernel | 2x2-2xy+2y2+2xz-3z2   |
             | -x2+2xy+y2+3xz+3yz-z2 |
             | -2xz+2yz+2z2          |
support variety ideal = 0
                        -- 1.67 seconds
------------------------------------------------------------------
V = cokernel | 2x3-x2y+2xy2-y3-2xyz+3y2z+xz2+3yz2+z3  |
             | -3x3-3x2y+3xy2+2x2z+3xyz-3y2z-xz2      |
             | -3x3-2x2y-xy2-2y3-2xyz+y2z+xz2+3yz2-z3 |
support variety ideal = 0
                        -- 1.92 seconds

Remark 6.5.3. The (admittedly short) search above did not turn up any non-linear variety. This should be contrasted with the known result that every cone in \overline{𝔽}_{7}^{3} is the support variety of some B′′-module.

Indeed, B′′ is isomorphic to the group algebra 𝔽_{7}[G] of the elementary abelian group G = ℂ_{7} × ℂ_{7} × ℂ_{7}, where ℂ_{7} is a cyclic group of order 7. It is shown in [2, Sect. 7] that V_{B′′}^{∗}(V) is equal to a variety V_{G}^{∗}(V), defined in a different way in [9] by Carlson. He proves in [10] that if K is a field of characteristic p > 0, and G is an elementary abelian p-group of rank c, then every cone in \overline{K}^{c} is the rank variety of a finitely generated module over K[G].

6.6 Bass Series

The graded Bass number μ_{B}^{ns}(M) of M over B is the number of direct summands isomorphic to U[s] in the n’th module of a minimal graded injective resolution of M over B, where U is the injective envelope of k. It satisfies

μ_{B}^{ns}(M) = dim_{K} Ext_{B}^{n}(k, M)_{s}

The graded Bass series of M over B is the generating function

I_{B}^{M}(t, u) = ∑_{n∈ℕ , s∈ℤ} μ_{B}^{ns}(M) t^{n}u^{s} ∈ ℤ[u, u^{−1}][[t]]

It is easily computable with Macaulay 2 from the covariant cohomology module, by using the hilbertSeries routine.

Code 6.6.1. The function bassSeries2 M computes the graded Bass series of a graded module M over a graded complete intersection B.

    i124 : bassSeries2 = M -> (
              B := ring M;
              k := B/ideal vars B;
              I := Ext(k,M);
              h := hilbertSeries I;
              T':= degreesRing I;
              substitute(h, {T'_0=>t^-1, T'_1=>u})
              );

As with Betti numbers and Poincaré series, there are ungraded versions of Bass numbers and Bass series; they are given, respectively, by

μ_{B}^{n}(M) = ∑_{s=0}^{∞} μ_{B}^{ns}(M)  and  I_{B}^{M}(t) = I_{B}^{M}(t, 1)

Code 6.6.2. The function bassSeries1 M computes the Bass series of a graded module M over a graded complete intersection B.

    i125 : bassSeries1 = M -> (
              substitute(bassSeries2 M, {u=>1_T})
              );

Now let’s use these codes in computations.

Example 6.6.3. For k, the residue field of B, the contravariant and covariant cohomology modules coincide. For comparison, we compute side by side the Poincaré series and the Bass series of k, when B = K[x, y, z]/(x^{3}, y^{4}, z^{5}) is the ring defined in Example 6.1.1.

    i126 : use B;
    i127 : L = B^1/(x,y,z);
    i128 : p = poincareSeries2 L
                            2 2    3 3
               1 + 3t*u + 3t u  + t u
    o128 = ------------------------------
                 2 3       2 4       2 5
           (1 - t u )(1 - t u )(1 - t u )
    o128 : Divide
    i129 : b = bassSeries2 L
                      -1     2 -2    3 -3
              1 + 3t*u   + 3t u   + t u
    o129 = ---------------------------------
                 2 -3       2 -4       2 -5
           (1 - t u  )(1 - t u  )(1 - t u  )
    o129 : Divide

The reader would have noticed that the two series are different, and that one is obtained from the other by the substitution u ↦ u^{−1}. This underscores the different meanings of the graded Betti numbers and Bass numbers.

Example 6.6.4. Here we compute the graded and ungraded Bass series of the B-module M of Example 6.1.1.

    i130 : b2 = bassSeries2 M
             6      3       4       5    2 2    2 3     3     3      3 2 · · ·
           7u  + t*u  + 9t*u  + 3t*u  - t u  - t u  - 4t  - 3t u - 3t u  + · · ·
    o130 = --------------------------------------------------------------- · · ·
                                        2 -3       2 -4       2 -5
                                  (1 - t u  )(1 - t u  )(1 - t u  )
    o130 : Divide
    i131 : b1 = bassSeries1 M;
    i132 : simplify b1
                      2     3     4
           7 + 6t - 8t  - 2t  + 3t
    o132 = ------------------------
                      2       3
               (1 + t) (1 - t)
    o132 : Divide

7 Invariants of Pairs of Modules

In this final section we compute invariants of a pair (M, N) of graded modules over a graded complete intersection B, derived from the reduced Ext module extB^{•}(M, N) defined in Remark 4.10. The treatment here is parallel to that in Section 6. When one of the modules M or N is equal to the residue field k, the invariants discussed below reduce to those treated in that section.

7.1 Reduced Ext Module The reduced Ext module extB^{•}(M, N) = ExtB^{•}(M, N)⊗_{A} k defined in Remark 4.10 is computed from our basic routine Ext(M,N) by applying the function changeRing defined in Code 6.1.2.

Code 7.1.1. The function ext(M,N) computes extB^{•}(M, N) when M and N are graded modules over a graded complete intersection B.

i133 : ext = (M,N) -> changeRing Ext(M,N);

Example 7.1.2. Using the ring B = K[x, y, z]/(x^{3}, y^{4}, z^{5}) and the module M created in Example 6.1.1, we make new modules

N = B/(x^{2} + z^{2} , y^{3})  and  N′ = B/(x^{2} + z^{2} , y^{3} − 2z^{3})

i134 : use B;
i135 : N = B^1/(x^2 + z^2,y^3);
i136 : time rH = ext(M,N);
-- used 15.91 seconds
i137 : evenPart rH
o137 = cokernel {-4, -9} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{0, 2}   | 0   0   0   0   0   0   0   X_3 0   0   0 · · ·
{0, 2}   | 0   0   0   0   0   X_3 0   0   0   0   0 · · ·
{0, 2}   | 0   0   0   0   0   0   X_3 0   0   0   0 · · ·
{0, 2}   | 0   0   0   0   X_3 0   0   0   0   0   0 · · ·
{0, 2}   | 0   0   0   X_3 0   0   0   0   0   0   0 · · ·
{0, 2}   | 0   0   X_3 0   0   0   0   0   0   0   0 · · ·
{0, 2}   | 0   X_3 0   0   0   0   0   0   0   0   X_2 · · ·
{0, 2}   | X_3 0   0   0   0   0   0   0   0   X_2 0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{0, 1}   | 0   0   0   0   0   0   0   0   X_2 0   0 · · ·

⋯

o137 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-modul · · ·
1   2   3  · · ·
i138 : oddPart rH
o138 = cokernel {-3, -6} | 0      0   0   0   0   0   0   0   0   0 · · ·
{-3, -6} | 0      0   0   0   0   0   0   0   0   0 · · ·
{-3, -6} | 0      0   0   0   0   0   0   0   0   0 · · ·
{-3, -6} | 0      0   0   0   0   0   0   0   0   0 · · ·
{-3, -6} | 0      0   0   0   0   0   0   0   0   0 · · ·
{-1, -1} | -39X_3 0   0   0   0   0   0   0   X_2 0 · · ·
{-1, -1} | 31X_3  0   0   0   0   0   0   X_2 0   0 · · ·
{-1, -1} | -34X_3 0   0   0   0   0   X_2 0   0   0 · · ·
{-1, -1} | -35X_3 0   0   0   0   X_2 0   0   0   0 · · ·

{-1, -1} | -29X_3 0   0   0   X_2 0   0   0   0   0 · · ·
{-1, -1} | 12X_3  0   0   X_2 0   0   0   0   0   0 · · ·
{-1, -1} | -8X_3  0   X_2 0   0   0   0   0   0   0 · · ·
{-1, -1} | X_3    X_2 0   0   0   0   0   0   0   0 · · ·
{-3, -7} | 0      0   0   0   0   0   0   0   0   X_1 · · ·

⋯

o138 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-modul · · ·
1   2   3  · · ·
i139 : N' = B^1/(x^2 + z^2,y^3 - 2*z^3);
i140 : time rH' = ext(M,N');
-- used 20.26 seconds
i141 : evenPart rH'
o141 = cokernel {-4, -8} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-4, -8} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-4, -9} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-4, -9} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-4, -9} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-4, -9} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-4, -9} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-4, -9} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{0, 2}   | 0   0   0   0   0   0   X_3 0   0   0   0 · · ·
{0, 2}   | 0   0   0   0   0   X_3 0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{0, 2}   | 0   0   0   0   X_3 0   0   0   0   0   0 · · ·
{0, 2}   | 0   0   X_3 0   0   0   0   0   0   0   X_2 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{0, 2}   | 0   0   0   X_3 0   0   0   0   0   0   0 · · ·
{0, 2}   | 0   X_3 0   0   0   0   0   0   0   X_2 0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{-2, -4} | 0   0   0   0   0   0   0   0   0   0   0 · · ·
{0, 2}   | X_3 0   0   0   0   0   0   0   0   0   0 · · ·
{0, 1}   | 0   0   0   0   0   0   0   X_2 0   0   0 · · ·
{0, 1}   | 0   0   0   0   0   0   0   0   X_2 0   0 · · ·

⋯

o141 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-modul · · ·
1   2   3  · · ·
i142 : oddPart rH'
o142 = cokernel {-3, -6} | 0   0   0   0   0   0   0   0   -42X_2 21X_· · ·
{-3, -6} | 0   0   0   0   0   0   0   0   -6X_2  -32X · · ·
{-3, -6} | 0   0   0   0   0   0   0   0   -8X_2  12X_· · ·
{-3, -6} | 0   0   0   0   0   0   0   0   26X_2  -36X · · ·
{-3, -6} | 0   0   0   0   0   0   0   0   50X_2  18X_· · ·

                    {-3, -6} | 0   0   0   0   0   0   0   0   31X_2  7X_2 · · ·
                    {-3, -7} | 0   0   0   0   0   0   0   0   0      0 · · ·
                    {-3, -7} | 0   0   0   0   0   0   0   0   0      0 · · ·
                    {-3, -7} | 0   0   0   0   0   0   0   0   0      0 · · ·
                    {-3, -7} | 0   0   0   0   0   0   0   0   0      0 · · ·
                    {-3, -7} | 0   0   0   0   0   0   0   0   0      X_1 · · ·
                    {-3, -7} | 0   0   0   0   0   0   0   0   X_1    0 · · ·
                    {-1, -2} | 0   0   0   X_2 0   0   0   X_1 0      0 · · ·
                    {-1, -2} | 0   0   X_2 0   0   0   X_1 0   0      0 · · ·
                    {-1, -2} | 0   X_2 0   0   0   X_1 0   0   0      0 · · ·
                    {-1, -2} | X_2 0   0   0   X_1 0   0   0   0      0 · · ·

⋯

    o142 : K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]-modul · · ·
            1   2   3  · · ·

7.2 Ext-generator Series

The Ext-generator series G_{B}^{M,N}(t, u) defined in Remark 4.10 generalizes both the Poincaré series of M and the Bass series of N, as seen from the formulas

P_{M}^{B}(t, u) = G_{B}^{M,k}(t, u)  and  I_{B}^{N}(t, u) = G_{B}^{k,N}(t, u^{−1})

Similar equalities hold for the corresponding series in one variable. Codes for computing Ext-generator series are easy to produce.

Code 7.2.1. The function extgenSeries2(M,N) computes G_{B}^{M,N}(t, u) when M and N are graded modules over a graded complete intersection B, and presents it as a rational function with denominator (1 − t^{2}u^{r_{1}}) ⋯ (1 − t^{2}u^{r_{c}}).

    i143 : extgenSeries2 = (M,N) -> (
              H := ext(M,N);
              h := hilbertSeries H;
              T':= degreesRing H;
              substitute(h, {T'_0=>t^-1,T'_1=>u^-1})
              );

Code 7.2.2. The function extgenSeries1(M,N) computes the Ext-genera-tor series in one variable for a pair (M, N) of graded modules over a graded complete intersection B.

    i144 : extgenSeries1 = (M,N) -> (
              substitute(extgenSeries2(M,N), {u=>1_T})
              );

Example 7.2.3. For M, N, and N′ as in Example 7.1.2 we obtain

    i145 : time extgenSeries2(M,N)
         -- used 0.44 seconds
             -2    -1            2      2 2     2 3     2 4     3 4     3 · · ·
           8u   + u   + 8t*u - 8t u - 9t u  - 9t u  + 7t u  - 8t u  - 8t u · · ·
    o145 = --------------------------------------------------------------- · · ·

⋯
⋯

    o145 : Divide

i146 : g=time extgenSeries1(M,N)
     -- used 0.13 seconds
                   2      3      4     5     6    7
       9 + 8t - 19t  - 11t  + 17t  + 4t  - 7t  - t
o146 = --------------------------------------------
                       2       2       2
                 (1 - t )(1 - t )(1 - t )
o146 : Divide
i147 : simplify g
                 2     3    4
       9 - t - 9t  + 6t  + t
o147 = ----------------------
                         2
           (1 + t)(1 - t)
o147 : Divide
i148 : time extgenSeries2(M,N')
     -- used 0.15 seconds
         -2     -1       2     2      2 2     2 3      2 4     3 5  · · ·
       7u   + 2u   + 4t*u  - 7t u - 9t u  - 9t u  + 16t u  - 4t u  + 2 · · ·
o148 = --------------------------------------------------------------- · · ·

⋯

⋯

o148 : Divide
i149 : g'=time extgenSeries1(M,N')
     -- used 0.18 seconds
                  2     3     4     5     6
       9 + 4t - 9t  + 4t  + 8t  - 2t  - 2t
o149 = ------------------------------------
                   2       2       2
             (1 - t )(1 - t )(1 - t )
o149 : Divide
i150 : simplify g'
                  2     3     5
       9 - 5t - 4t  + 8t  - 2t
o150 = ------------------------
                  2       3
           (1 + t) (1 - t)
o150 : Divide

7.3 Complexity

The complexity of a pair of B-modules (M, N) is the least d ∈ ℕ such that there exists a polynomial of degree d − 1 bounding above the function

n ↦ dim_{K} ext_{B}^{n}(M, N)

It is denoted cx_{B}(M, N) and measures on a polynomial scale the rate of growth of the minimal number of generators of Ext_{B}^{n}(M, N); it vanishes if and only if Ext_{B}^{n}(M, N) = 0 for all n ≫ 0. Corollary 4.11 yields

G_{B}^{M,N}(t) = \frac{h(t)}{(1 − t^{2})^{c}}  for some  h(t) ∈ ℤ[t]

so decomposition into partial fractions shows that cx_{R}(M, N) equals the order of the pole of G_{B}^{M,N}(t) at t = 1. Alternatively, cx_{R}(M, N) can be obtained by computing the Krull dimension of a reduced Ext module over R.

Code 7.3.1. The function complexityPair(M,N) yields the complexity of a pair (M, N) of graded modules over a graded complete intersection ring B.

    i151 : complexityPair = (M,N) -> dim ext(M,N);

Example 7.3.2. For M, N, and N′ as in Example 7.1.2 we have

    i152 : time complexityPair(M,N)
         -- used 0.39 seconds
    o152 = 2
    i153 : time complexityPair(M,N')
         -- used 0.12 seconds
    o153 = 3

7.4 Support Variety

Let \overline{K} be an algebraic closure of K. The support variety V_{B}^{∗}(M, N) is the algebraic set in \overline{K}^{c} defined by the annihilator of extB^{•}(M, N) over R = K[X_{1}, …, X_{c}]. It is clear from the definition that V_{B}^{∗}(M, k) is equal to the variety V_{B}^{∗}(M) defined in 6.5. One of the main results of [5, Sect. 5] shows that V_{B}^{∗}(M, N) = V_{B}^{∗}(M) ∩ V_{B}^{∗}(N), and, as a consequence, V_{B}^{∗}(M) = V_{B}^{∗}(M, M) = V_{B}^{∗}(k, M). The dimension of V_{B}^{∗}(M, N) is equal to the complexity cx_{R}(M, N), already computed above.

Feeding our computation of extB^{•}(M, N) to standard Macaulay 2 routines we write code for determining a set of equations defining V_{B}^{∗}(M, N).

Code 7.4.1. The function supportVarietyPairIdeal(M,N) yields a set of polynomial equations with coefficients in K, defining the variety V_{B}^{∗}(M, N) in \overline{K}^{c} for graded modules M, N over a graded complete intersection B.

    i154 : supportVarietyPairIdeal = (M,N) -> ann ext(M,N);

Example 7.4.2. For M, N, and N′ as in Example 7.1.2 we have

    i155 : time supportVarietyPairIdeal(M,N)
         -- used 0.97 seconds
    o155 = ideal X
                  1
    o155 : Ideal of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]
                        1   2   3

    i156 : time supportVarietyPairIdeal(M,N')
         -- used 1.73 seconds
    o156 = 0
    o156 : Ideal of K [X , X , X , Degrees => {{-2, -3}, {-2, -4}, {-2, -5}}]
                        1   2   3

Appendix A. Gradings

Our purpose here is to set up a context in which the theory of Sections 3 and 4 translates into data that Macaulay 2 can operate with.

A first point is to develop a flexible and consistent scheme within which to handle the two kinds of degrees we deal with—the internal gradings of the input, and the homological degrees created during computations.

A purely technological difficulty arises when our data are presented to Macaulay 2: it only accepts multidegrees whose first component is positive, which is not the case for rings of cohomology operators.

A final point, mostly notational, tends to generate misunderstanding and errors if left unaddressed. On the printed page, the difference between homological and cohomological conventions is handled graphically by switching between sub- and super-indices, and reversing signs; both authors were used to it, but Macaulay 2 has so far refused to read TEX printouts.

The raison d’être of the following remarks was to debug communications between the three of us.

Remark A.1. Only one degree, denoted deg, appears in Section 2, and anywhere in the main text before Notation 4.7; when needed, it will be referred to as homological degree.

Assume that A = ⨁_{h∈ℤ} A_{h} is a graded ring. Any element a of A_{h} is said to be homogeneous of internal degree h; the notation for this is deg′ a = h. Let f = {f_{1}, …, f_{c}} be a Koszul-regular set consisting of homogeneous elements. We give the ring B = A/(f) the induced grading, and extend the notation for internal degree to all graded B-modules M.

Let M be a graded B-module. For any integer e, we let M[e] denote the graded module with M[e]_{d} = M_{d+e}. We take a projective resolution C of M by graded A-modules, with differential d_{C} preserving internal degrees. Recall that we have been writing deg x = n to indicate that x is an element in C_{n}; we refer to this situation also by saying that x has homological degree x. We combine both degrees in a single bidegree, denoted Deg, as follows:

Deg x = (deg x, deg′ x)

For a bigraded module H and pair of integers (e, e′), we let H[e, e′] denote the bigraded module with H[e, e′]_{d,d′} = H_{d+e,d′+e′}.

Because deg Y_{i} = 2, the elements of the free B-module Q have homological degree 2. We introduce an internal grading deg′ on Q by setting deg′ Y_{i} = r_{i}, where r_{i} = deg′ f_{i} for i = 1, …, c. With this choice, the homomorphism f: Q → A acquires internal degree 0 (of course, this was the reason behind our choice of grading in the first place). The internal grading on Q defines, in the usual way, internal gradings on all symmetric and exterior powers of Q and Q^{∗}; in particular, deg′ Y^{(α)} = ∑ α_{i}r_{i} and deg′ Y^{∧β} = ∑ β_{i}r_{i}. Thus, the ring S = A[X_{1}, …, X_{c}] acquires a bigrading defined by Deg a = (0, h) for all elements a ∈ A_{h} and Deg X_{i} = (−2, −r_{i}) for i = 1, …, c.

In this context, we call S the bigraded ring of cohomology operators. Since the differential d_{C} has internal degree 0, a null-homotopic chain map

C → C which is homogeneous of internal degree r will have a null-homotopy that is itself homogeneous of internal degree r. In the proof of Theorem 3.1 we construct maps d_{γ} as null-homotopies, so we may arrange for them to be homogeneous maps with deg′ d_{γ} = ∑ γ_{i}d_{i}. Our grading assumptions guarantee that d is homogeneous with Deg d = (−1, 0).

With these data, the B-free resolution C ⊗_{A} D′ provided by Theorem 4.1 becomes one by graded B-modules, and its differential ∂ is homogeneous with Deg ∂ = (−1, 0). For any graded B-module N, these properties are transferred to the complex Hom_{B}(C ⊗_{A} D′, N) and its differential.

We sum up the contents of Remarks 4.3 and A.1.

Remark A.2. If A is a graded ring, {f_{1}, …, f_{c}} is a Koszul-regular set consisting of homogeneous elements, B is the residue ring A/(f), and M, N are graded B-modules, then ExtB^{•}(M, N) is a bigraded module over the ring S = A[X_{1}, …, X_{c}], itself bigraded by setting Deg a = (0, deg′(a)) for all homogeneous a ∈ A and Deg X_{i} = (−2, − deg′(f_{i})) for i = 1, …, c.

Remark A.3. The core algorithms of the program can handle multi-graded rings and modules, but only if each variable in the ring has positive first component of its multi-degree. At the moment, a user who needs a multigraded ring R which violates this requirement must provide two linear maps: R.Adjust, that transforms the desired multi-degrees into ones satisfying this requirement, as well as its inverse map, R.Repair. The routine Ext, discussed above, incorporates such adjustments for the rings of cohomology operators it creates. When we wish to create related rings with some of the same multidegrees, we may use the same adjustment operator.

References

1. David J. Anick: A counterexample to a conjecture of Serre. Ann. of Math. (2), 115(1):1–33, 1982 and 116(3):661, 1982.

2. Luchezar L. Avramov: Modules of finite virtual projective dimension. Invent. Math., 96(1):71–101, 1989.

3. Luchezar L. Avramov: Infinite free resolutions. In Six lectures on commutative algebra (Bellaterra, 1996), pages 1–118. Progress in Math., vol 166, Birkhäuser, Basel, 1998.

4. Luchezar L. Avramov and Ragnar-Olaf Buchweitz: Homological algebra modulo a regular sequence with special attention to codimension two. J. Algebra, 230(1):24–67, 2000.

5. Luchezar L. Avramov and Ragnar-Olaf Buchweitz: Support varieties and cohomology over complete intersections. Invent. Math., 142(2):285–318, 2000.

6. Luchezar L. Avramov, Vesselin N. Gasharov, and Irena V. Peeva: Complete intersection dimension. Inst. Hautes Études Sci. Publ. Math., 86:67–114, 1997.

7. Luchezar L. Avramov and Irena Peeva: Finite regularity and Koszul algebras. Amer. J. Math, 123(2):275–281, 2001.

8. Luchezar L. Avramov and Li-Chuan Sun: Cohomology operators defined by a deformation. J. Algebra, 204(2):684–710, 1998.

9. Jon F. Carlson: The varieties and the cohomology ring of a module. J. Algebra, 85(1):104–143, 1983.

10. Jon F. Carlson: The variety of an indecomposable module is connected. Invent. Math., 77(2):291–299, 1984.

11. David Eisenbud: Homological algebra on a complete intersection, with an application to group representations. Trans. Amer. Math. Soc., 260(1):35–64, 1980.

12. Tor H. Gulliksen: A change of ring theorem with applications to Poincaré series and intersection multiplicity. Math. Scand., 34(1):167–183, 1974.

13. Vikram Mehta: Endomorphisms of complexes and modules over Golod rings. Thesis. University of California, Berkeley, CA, 1975.

14. Jan-Erik Roos: Commutative non-Koszul algebras having a linear resolution of arbitrarily high order. Applications to torsion in loop space homology. C. R. Acad. Sci. Paris Sér. I Math., 316(11):1123–1128, 1993.

15. Jack Shamash: The Poincaré series of a local ring. J. Algebra, 12:453–470,

Index

assert 7

Betti number 32 bidegree 46 bigraded ring of co-

homology operators 47

bounded filtration 12

Cartan map 10

code 25

complete intersection 1 complexity 35, 44 contravariant coho-

mology module 27

covariant cohomology

module 27 critical degree 35

dd 4

divided powers algebra 9 Ext 1, 25 Ext-generator series 19 exterior algebra 9

generates 5 graded Bass number 39 graded Bass series 39 graded Betti number

31 graded complete

intersection 1 graded Poincaré series

32

hilbertSeries 32, 39

homogeneous derivation

9 homological degree 46

homology 21

internal degree 46

Koszul map 10 Koszul-regular 16

Leibniz rule 9

matrix factorization 3

                        nullhomotopy 4

Poincaré series 32

reduced Ext module 19 reduced ring of cohomology operators 19

                        resolution 20

ring of cohomology operators 17

                        scan 37

support variety 37, 45 symmetric algebra 9