+ M2 --no-readline --print-width 99 Macaulay2, version 1.9.2 with packages: ConwayPolynomials, Elimination, IntegralClosure, LLLBases, PrimaryDecomposition, ReesAlgebra, TangentCone i1 : loadPackage("MatFacCurvesP4") o1 = MatFacCurvesP4 o1 : Package i2 : ------------------------------------------------------------------ -- Example 4.1 -- -- List of candidate Betti tables giving rise to matrix -- -- factorizations of shape 15 2 -- -- 2 15 -- ------------------------------------------------------------------ -- p=32009; -- a prime number i3 : Fp=ZZ/p; -- a prime field i4 : S=Fp[x_0..x_4]; i5 : beta=betti map(S^{15:0,2:-1,0:-2},S^{2:-1,15:-2,0:-3},0) 0 1 o5 = total: 17 17 0: 15 2 1: 2 15 o5 : BettiTally i6 : d=3; i7 : -- The following method produces the list of all tables lying in -- the Boij-Soederberg cone giving rise to a matrix -- factorization of the desired shape, assuming that no -- cancellation occurs. To speed up computations, the functions -- looks for tables with projective dimension at most 4. -- The function automatically takes care of the transposed -- shape, as well as of the shape of the syzygy map and its -- transposed. -- -- time bCands=candidateTables(beta,d); -- takes 2 sec -- used 1.75241 seconds i8 : -- If we look for Betti tables of modules of projective -- dimension at 5, i.e., modules with the irrelevant ideal -- associated, we can run time bCandsIrr=candidateTablesWithIrrelevantIdealAssociated(beta,d); -- takes 28 sec -- used 28.318 seconds i9 : -- -- It is reasonable to assume that all the cancellations which -- are possible will occur. As a general philosophy, matrix -- factorizations with the maximum number of cancellations -- are expected to be easier to construct. We remark that some -- of the cancellations cannot occur because of the Shamash -- construction. -- Therefore, we can filter the previous list by asking that -- the arising matrix factorization has the fixed shape 15 2 -- 2 15, -- supposing that all the cancellations which are possible do -- occur. -- possibleShapes=listOfPossibleMatFac(beta,d); i10 : bCandsMaxCan=select(bCands,B->( arMatFac:=arisingMatFac(B,d); any(possibleShapes,s->s==arMatFac))); i11 : #bCandsMaxCan o11 = 13 i12 : -- -- We get a list of 13 candidate Betti tables for which no -- cancellation is tolerated. We cannot find the Betti table of -- the section module of a general curve of genus 12 and degree -- 14 as, in that specific case, we had one cancellation. -- -- In the same line of thought, we can look for candidate Betti -- tables whose induced non-minimal matrix factorization has -- shape 1 -- 15 2 -- 2 16 -- beta'=betti map(S^{1:1,15:0,2:-1,0:-2},S^{2:-1,16:-2,0:-3},0) 0 1 o12 = total: 18 18 -1: 1 . 0: 15 2 1: 2 16 o12 : BettiTally i13 : time bCands'=candidateTables(beta',d); -- takes 9 sec -- used 9.4321 seconds i14 : -- -- and filter them according to the expected minimal matrix -- factorization they may give rise to, which has to coincide -- with 15 2 -- 2 15 -- bCandsMaxCan'=select(bCands',B->( arMatFac:=arisingMatFac(B,d); any(possibleShapes,s->s==arMatFac))); i15 : -- -- Among them, we find the Betti table of the section module -- of a general curve of genus 12 and degree 14 -- bCandsMaxCan'_9 0 1 2 3 o15 = total: 3 14 15 4 0: 1 . . . 1: . . . . 2: 2 14 15 2 3: . . . 2 o15 : BettiTally i16 : -- -- Another possibility is to use the shape . 1 -- 16 2 -- 2 15 -- beta''=betti map(S^{0:1,16:0,2:-1,0:-2},S^{1:-0,2:-1,15:-2},0) 0 1 o16 = total: 18 18 -1: . 1 0: 16 2 1: 2 15 o16 : BettiTally i17 : time bCands''=candidateTables(beta'',d); -- takes 10 sec -- used 10.3173 seconds i18 : bCandsMaxCan''=select(bCands'',B->( arMatFac:=arisingMatFac(B,d); any(possibleShapes,s->s==arMatFac))); i19 : -- -- Among them, we find the Betti table exhibited in Example 4.1 -- bCandsMaxCan''_2 0 1 2 3 4 o19 = total: 1 7 15 11 2 0: 1 . . . . 1: . . . . . 2: . 5 . . . 3: . 2 15 11 2 o19 : BettiTally i20 :