# ExtModule -- Ext^*(M,k) over a complete intersection as module over CI operator ring

## Synopsis

• Usage:
E = ExtModule M
• Inputs:
• M, , over a complete intersection ring
• Outputs:
• E, , over a polynomial ring with gens in even degree

## Description

Uses code of Avramov-Grayson described in Macaulay2 book

 i1 : kk= ZZ/101 o1 = kk o1 : QuotientRing i2 : S = kk[x,y,z] o2 = S o2 : PolynomialRing i3 : I1 = ideal "x3y" 3 o3 = ideal(x y) o3 : Ideal of S i4 : R1 = S/I1 o4 = R1 o4 : QuotientRing i5 : M1 = R1^1/ideal(x^2) o5 = cokernel | x2 | 1 o5 : R1-module, quotient of R1 i6 : betti res (M1, LengthLimit =>5) 0 1 2 3 4 5 o6 = total: 1 1 1 1 1 1 0: 1 . . . . . 1: . 1 . . . . 2: . . 1 . . . 3: . . . 1 . . 4: . . . . 1 . 5: . . . . . 1 o6 : BettiTally i7 : E = ExtModule M1 2 o7 = (kk[X ]) 0 o7 : kk[X ]-module, free, degrees {0..1} 0 i8 : apply(toList(0..10), i->hilbertFunction(i, E)) o8 = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} o8 : List i9 : Eeven = evenExtModule(M1) 1 o9 = (kk[X ]) 0 o9 : kk[X ]-module, free 0 i10 : apply(toList(0..5), i->hilbertFunction(i, Eeven)) o10 = {1, 1, 1, 1, 1, 1} o10 : List i11 : Eodd = oddExtModule(M1) 1 o11 = (kk[X ]) 0 o11 : kk[X ]-module, free 0 i12 : apply(toList(0..5), i->hilbertFunction(i, Eodd)) o12 = {1, 1, 1, 1, 1, 1} o12 : List i13 : use S o13 = S o13 : PolynomialRing i14 : I2 = ideal"x3,yz" 3 o14 = ideal (x , y*z) o14 : Ideal of S i15 : R2 = S/I2 o15 = R2 o15 : QuotientRing i16 : M2 = R2^1/ideal"x2,y,z" o16 = cokernel | x2 y z | 1 o16 : R2-module, quotient of R2 i17 : betti res (M2, LengthLimit =>10) 0 1 2 3 4 5 6 7 8 9 10 o17 = total: 1 3 5 7 9 11 13 15 17 19 21 0: 1 2 2 2 2 2 2 2 2 2 2 1: . 1 3 4 4 4 4 4 4 4 4 2: . . . 1 3 4 4 4 4 4 4 3: . . . . . 1 3 4 4 4 4 4: . . . . . . . 1 3 4 4 5: . . . . . . . . . 1 3 o17 : BettiTally i18 : E = ExtModule M2 8 o18 = (kk[X ..X ]) 0 1 o18 : kk[X ..X ]-module, free, degrees {0..1, 2:1, 3:2, 3} 0 1 i19 : apply(toList(0..10), i->hilbertFunction(i, E)) o19 = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21} o19 : List i20 : Eeven = evenExtModule M2 4 o20 = (kk[X ..X ]) 0 1 o20 : kk[X ..X ]-module, free, degrees {0..1, 2:1} 0 1 i21 : apply(toList(0..5), i->hilbertFunction(i, Eeven)) o21 = {1, 5, 9, 13, 17, 21} o21 : List i22 : Eodd = oddExtModule M2 4 o22 = (kk[X ..X ]) 0 1 o22 : kk[X ..X ]-module, free, degrees {3:0, 1} 0 1 i23 : apply(toList(0..5), i->hilbertFunction(i, Eodd)) o23 = {3, 7, 11, 15, 19, 23} o23 : List