# facetEquation(List,ZZ,ZZ,ZZ) -- The upper facet equation corresponding to (L,i)

## Synopsis

• Usage:
facetEquation(L,i,lodeg,hideg)
• Function: facetEquation
• Inputs:
• L, a list, the degree sequence, a strictly ascending list of integers
• i, an integer, an index in range 0..#L-2, such that L_(i+1) == L_i + 2
• lodeg, an integer, the leftmost degree of the table
• hideg, an integer, the rightmost degree of the table
• Outputs:
• A (hideg-lodeg+1) by #L matrix over ZZ whose rows correspond to slanted degrees lodeg .. hideg, such that the dot product of this matrix with any betti diagram of any finite length module is >= 0.

## Description

The (entry by entry) dot product of this matrix will be >= 0 for every minimal free resolution. Of course, the converse does not hold!
 ```i1 : d = {0,2,3,6,7,9} o1 = {0, 2, 3, 6, 7, 9} o1 : List``` ```i2 : de = {0,2,4,6,7,9} o2 = {0, 2, 4, 6, 7, 9} o2 : List``` ```i3 : e = {0,3,4,6,7,9} o3 = {0, 3, 4, 6, 7, 9} o3 : List``` ```i4 : B1 = pureBettiDiagram d 0 1 2 3 4 5 o4 = total: 10 81 105 105 81 10 0: 10 . . . . . 1: . 81 105 . . . 2: . . . . . . 3: . . . 105 81 . 4: . . . . . 10 o4 : BettiTally``` ```i5 : B2 = pureBettiDiagram de 0 1 2 3 4 5 o5 = total: 5 27 63 105 72 8 0: 5 . . . . . 1: . 27 . . . . 2: . . 63 . . . 3: . . . 105 72 . 4: . . . . . 8 o5 : BettiTally``` ```i6 : B3 = pureBettiDiagram e 0 1 2 3 4 5 o6 = total: 5 105 189 210 135 14 0: 5 . . . . . 1: . . . . . . 2: . 105 189 . . . 3: . . . 210 135 . 4: . . . . . 14 o6 : BettiTally``` ```i7 : C = facetEquation(de,1,0,6) o7 = | 0 30 -35 27 -15 5 | | 0 35 -27 15 -5 0 | | 0 0 0 5 0 0 | | 0 0 0 0 0 2 | | 0 0 0 0 0 0 | | 0 0 0 0 0 0 | | 0 0 0 0 0 0 | 7 6 o7 : Matrix ZZ <--- ZZ``` ```i8 : dotProduct(C,B1) o8 = 0``` ```i9 : dotProduct(C,B2) o9 = 945``` ```i10 : dotProduct(C,B3) o10 = 0```
The following example is from Eisenbud and Schreyer, math.AC/0712.1843v2, example 2.4. Notice that the notation here differs slightly from theirs. In both cases i refers to the index, but in Macaulay2, the first element of a list has index 0. hence in this example, i is 3 and not 4, as in the example in the paper.
 ```i11 : d = {-4,-3,0,2,3,6,7,9} o11 = {-4, -3, 0, 2, 3, 6, 7, 9} o11 : List``` ```i12 : de = {-4,-3,0,2,4,6,7,9} o12 = {-4, -3, 0, 2, 4, 6, 7, 9} o12 : List``` ```i13 : e = {-4,-3,0,3,4,6,7,9} o13 = {-4, -3, 0, 3, 4, 6, 7, 9} o13 : List``` ```i14 : pureBettiDiagram d 0 1 2 3 4 5 6 7 o14 = total: 405 1001 3575 11583 10725 5005 3159 275 -4: 405 1001 . . . . . . -3: . . . . . . . . -2: . . 3575 . . . . . -1: . . . 11583 10725 . . . 0: . . . . . . . . 1: . . . . . 5005 3159 . 2: . . . . . . . 275 o14 : BettiTally``` ```i15 : pureBettiDiagram de 0 1 2 3 4 5 6 7 o15 = total: 945 2288 7150 15444 19305 20020 11232 880 -4: 945 2288 . . . . . . -3: . . . . . . . . -2: . . 7150 . . . . . -1: . . . 15444 . . . . 0: . . . . 19305 . . . 1: . . . . . 20020 11232 . 2: . . . . . . . 880 o15 : BettiTally``` ```i16 : C = facetEquation(de,3,-6,3) o16 = | 1755 -385 0 0 66 -70 0 100 | | 385 0 0 -66 70 0 -100 175 | | 0 0 66 -70 0 100 -175 189 | | 0 0 70 0 -100 175 -189 140 | | 0 0 0 100 -175 189 -140 60 | | 0 0 0 175 -189 140 -60 0 | | 0 0 0 0 0 60 0 0 | | 0 0 0 0 0 0 0 44 | | 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 | 10 8 o16 : Matrix ZZ <--- ZZ```
Let's check that this is zero on the appropriate pure diagrams, and positive on the one corresponding to de:
 ```i17 : dotProduct(C,-6,pureBettiDiagram d) o17 = 0``` ```i18 : dotProduct(C,-6,pureBettiDiagram de) o18 = 2702700``` ```i19 : dotProduct(C,-6,pureBettiDiagram e) o19 = 0```