The call
cornerComplex(T,c)
forms the corner complex with corner c of a (part of a) Tate resolution T as defined in Tate Resolutions on Products of Projective Spaces. The call
cornerComplex(M,c,low,high)
first computes the Tate resolution T of the sheaf F represented by M in the range covering low to high and then takes the corner complex of T.
i1 : (S,E) = productOfProjectiveSpaces{1,1} o1 = (S, E) o1 : Sequence |
i2 : low = {-4,-4};high = {3,2}; |
i4 : T1= (dual res( trim (ideal vars E)^2,LengthLimit=>8))[1]; |
i5 : T2=res(coker upperCorner(T1,{4,3}),LengthLimit=>13)[7]; |
Finally, we can define T, the sufficient part of the Tate resolution:
i6 : T=trivialHomologicalTruncation (T2,-5,6); |
i7 : cohomologyMatrix(T,low,high) o7 = | 27h 20h 13h 6h 1 8 15 22 | | 16h 12h 8h 4h 0 4 8 12 | | 5h 4h 3h 2h h 0 1 2 | | 6h2 4h2 2h2 0 2h 4h 6h 8h | | 17h2 12h2 7h2 2h2 3h 8h 13h 18h | | 28h2 20h2 12h2 4h2 4h 12h 20h 28h | | 39h2 28h2 17h2 6h2 5h 16h 27h 38h | 7 8 o7 : Matrix (ZZ[h, k]) <--- (ZZ[h, k]) |
In the following we will produce a corner complex cT with corner at c ={-2,-1}. To do this we need a big enough part T of a Tate resolution so that all the strands around the corner are exact. This example corresponds to the Example of Section 4 of our paper referenced above. The Tate resolution in question is that corresponding to a rank 3 natural sheaf on P1xP1.
i8 : c = -{2,1}; |
i9 : cT=cornerComplex(T,c); |
i10 : betti cT -5 -4 -3 -2 -1 0 1 2 3 4 5 o10 = total: 22 27 26 18 22 12 5 12 37 78 138 0: 22 27 18 6 . . . . . . . 1: . . 8 12 22 12 3 . . . . 2: . . . . . . 2 . . . . 3: . . . . . . . 12 37 78 138 o10 : BettiTally |
i11 : cohomologyMatrix(cT,low,high) o11 = | 0 0 13h 6h 1 8 15 22 | | 0 0 8h 4h 0 4 8 12 | | 0 0 3h 2h h 0 1 2 | | 0 0 2h2 0 2h 4h 6h 8h | | 17h3 12h3 0 0 0 0 0 0 | | 28h3 20h3 0 0 0 0 0 0 | | 39h3 28h3 0 0 0 0 0 0 | 7 8 o11 : Matrix (ZZ[h, k]) <--- (ZZ[h, k]) |
The corner complex is built from a first quadrant complex fqT and a last quadrant complex lqT connected by the corner map between these complexes.
i12 : fqT=firstQuadrantComplex(T,c); |
i13 : lqT=lastQuadrantComplex(T,c); |
i14 : cohomologyMatrix(fqT,low,high) o14 = | 0 0 13h 6h 1 8 15 22 | | 0 0 8h 4h 0 4 8 12 | | 0 0 3h 2h h 0 1 2 | | 0 0 2h2 0 2h 4h 6h 8h | | 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 | 7 8 o14 : Matrix (ZZ[h, k]) <--- (ZZ[h, k]) |
i15 : cohomologyMatrix(lqT,low,high) o15 = | 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 | | 17h2 12h2 0 0 0 0 0 0 | | 28h2 20h2 0 0 0 0 0 0 | | 39h2 28h2 0 0 0 0 0 0 | 7 8 o15 : Matrix (ZZ[h, k]) <--- (ZZ[h, k]) |
i16 : betti fqT -5 -4 -3 -2 -1 0 1 o16 = total: 22 27 26 18 22 12 5 0: 22 27 18 6 . . . 1: . . 8 12 22 12 3 2: . . . . . . 2 o16 : BettiTally |
i17 : betti lqT 3 4 5 6 o17 = total: 12 37 78 138 2: 12 37 78 138 o17 : BettiTally |
i18 : betti cT -5 -4 -3 -2 -1 0 1 2 3 4 5 o18 = total: 22 27 26 18 22 12 5 12 37 78 138 0: 22 27 18 6 . . . . . . . 1: . . 8 12 22 12 3 . . . . 2: . . . . . . 2 . . . . 3: . . . . . . . 12 37 78 138 o18 : BettiTally |
Here the corner map is cT.dd2
i19 : betti (cT.dd_(-sum c-1)) 0 1 o19 = total: 5 12 2: 3 . 3: 2 . 4: . 12 o19 : BettiTally |
In general the corner map is a chain complex map from lqT to fqT spread over several homological degrees.
Putting the corner in c = {-1,-1 } we get a different picture:
i20 : c = {-1,-1} o20 = {-1, -1} o20 : List |
i21 : cT=cornerComplex(T,c); |
i22 : betti cT -5 -4 -3 -2 -1 0 1 2 3 4 5 o22 = total: 22 27 26 18 9 4 7 24 54 100 165 0: 22 27 18 6 . . . . . . . 1: . . 8 12 9 4 . . . . . 2: . . . . . . . . . . . 3: . . . . . . 7 24 54 100 165 o22 : BettiTally |
i23 : cohomologyMatrix(cT,low,high) o23 = | 0 0 0 6h 1 8 15 22 | | 0 0 0 4h 0 4 8 12 | | 0 0 0 2h h 0 1 2 | | 0 0 0 0 2h 4h 6h 8h | | 17h3 12h3 7h3 0 0 0 0 0 | | 28h3 20h3 12h3 0 0 0 0 0 | | 39h3 28h3 17h3 0 0 0 0 0 | 7 8 o23 : Matrix (ZZ[h, k]) <--- (ZZ[h, k]) |
The corner complex is built from a first quadrant complex fqT and a last quadrant complex lqT connected by the corner map between these complexes.
i24 : fqT=firstQuadrantComplex(T,c); |
i25 : lqT=lastQuadrantComplex(T,c); |
i26 : cohomologyMatrix(fqT,low,high) o26 = | 0 0 0 6h 1 8 15 22 | | 0 0 0 4h 0 4 8 12 | | 0 0 0 2h h 0 1 2 | | 0 0 0 0 2h 4h 6h 8h | | 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 | 7 8 o26 : Matrix (ZZ[h, k]) <--- (ZZ[h, k]) |
i27 : cohomologyMatrix(lqT,low,high) o27 = | 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 | | 17h2 12h2 7h2 0 0 0 0 0 | | 28h2 20h2 12h2 0 0 0 0 0 | | 39h2 28h2 17h2 0 0 0 0 0 | 7 8 o27 : Matrix (ZZ[h, k]) <--- (ZZ[h, k]) |
i28 : betti fqT -5 -4 -3 -2 -1 0 o28 = total: 22 27 26 18 9 4 0: 22 27 18 6 . . 1: . . 8 12 9 4 o28 : BettiTally |
i29 : betti lqT 2 3 4 5 6 o29 = total: 7 24 54 100 165 2: 7 24 54 100 165 o29 : BettiTally |
i30 : betti cT -5 -4 -3 -2 -1 0 1 2 3 4 5 o30 = total: 22 27 26 18 9 4 7 24 54 100 165 0: 22 27 18 6 . . . . . . . 1: . . 8 12 9 4 . . . . . 2: . . . . . . . . . . . 3: . . . . . . 7 24 54 100 165 o30 : BettiTally |
Here the corner map is cT.dd1
i31 : betti (cT.dd_1) 0 1 o31 = total: 4 7 1: 4 . 2: . . 3: . 7 o31 : BettiTally |
In general the corner map is a chain complex map from lqT to fqT spread over several homological degrees.
Next we give an example obtained from a module
i32 : (S,E)=productOfProjectiveSpaces{2,1} o32 = (S, E) o32 : Sequence |
i33 : M=beilinson(E^{-{1,1}}) o33 = cokernel {1, 1} | x_(0,2) | {1, 1} | -x_(0,1) | {1, 1} | x_(0,0) | 3 o33 : S-module, quotient of S |
i34 : c={1,1} o34 = {1, 1} o34 : List |
i35 : low={-3,-3},high={4,4} o35 = ({-3, -3}, {4, 4}) o35 : Sequence |
i36 : cohomologyMatrix(M,low,high) o36 = | 12h2 0 4h 0 12 32 60 96 | | 9h2 0 3h 0 9 24 45 72 | | 6h2 0 2h 0 6 16 30 48 | | 3h2 0 h 0 3 8 15 24 | | 0 0 0 0 0 0 0 0 | | 3h3 0 h2 0 3h 8h 15h 24h | | 6h3 0 2h2 0 6h 16h 30h 48h | | 9h3 0 3h2 0 9h 24h 45h 72h | 8 8 o36 : Matrix (ZZ[h, k]) <--- (ZZ[h, k]) |
i37 : C=cornerComplex(M,c,low,high) 96 132 125 90 40 14 3 1 5 17 44 95 181 315 o37 = E <-- E <-- E <-- E <-- E <-- E <-- E <-- E <-- E <-- E <-- E <-- E <-- E <-- E -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 o37 : ChainComplex |
i38 : cohomologyMatrix(C,low,high) o38 = | 0 0 0 0 12 32 60 96 | | 0 0 0 0 9 24 45 72 | | 0 0 0 0 6 16 30 48 | | 0 0 0 0 3 8 15 24 | | 0 0 0 0 0 0 0 0 | | 3h4 0 h3 0 0 0 0 0 | | 6h4 0 2h3 0 0 0 0 0 | | 9h4 0 3h3 0 0 0 0 0 | 8 8 o38 : Matrix (ZZ[h, k]) <--- (ZZ[h, k]) |
i39 : cohomologyMatrix(C,2*low,2*high) o39 = | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 0 0 0 0 0 0 0 12 32 60 96 0 0 0 0 | | 0 0 0 0 0 0 0 9 24 45 72 0 0 0 0 | | 0 0 0 0 0 0 0 6 16 30 48 0 0 0 0 | | 0 0 0 0 0 0 0 3 8 15 24 0 0 0 0 | | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | 24h4 15h4 8h4 3h4 0 h3 0 0 0 0 0 0 0 0 0 | | 48h4 30h4 16h4 6h4 0 2h3 0 0 0 0 0 0 0 0 0 | | 72h4 45h4 24h4 9h4 0 3h3 0 0 0 0 0 0 0 0 0 | | 0 60h4 32h4 12h4 0 4h3 0 0 0 0 0 0 0 0 0 | | 0 0 40h4 15h4 0 5h3 0 0 0 0 0 0 0 0 0 | | 0 0 0 18h4 0 6h3 0 0 0 0 0 0 0 0 0 | 15 15 o39 : Matrix (ZZ[h, k]) <--- (ZZ[h, k]) |
i40 : betti C -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 o40 = total: 96 132 125 90 40 14 3 1 5 17 44 95 181 315 0: 96 132 125 90 40 14 3 . . . . . . . 1: . . . . . . . . . . . . . . 2: . . . . . . . . . . . . . . 3: . . . . . . . 1 2 3 4 5 6 7 4: . . . . . . . . 3 14 40 90 175 308 o40 : BettiTally |
i41 : C.dd_(-sum c +1) o41 = {-1, -1} | e_(0,0)e_(0,1)e_(1,0)e_(1,1) | {-1, -1} | e_(0,1)e_(0,2)e_(1,0)e_(1,1) | {-1, -1} | e_(0,0)e_(0,2)e_(1,0)e_(1,1) | 3 1 o41 : Matrix E <--- E |