The routine “moduleAsExt” is a partial inverse to the routine ExtModule, computed following ideas of Avramov and Jorgenson: given a module E over a polynomial ring k[x1..xc] (characteristic not 2), it provides a module N over a specified polynomial ring in n variables such that Ext(N,k) agrees with E’=E⊗∧(kn) after truncation. Here the grading on E is taken to be even, while ∧(kn) has generators in degree 1. The routine hfModuleAsExt computes the resulting hilbert function for E’. This uses ideas of Avramov and Jorgenson. Note that the module Ext(N,k) (truncated) will automatically be free over the exterior algebra ∧(kn) generated by Ext1(k,k); not a typical Ext module.
More precisely:
Suppose that R = k[a1,…, an]/(f1,…,fc) let KK = k[x1,…,xc], and let Λ= ∧kn. E = KK⊗Λ, so that the minimal R-free resolution of k has underlying module R⊗E*, where E* is the graded vector space dual of E.
Let MM be the result of truncating M at its regularity and shifting it so that it is generated in degree 0. Let F be a KK-free resolution of MM, and write Fi = KK⊗Vi. Since linear forms over KK correspond to CI operators of degree -2 on the resolution G of k over R, we may form a map
d1+d2: ∑i=0m Gi+1⊗Vm-i* →∑i=0m Gi⊗Vm-i*
where d1 is the direct sum of the differentials (Gi+1→Gi)⊗Vi* and d2 is the direct sum of the maps φi defined from the differentials of F by substituting CI operators for linear forms, φi: Gi+1⊗Vi →Gi-1⊗Vi-1. The script returns the module N that is the cokernel of d1+d2.The module ExtR(N,k) agrees, after a few steps, with the module derived from MM by tensoring it with Λ, that is, with the moduleß
MM’ = ∑j (MM’(j)⊗Λj)
so that MM’p = (MMp⊗Lambda0) ⊕(MMp-1⊗Lambda1) ⊕….i1 : kk = ZZ/101; |
i2 : S = kk[a,b,c]; |
i3 : ff = matrix{{a^4, b^4,c^4}}; 1 3 o3 : Matrix S <--- S |
i4 : R = S/ideal ff; |
i5 : Ops = kk[x_1,x_2,x_3]; |
i6 : MM = Ops^1/(x_1*ideal(x_2^2,x_3)); |
i7 : N = moduleAsExt(MM,R); |
i8 : betti res( N, LengthLimit => 10) 0 1 2 3 4 5 6 7 8 9 10 o8 = total: 30 23 25 27 29 31 33 35 37 39 41 -6: 15 5 . . . . . . . . . -5: . . . . . . . . . . . -4: 15 18 18 6 . . . . . . . -3: . . . . . . . . . . . -2: . . 7 21 21 7 . . . . . -1: . . . . . . . . . . . 0: . . . . 8 24 24 8 . . . 1: . . . . . . . . . . . 2: . . . . . . 9 27 27 9 . 3: . . . . . . . . . . . 4: . . . . . . . . 10 30 30 5: . . . . . . . . . . . 6: . . . . . . . . . . 11 o8 : BettiTally |
i9 : hfModuleAsExt(12,MM,3) o9 = (23, 25, 27, 29, 31, 33, 35, 37, 39, 41) o9 : Sequence |