Uses the ranks of the B matrices in a matrix factorization for a module M over S/(f1,..,fc) to compute the betti numbers of the minimal resolution of M over R, which is the sum of the divided power algebras on c-j+1 variables tensored with B(j).
i1 : setRandomSeed 0
o1 = 0
|
i2 : kk = ZZ/101
o2 = kk
o2 : QuotientRing
|
i3 : S = kk[a,b,u,v]
o3 = S
o3 : PolynomialRing
|
i4 : ff = matrix"au,bv"
o4 = | au bv |
1 2
o4 : Matrix S <--- S
|
i5 : R = S/ideal ff
o5 = R
o5 : QuotientRing
|
i6 : M0 = R^1/ideal"a,b"
o6 = cokernel | a b |
1
o6 : R-module, quotient of R
|
i7 : F = res(M0, LengthLimit =>3)
1 2 3 4
o7 = R <-- R <-- R <-- R
0 1 2 3
o7 : ChainComplex
|
i8 : M = coker F.dd_3;
|
i9 : MF = matrixFactorization(ff,M);
|
i10 : betti res pushForward(map(R,S),M)
0 1 2
o10 = total: 3 5 2
2: 3 4 .
3: . 1 2
o10 : BettiTally
|
i11 : finiteBettiNumbers MF
o11 = {3, 5, 2}
o11 : List
|
i12 : infiniteBettiNumbers(MF,5)
o12 = {3, 4, 5, 6, 7, 8}
o12 : List
|
i13 : betti res (M, LengthLimit => 5)
0 1 2 3 4 5
o13 = total: 3 4 5 6 7 8
2: 3 4 5 6 7 8
o13 : BettiTally
|