The function works the same as the function "sparseKoszulMatrixForPrymCurve" in the M2 package NodalCurves.
Computes the nonzero entries of the Koszul map whose rank determines the critical Betti number and the position of these entries. Builds a list containing the characteristic of the ground field, the numer of rows, the number of columns and a list containing the nonzero entries of the critical Koszul map and the position of these entries.
i1 : (k,g,n)=(4,8,1000); |
i2 : I=idealOfNodalCurve(k,g,n); ZZ o2 : Ideal of ----[t , t , t , t , t , t , t , t ] 1009 0 1 2 3 4 5 6 7 |
i3 : (charkk,rows,cols,entr)=sparseKoszulMatrix(I); |
i4 : A1=getBackMatrix(charkk,rows,cols,entr); ZZ 120 ZZ 90 o4 : Matrix (----) <--- (----) 1009 1009 |
i5 : A2=criticalKoszulMap(I); ZZ 120 ZZ 90 o5 : Matrix (----) <--- (----) 1009 1009 |
i6 : rank A1==rank A2 o6 = true |
i7 : m=ceiling((g-1)/2); |
i8 : loadPackage("extrasForTheKernel",Reload=>true); |
i9 : (Tred,Ired)=artinianReduction(I); |
i10 : rank(ker A1)- binomial(g-2,m+1) o10 = 4 |
i11 : betti res Ired 0 1 2 3 4 5 6 o11 = total: 1 15 39 50 39 15 1 0: 1 . . . . . . 1: . 15 35 25 4 . . 2: . . 4 25 35 15 . 3: . . . . . . 1 o11 : BettiTally |