The algebraic Scarf complex of a monomial ideal is the sub-chain complex of the taylorResolution supported on subsets of generators with unique LCMs.
i1 : R = QQ[a,b,c,d,e]; |
i2 : I = monomialIdeal(b^4*c^3, a*b^3*c*d^2*e, a*b^2*c^2*d*e^2, a^2*d^3*e^5, b*c^2*d^5*e^4); o2 : MonomialIdeal of R |
i3 : s = scarfComplex I 1 5 8 3 o3 = R <-- R <-- R <-- R <-- 0 0 1 2 3 4 o3 : ChainComplex |
i4 : s.dd 1 5 o4 = 0 : R <-------------------------------------------- R : 1 | b4c3 ab3cd2e ab2c2de2 bc2d5e4 a2d3e5 | 5 8 1 : R <----------------------------------------------------------- R : 2 {7} | -ad2e -ade2 0 -d5e4 0 0 0 0 | {8} | bc2 0 -ce 0 0 -ade4 0 0 | {8} | 0 b2c bd 0 -d4e2 0 -ad2e3 0 | {12} | 0 0 0 b3c ab 0 0 -a2e | {10} | 0 0 0 0 0 b3c b2c2 bc2d2 | 8 3 2 : R <------------------------ R : 3 {11} | e 0 0 | {11} | -d 0 0 | {10} | bc ade3 0 | {16} | 0 0 0 | {14} | 0 0 ae | {14} | 0 -c 0 | {14} | 0 b -d2 | {15} | 0 0 b | 3 3 : R <----- 0 : 4 0 o4 : ChainComplexMap |
The Scarf complex of I is always a subcomplex of the minimal free resolution of I, computed in M2 with the command res I. In this first example the Scarf complex is strictly smaller.
i5 : (betti s, betti res I) 0 1 2 3 0 1 2 3 o5 = (total: 1 5 8 3, total: 1 5 8 4) 0: 1 . . . 0: 1 . . . 1: . . . . 1: . . . . 2: . . . . 2: . . . . 3: . . . . 3: . . . . 4: . . . . 4: . . . . 5: . . . . 5: . . . . 6: . 1 . . 6: . 1 . . 7: . 2 . . 7: . 2 . . 8: . . 1 . 8: . . 1 . 9: . 1 2 1 9: . 1 2 1 10: . . . . 10: . . . . 11: . 1 . . 11: . 1 . . 12: . . 3 1 12: . . 3 1 13: . . 1 1 13: . . 1 1 14: . . 1 . 14: . . 1 1 o5 : Sequence |
In some cases, such as when I is a generic monomial ideal, the Scarf complex of I is a minimal free resolution of I. In this case scarfComplex I and res I will be isomorphic but not necessarily equal.
i6 : I = monomialIdeal(a^2*b^11*c^7*d*e, a^5*b^10*c^2*d^3*e^2, a^6*b^8*c^11*d^2*e^3, a^3*b^5*c^3*d^5*e^4, a^8*b^2*c*d^4*e^7); o6 : MonomialIdeal of R |
i7 : isExact(prependZeroMap scarfComplex I) o7 = true |
i8 : isMinimalChainComplex scarfComplex I o8 = true |
i9 : betti scarfComplex I == betti res I o9 = true |
i10 : scarfComplex I == res I o10 = false |
See chain complexes (missing documentation) for an overview of chain complexes in Macaulay2.
The object scarfComplex is a method function.