A multigraded Betti tally is a special type of BettiTally that both prints nicely and from which multigraded Betti numbers could be easily extracted.
i1 : R = ZZ/101[a..d, Degrees => {2:{1,0},2:{0,1}}];
|
i2 : I = ideal random(R^1, R^{2:{-2,-2},2:{-3,-3}});
o2 : Ideal of R
|
i3 : t = betti res I
0 1 2 3 4
o3 = total: 1 4 13 14 4
0: 1 . . . .
1: . . . . .
2: . . . . .
3: . 2 . . .
4: . . . . .
5: . 2 . . .
6: . . 1 . .
7: . . 8 6 .
8: . . 4 8 4
o3 : BettiTally
|
i4 : B = multigraded t
0 1 2 3 4
o4 = 0: 1 . . . .
4: . 2a2b2 . . .
6: . 2a3b3 . . .
8: . . a4b4 . .
9: . . 4a5b4+4a4b5 . .
10: . . 2a7b3+2a3b7 6a5b5 .
11: . . . 4a7b4+4a4b7 .
12: . . . . 2a7b5+2a5b7
o4 : MultigradedBettiTally
|
By changing the weights, we can reorder the columns of the diagram. The following three displays show the first degree, the second degree, and the total degree, respectively.
i5 : betti(B, Weights => {1,0})
0 1 2 3 4
o5 = 0: 1 . . . .
2: . 2a2b2 . . .
3: . 2a3b3 2a3b7 . .
4: . . 4a4b5+a4b4 4a4b7 .
5: . . 4a5b4 6a5b5 2a5b7
7: . . 2a7b3 4a7b4 2a7b5
o5 : MultigradedBettiTally
|
i6 : betti(B, Weights => {0,1})
0 1 2 3 4
o6 = 0: 1 . . . .
2: . 2a2b2 . . .
3: . 2a3b3 2a7b3 . .
4: . . 4a5b4+a4b4 4a7b4 .
5: . . 4a4b5 6a5b5 2a7b5
7: . . 2a3b7 4a4b7 2a5b7
o6 : MultigradedBettiTally
|
i7 : betti(B, Weights => {1,1})
0 1 2 3 4
o7 = 0: 1 . . . .
4: . 2a2b2 . . .
6: . 2a3b3 . . .
8: . . a4b4 . .
9: . . 4a5b4+4a4b5 . .
10: . . 2a7b3+2a3b7 6a5b5 .
11: . . . 4a7b4+4a4b7 .
12: . . . . 2a7b5+2a5b7
o7 : MultigradedBettiTally
|
The object multigraded is a method function.