This is TateOnProducts.info, produced by Macaulay2, version 1.26.06

TateOnProducts -- Computation of parts of the Tate resolution on products
*************************************************************************

Description
===========

This package contains implementations of the algorithm from our paper Tate
Resolutions on Products of Projective Spaces (see
https://arxiv.org/abs/1411.5724 ). It allows computing the direct image
complexes of a coherent sheaf along the projection onto a product of any of the
factors.

The main differences from the paper are:
  * the exterior algebra E is positively graded
  * we use E instead of omega_E
  *  all complexes are chain complexes instead of cochain complexes

Beilinson monads
================

  * beilinsonWindow -- extract the subquotient complex
    which contributes to the Beilinson window
  * tateResolution -- compute the Tate resolution
  * tateExtension -- extend the terms in the Beilinson
    window to a part of a corner complex of the corresponding Tate resolution
  * beilinson -- apply the beilinson functor
  * bgg -- make a linear free complex from a module over an
    exterior algebra or a symmetric algebra
  * directImageComplex -- compute the direct image
    complex
  * actionOnDirectImage -- recover the module
    structure via a Noether normalization
  * composedFunctions -- composed functions

Numerical Information
=====================

  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution
  * eulerPolynomialTable -- cohomology groups of a
    sheaf on a product of projective spaces, or of (part) of a Tate resolution
  * cohomologyHashTable -- cohomology groups of a
    sheaf on a product of projective spaces, or of (part) of a Tate resolution
  * tallyDegrees -- collect the degrees of the generators
    of the terms in a free complex

From graded modules to Tate resolutions
=======================================

  * productOfProjectiveSpaces -- Cox ring of
    a product of projective spaces and it Koszul dual exterior algebra
  * symExt -- from linear presentation matrices over S to linear
    presentation matrices over E and conversely
  * lowerCorner -- compute the lower corner
  * upperCorner -- compute the upper corner

Subcomplexes
============

  * cornerComplex -- form the corner complex
  * regionComplex -- region complex
  * strand -- take the strand
  * firstQuadrantComplex -- form the first
    quadrant complex
  * lastQuadrantComplex -- form the last quadrant
    complex

Acknowledgement: The work of Yeongrak Kim and Frank-Olaf Schreyer was supported
by Project I.6 of the SFB-TRR 195 ''Symbolic Tools in Mathematics and their
Application'' of the German Research Foundation (DFG).

Authors
=======

  * Daniel Erman (see http://www.math.wisc.edu/~derman/ )
    <derman@math.wisc.edu>
  * David Eisenbud (see http://www.msri.org/~de/ ) <de@msri.org>
  * Frank-Olaf Schreyer (see http://www.math.uni-sb.de/ag/schreyer/ )
    <schreyer@math.uni-sb.de>
  * Michael E. Stillman (see
    http://www.math.cornell.edu/People/Faculty/stillman.html )
    <mike@math.cornell.edu>
  * Yeongrak Kim (see http://sites.google.com/view/yeongrak/ )
    <kim@math.uni-sb.de>

Version
=======

This documentation describes version 1.2 of TateOnProducts, released January
30, 2020.

Citation
========

If you have used this package in your research, please cite it as follows:

+-----------------------------------------------------------------------------+
|@misc{TateOnProductsSource,                                                  |
|  title = {{TateOnProducts: Tate resolutions on products of projective spaces|
|  author = {Daniel Erman and David Eisenbud and Frank-Olaf Schreyer and Micha|
|  howpublished = {A \emph{Macaulay2} package available at                    |
|    \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/packages}} |
|}                                                                            |
|-----------------------------------------------------------------------------|
|. Version~1.2}},                                                             |
|el E. Stillman and Yeongrak Kim},                                            |
+-----------------------------------------------------------------------------+

Exports
=======

  * Functions and commands
      * actionOnDirectImage -- recover the module
        structure via a Noether normalization
      * beilinson -- apply the beilinson functor
      * beilinsonBundle -- compute a basic Beilinson
        bundle
      * beilinsonContraction -- compute a
        Beilinson contraction
      * beilinsonWindow -- extract the subquotient
        complex which contributes to the Beilinson window
      * bgg -- make a linear free complex from a module over an
        exterior algebra or a symmetric algebra
      * coarseMultigradedRegularity -- A
        truncation that has linear resolution
      * cohomologyHashTable -- cohomology groups of
        a sheaf on a product of projective spaces, or of (part) of a Tate
        resolution
      * cohomologyMatrix -- cohomology groups of a
        sheaf on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution
      * composedFunctions -- composed functions
      * contractionData -- Compute the action of
        monomials in the exterior algebra on the Beilinson monad
      * cornerComplex -- form the corner complex
      * directImageComplex -- compute the direct
        image complex
      * eulerPolynomialTable -- cohomology groups
        of a sheaf on a product of projective spaces, or of (part) of a Tate
        resolution
      * firstQuadrantComplex -- form the first
        quadrant complex
      * isAction -- test whether a list of square matrices
        induces an action
      * isIsomorphicStrict -- probabilistic test for
        homogeneous isomorphism
      * isQuism -- Test to see if the ComplexMap is a
        quasiisomorphism.
      * lastQuadrantComplex -- form the last
        quadrant complex
      * lowerCorner -- compute the lower corner
      * productOfProjectiveSpaces -- Cox ring
        of a product of projective spaces and it Koszul dual exterior algebra
      * regionComplex -- region complex
      * strand -- take the strand
      * symExt -- from linear presentation matrices over S to
        linear presentation matrices over E and conversely
      * tallyDegrees -- collect the degrees of the
        generators of the terms in a free complex
      * tateData -- reads TateData from the cache of an
        appropriate ring
      * tateExtension -- extend the terms in the
        Beilinson window to a part of a corner complex of the corresponding
        Tate resolution
      * tateResolution -- compute the Tate resolution
      * trivialHomologicalTruncation, --
        return the trivial truncation of a chain complex
      * upperCorner -- compute the upper corner
  * Methods
      * "actionOnDirectImage(Ideal,Complex)" -- see actionOnDirectImage,
        -- recover the module structure via a Noether
        normalization
      * "actionOnDirectImage(Ideal,Module)" -- see actionOnDirectImage,
        -- recover the module structure via a Noether
        normalization
      * "actionOnDirectImage(Ideal,Module,Matrix)" -- see
        actionOnDirectImage, -- recover the module
        structure via a Noether normalization
      * "beilinson(Complex)" -- see beilinson, -- apply the
        beilinson functor
      * "beilinson(Matrix)" -- see beilinson, -- apply the
        beilinson functor
      * "beilinson(Module)" -- see beilinson, -- apply the
        beilinson functor
      * "beilinsonBundle(List,Ring)" -- see beilinsonBundle,
        -- compute a basic Beilinson bundle
      * "beilinsonBundle(ZZ,ZZ,Ring)" -- see beilinsonBundle,
        -- compute a basic Beilinson bundle
      * "beilinsonContraction(RingElement,List,List)" -- see
        beilinsonContraction, -- compute a Beilinson
        contraction
      * "beilinsonWindow(Complex)" -- see beilinsonWindow,
        -- extract the subquotient complex which contributes
        to the Beilinson window
      * "bgg(Module)" -- see bgg, -- make a linear free complex from
        a module over an exterior algebra or a symmetric algebra
      * "coarseMultigradedRegularity(Complex)" -- see
        coarseMultigradedRegularity, -- A
        truncation that has linear resolution
      * "coarseMultigradedRegularity(Module)" -- see
        coarseMultigradedRegularity, -- A
        truncation that has linear resolution
      * "cohomologyHashTable(Complex,List,List)" -- see
        cohomologyHashTable, -- cohomology groups of a
        sheaf on a product of projective spaces, or of (part) of a Tate
        resolution
      * "cohomologyHashTable(Module,List,List)" -- see
        cohomologyHashTable, -- cohomology groups of a
        sheaf on a product of projective spaces, or of (part) of a Tate
        resolution
      * "cohomologyMatrix(Complex,List,List)" -- see cohomologyMatrix,
        -- cohomology groups of a sheaf on P^{n_1}xP^{n_2},
        or of (part) of a Tate resolution
      * "cohomologyMatrix(Module,List,List)" -- see cohomologyMatrix,
        -- cohomology groups of a sheaf on P^{n_1}xP^{n_2},
        or of (part) of a Tate resolution
      * "contractionData(List,List,Ring)" -- see contractionData,
        -- Compute the action of monomials in the exterior
        algebra on the Beilinson monad
      * "cornerComplex(Complex,List)" -- see cornerComplex,
        -- form the corner complex
      * "cornerComplex(Module,List,List,List)" -- see cornerComplex,
        -- form the corner complex
      * "directImageComplex(Ideal,Module,Matrix)" -- see
        directImageComplex, -- compute the direct image
        complex
      * "directImageComplex(Module,List)" -- see directImageComplex,
        -- compute the direct image complex
      * "eulerPolynomialTable(Complex,List,List)" -- see
        eulerPolynomialTable, -- cohomology groups of a
        sheaf on a product of projective spaces, or of (part) of a Tate
        resolution
      * "eulerPolynomialTable(HashTable)" -- see eulerPolynomialTable,
        -- cohomology groups of a sheaf on a product of
        projective spaces, or of (part) of a Tate resolution
      * "eulerPolynomialTable(Module,List,List)" -- see
        eulerPolynomialTable, -- cohomology groups of a
        sheaf on a product of projective spaces, or of (part) of a Tate
        resolution
      * "firstQuadrantComplex(Complex,List)" -- see firstQuadrantComplex,
        -- form the first quadrant complex
      * "isAction(Ideal,List)" -- see isAction, -- test whether
        a list of square matrices induces an action
      * "isIsomorphicStrict(Module,Module)" -- see isIsomorphicStrict,
        -- probabilistic test for homogeneous isomorphism
      * "isQuism(ComplexMap)" -- see isQuism, -- Test to see if
        the ComplexMap is a quasiisomorphism.
      * "lastQuadrantComplex(Complex,List)" -- see lastQuadrantComplex,
        -- form the last quadrant complex
      * "lowerCorner(Complex,List)" -- see lowerCorner, --
        compute the lower corner
      * "productOfProjectiveSpaces(List)" -- see
        productOfProjectiveSpaces, -- Cox ring of a
        product of projective spaces and it Koszul dual exterior algebra
      * "productOfProjectiveSpaces(ZZ)" -- see productOfProjectiveSpaces,
        -- Cox ring of a product of projective
        spaces and it Koszul dual exterior algebra
      * "regionComplex(Complex,List,Sequence)" -- see regionComplex,
        -- region complex
      * "strand(Complex,List,List)" -- see strand, -- take the
        strand
      * "symExt(Matrix,Ring)" -- see symExt, -- from linear
        presentation matrices over S to linear presentation matrices over E and
        conversely
      * "tallyDegrees(Complex)" -- see tallyDegrees, --
        collect the degrees of the generators of the terms in a free complex
      * "tateData(Ring)" -- see tateData, -- reads TateData
        from the cache of an appropriate ring
      * "tateExtension(Complex)" -- see tateExtension, --
        extend the terms in the Beilinson window to a part of a corner complex
        of the corresponding Tate resolution
      * "tateResolution(Matrix,List,List)" -- see tateResolution,
        -- compute the Tate resolution
      * "tateResolution(Module,List,List)" -- see tateResolution,
        -- compute the Tate resolution
      * "trivialHomologicalTruncation(Complex,ZZ,ZZ)" -- see
        trivialHomologicalTruncation, -- return
        the trivial truncation of a chain complex
      * "upperCorner(Complex,List)" -- see upperCorner, --
        compute the upper corner
  * Symbols
      * BundleType -- Option in beilinson with values
        PrunedQuotient, QuotientBundle, DummyQuotientBundle, SubBundle,
        FreeBundle, or MapsBetweenFreeBundles
      * CoefficientField -- Option for
        productOfProjectiveSpaces
      * CohomologyVariables -- Option for
        productOfProjectiveSpaces
      * ContractionData -- name of a cached datum
      * DummyQuotientBundle -- value for the option
        BundleType in beilinson
      * FreeBundle -- value for the option BundleType in
        beilinson
      * MapsBetweenFreeBundles -- value for the
        option BundleType in beilinson
      * PrunedQuotient -- value for the option
        BundleType in beilinson
      * QuotientBundle -- value for the option
        BundleType in beilinson
      * Rings -- Option for productOfProjectiveSpaces
      * SubBundle -- value for the option BundleType in
        beilinson
      * TateData -- symbol used in beilinsonBundle

For the programmer
==================

The object TateOnProducts, is a package (Macaulay2Doc),
defined in TateOnProducts.m2.

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4068:0.

actionOnDirectImage -- recover the module structure via a Noether normalization
*******************************************************************************

  * Usage:
        retTable = actionOnDirectImage(I,M)
        retTable = actionOnDirectImage(J,N,phi)
        retTable = actionOnDirectImage(I,T)
  * Inputs:
      * I, an ideal (Macaulay2Doc), the saturated ideal of a
        projective variety Y (of dimension r) in some P^m
      * M, a module (Macaulay2Doc), representing a sheaf G on Y
      * J, an ideal (Macaulay2Doc), the saturated ideal of a
        projective variety X in some P^n
      * N, a module (Macaulay2Doc), representing a sheaf F on X
      * phi, a matrix (Macaulay2Doc), a k\times (m+1) matrix of
        homogeneous polynomials on P^n which define a morphism or rational map
        phi:X\to P^m, i.e., the 2\times 2 minors of phi vanish on X
      * T, a complex (Complexes), a (long enough) part of the
        Tate resolution of some complex of sheaves on Y
  * Outputs:
      * retTable, a hash table (Macaulay2Doc), whose keys are
        indices of cohomology groups R^i which survive, and the entry for each
        key is the list of (m+1) maps of chain complexes

Description
===========

This method provides another representation of the direct image complex.

Let M represent a coherent sheaf G on Y, and let \pi:Y\to P^r be a Noether
normalization of Y. Note that \pi is chosen among finite linear projections
P^m\to P^r from certain coordinate planes. Each coordinate y_i of P^m gives a
multiplication map G\to G(1), and its induced map \pi_{*}G\to (\pi_{*}G)(1).
Note that these induced maps provide an O_Y-module structure on \pi_{*}G, in
other words, we may recover the O_Y-module F from \pi_{*}G and this action.

If no map is specified, it computes the complex C on P^r and a list of induced
maps between chain complexes C\to C(1) on P^r associated to the multiplication
by y_0,...,y_m, where C represents the Beilinson monad of \pi_{*}G (or
R\pi_{*}U(T)).

If a map is specified by a matrix phi, then it computes the complex C on P^r
and a list of induced maps between chain complexes C\to C(1) on P^r associated
to the multiplication by y_0,...,y_m, where C represents the Beilinson monad of
R(\pi \cdot phi)_{*}F.

When n is quite big compared to r, it is not very efficient to deal with
Beilinson bundles on P^n since they have huge rank and presentation matrices.
In particular, the method directImageComplex becomes slow down.

The following is an example of direct images of the structure sheaf on a
rational normal curve of degree $d$.

+--------------------------------------------------+
|i1 : kk=ZZ/101; d=4;                              |
+--------------------------------------------------+
|i3 : needsPackage "Resultants";                   |
+--------------------------------------------------+
|i4 : vd=veronese(1,d,kk);                         |
|                                                  |
|o4 : RingMap kk[t ..t ] <-- kk[x ..x ]            |
|                 0   1          0   4             |
+--------------------------------------------------+
|i5 : R=target vd; S=source vd;                    |
+--------------------------------------------------+
|i7 : M=R^{1:-1}; I=ann M; J=ker vd;               |
|                                                  |
|o8 : Ideal of R                                   |
|                                                  |
|o9 : Ideal of S                                   |
+--------------------------------------------------+
|i10 : RM=directImageComplex(I,M,matrix vd);       |
+--------------------------------------------------+
|i11 : for i from min RM to max RM list (rank RM_i)|
|                                                  |
|o11 = {16, 48, 48, 16}                            |
|                                                  |
|o11 : List                                        |
+--------------------------------------------------+

RM looks complicated since it is consisted of universal bundles on $P^4$, which
are of high rank.

+-----------------------------------------------------------+
|i12 : retTable=actionOnDirectImage(I,M,matrix vd);         |
|We take a finite projection from P^n to P^d as {x   , x   }|
|                                                 0,0   0,4 |
+-----------------------------------------------------------+
|i13 : keys retTable                                        |
|                                                           |
|o13 = {0}                                                  |
|                                                           |
|o13 : List                                                 |
+-----------------------------------------------------------+

We see that 0 is the only key, in other words, there is no other R^i vd_{*}
except i=0. To see whether it gives an action on S/J, we can use the test
function isAction.

Note that list retTable#i is consisted of maps of chain complexes R^i(\pi \cdot
phi)_{*}(y_j) : C\to C(1) where C represents the direct image R^i(\pi \cdot
phi)_{*}F. In general, it does not give a right action on C itself. The induced
maps on cohomology groups provide a right action.

+-----------------------------------------------------------+
|i14 : isAction(J, apply(dim S, i->prune HH^0 retTable#0#i))|
|                                                           |
|o14 = true                                                 |
+-----------------------------------------------------------+

The following is a little more complicated example with nontrivial higher
direct images. Let X be the product of two quartic curves C, and f : X \to C be
the second projection. Let P, Q be two distinct points of C, and let L =
O(P\times C + Q\times C + D) be a line bundle on X where D is the diagonal. We
want to compute the higher direct images R^i f_{*}L. We choose C as the Fermat
quartic, and choose P, Q as points on the intersection of C and the line
V(x_2).

+-------------------------------------------------------------------------+
|i15 : kk=ZZ/1009;                                                        |
+-------------------------------------------------------------------------+
|i16 : (S,E)=productOfProjectiveSpaces({2,2},CoefficientField=>kk);       |
+-------------------------------------------------------------------------+
|i17 : f1=S_0^4+S_1^4+S_2^4; f2=S_3^4+S_4^4+S_5^4;                        |
+-------------------------------------------------------------------------+
|i19 : IX=ideal (f1,f2);                                                  |
|                                                                         |
|o19 : Ideal of S                                                         |
+-------------------------------------------------------------------------+
|i20 : P=matrix{{1,192,0}}; Q=matrix{{192,1,0}};                          |
|                                                                         |
|               1       3                                                 |
|o20 : Matrix ZZ  <-- ZZ                                                  |
|                                                                         |
|               1       3                                                 |
|o21 : Matrix ZZ  <-- ZZ                                                  |
+-------------------------------------------------------------------------+
|i22 : varX=matrix{{S_0,S_1,S_2}}; varY=matrix{{S_3,S_4,S_5}};            |
|                                                                         |
|              1      3                                                   |
|o22 : Matrix S  <-- S                                                    |
|                                                                         |
|              1      3                                                   |
|o23 : Matrix S  <-- S                                                    |
+-------------------------------------------------------------------------+
|i24 : PX=P||varX; QX=Q||varX;                                            |
|                                                                         |
|              2      3                                                   |
|o24 : Matrix S  <-- S                                                    |
|                                                                         |
|              2      3                                                   |
|o25 : Matrix S  <-- S                                                    |
+-------------------------------------------------------------------------+
|i26 : I1=ideal(f2, minors(2,PX)); -- ideal for P*C                       |
|                                                                         |
|o26 : Ideal of S                                                         |
+-------------------------------------------------------------------------+
|i27 : I2=ideal(f2, minors(2,QX)); -- ideal for Q*C                       |
|                                                                         |
|o27 : Ideal of S                                                         |
+-------------------------------------------------------------------------+
|i28 : I3=ideal(f1,f2, minors(2, varX||varY)); -- ideal for the diagonal D|
|                                                                         |
|o28 : Ideal of S                                                         |
+-------------------------------------------------------------------------+
|i29 : I=intersect(I1,I2,I3); -- ideal for P*C+Q*C+D                      |
|                                                                         |
|o29 : Ideal of S                                                         |
+-------------------------------------------------------------------------+
|i30 : SX=S/IX; Ldual=I/IX;                                               |
+-------------------------------------------------------------------------+
|i32 : betti (LX=Hom(Ldual, SX^1))                                        |
|                                                                         |
|              0  1                                                       |
|o32 = total: 10 26                                                       |
|          0:  1  .                                                       |
|          1:  1  1                                                       |
|          2:  .  1                                                       |
|          3:  8 24                                                       |
|                                                                         |
|o32 : BettiTally                                                         |
+-------------------------------------------------------------------------+

To compute its Tate resolution on the ambient space P^2 \times P^2, we first
consider it as a sheaf on P^2 \times P^2, and then take a linear presentation
matrix via a truncation.

+--------------------------------------------+
|i33 : phi = map(SX,S,vars SX);              |
|                                            |
|o33 : RingMap SX <-- S                      |
+--------------------------------------------+
|i34 : betti (L=prune pushForward(phi,LX))   |
|                                            |
|              0  1                          |
|o34 = total: 10 27                          |
|          0:  1  .                          |
|          1:  1  1                          |
|          2:  .  1                          |
|          3:  8 25                          |
|                                            |
|o34 : BettiTally                            |
+--------------------------------------------+
|i35 : Ltr = (truncate ({2,2},L))**S^{{2,2}};|
+--------------------------------------------+
|i36 : betti freeResolution Ltr              |
|                                            |
|              0   1   2  3  4               |
|o36 = total: 60 176 184 80 12               |
|          0: 60 176 184 80 12               |
|                                            |
|o36 : BettiTally                            |
+--------------------------------------------+

We read off (a finite subquotient of) the Tate resolution of Rf_{*}L as
follows.

+-----------------------------------------------------------------------------+
|i37 : Q=symExt(presentation Ltr, E);                                         |
|                                                                             |
|              184      60                                                    |
|o37 : Matrix E    <-- E                                                      |
+-----------------------------------------------------------------------------+
|i38 : T=((freeResolution (coker Q,LengthLimit=>12))**E^{{2,2}})[4];          |
+-----------------------------------------------------------------------------+
|i39 : cohomologyMatrix (T, -{5,5},{3,3})                                     |
|                                                                             |
|o39 = | 0        0        0        0       0      0    0     96k 0   |       |
|      | 0        0        0        0       0      0    0     60k 88k |       |
|      | 60h      48h      36h      24h     12h    3h+3 12    0   0   |       |
|      | 36h2+20h 28h2+16h 20h2+12h 12h2+8h 4h2+4h 5h+1 12h+4 0   0   |       |
|      | 92h2     72h2     52h2     32h2    12h2   8h   28h   0   0   |       |
|      | 168h2    132h2    96h2     60h2    24h2   12h  48h   0   0   |       |
|      | 244h2    192h2    140h2    88h2    36h2   16h  68h   0   0   |       |
|      | 320h2    252h2    184h2    116h2   48h2   20h  88h   0   0   |       |
|      | 396h2    312h2    228h2    144h2   60h2   24h  108h  0   0   |       |
|                                                                             |
|                       9               9                                     |
|o39 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i40 : sT=strand(T,{0,0},{0});                                                |
+-----------------------------------------------------------------------------+
|i41 : ma=6;                                                                  |
+-----------------------------------------------------------------------------+
|i42 : sTFull=(dual freeResolution (coker transpose (sT[ma]).dd_0,            |
|-----------------------------------------------------------------------------|
|LengthLimit=>2*ma))[-ma];                                                    |
+-----------------------------------------------------------------------------+
|i43 : (S',E')=productOfProjectiveSpaces({2},CoefficientField=>kk);           |
+-----------------------------------------------------------------------------+
|i44 : projOnE=map(E', E, toList(3:0)|(gens E'));                             |
|                                                                             |
|o44 : RingMap E' <-- E                                                       |
+-----------------------------------------------------------------------------+
|i45 : (mi, ma) = concentration sTFull;                                       |
+-----------------------------------------------------------------------------+
|i46 : Wmodules = hashTable for i from mi to ma list                          |
|          i =>  E'^(-apply(degrees sTFull_i, d -> d_{1}));                   |
+-----------------------------------------------------------------------------+
|i47 : Wmaps = hashTable for i from mi+1 to ma list                           |
|          i => map(Wmodules#(i-1), Wmodules#i, projOnE sTFull.dd_i);         |
+-----------------------------------------------------------------------------+
|i48 : W = if mi === ma then complex {Wmodules#mi} else complex Wmaps;        |
+-----------------------------------------------------------------------------+
|i49 : betti W                                                                |
|                                                                             |
|             -6 -5 -4 -3 -2 -1 0  1  2  3  4  5  6                           |
|o49 = total: 24 20 16 12  9  8 9 12 16 20 24 28 32                           |
|          0: 22 18 14 10  6  3 1  .  .  .  .  .  .                           |
|          1:  2  2  2  2  3  5 8 12 16 20 24 28 32                           |
|                                                                             |
|o49 : BettiTally                                                             |
+-----------------------------------------------------------------------------+

One can check that W has two strands (corresponding to R^0f_{*}L and R^1f_{*}L,
respectively). By taking the Beilinson functor, one can check that R^0f_{*}L is
the structure sheaf on C, and R^1f_{*}L is a torsion sheaf supported on two
points lying on the intersection of C and the line V(x_2) other than P, Q.

+-----------------------------------------------------------------------------+
|i50 : R0fL = prune HH^0 beilinson W                                          |
|                                                                             |
|o50 = cokernel | x_(0,0)^4+x_(0,1)^4+x_(0,2)^4 |                             |
|                                                                             |
|o50 : S'-module                1                                             |
|, quotient of S'                                                             |
+-----------------------------------------------------------------------------+
|i51 : R1fL = prune HH^1 beilinson W                                          |
|                                                                             |
|o51 = cokernel | -131x_(0,2) 0       0       0       x_(0,0)                 |
|               | x_(0,2)     x_(0,1) x_(0,0) 0       0                       |
|               | 0           0       0       x_(0,2) -x_(0,1)                |
|               | 0           0       0       0       0                       |
|               | 0           0       0       0       0                       |
|                                                                             |
|                               5                                             |
|o51 : S'-module, quotient of S'                                              |
|-----------------------------------------------------------------------------|
|x_(0,1)            0       0       -131x_(0,2) 0       131x_(0,2) 0       |  |
|0                  0       0       0           0       0          0       |  |
|x_(0,0)+439x_(0,1) 0       0       0           0       0          0       |  |
|0                  x_(0,2) x_(0,1) x_(0,0)     0       0          0       |  |
|0                  0       0       0           x_(0,2) x_(0,1)    x_(0,0) |  |
+-----------------------------------------------------------------------------+
|i52 : degree R0fL                                                            |
|                                                                             |
|o52 = 4                                                                      |
+-----------------------------------------------------------------------------+
|i53 : primaryDecomposition ann R0fL                                          |
|                                                                             |
|              4      4      4                                                |
|o53 = {ideal(x    + x    + x   )}                                            |
|              0,0    0,1    0,2                                              |
|                                                                             |
|o53 : List                                                                   |
+-----------------------------------------------------------------------------+
|i54 : degree R1fL                                                            |
|                                                                             |
|o54 = 2                                                                      |
+-----------------------------------------------------------------------------+
|i55 : primaryDecomposition ann R1fL                                          |
|                                                                             |
|                                                                             |
|o55 = {ideal (x   , x    + 247x   ), ideal (x   , x    + 192x   ), ideal     |
|               0,2   0,0       0,1           0,2   0,0       0,1             |
|      -----------------------------------------------------------------------|
|                    2                                                        |
|      (x   , x   , x   )}                                                    |
|        0,1   0,0   0,2                                                      |
|                                                                             |
|o55 : List                                                                   |
+-----------------------------------------------------------------------------+

These module also can be seen as in the following way via a finite linear
projection. We take a further projection \pi:C\to  P^1, and check whether these
modules induce an action on the direct image under \pi, in other words, provide
{O_C}-module structures. As results, these actions make (the sheafification of)
M0 and M1 into {O_C}-modules which are identical to R^0f_{*}L and R^1f_{*}L.

+-----------------------------------------------------------+
|i56 : J=ideal (S'_0^4+S'_1^4+S'_2^4);                      |
|                                                           |
|o56 : Ideal of S'                                          |
+-----------------------------------------------------------+
|i57 : retTable=actionOnDirectImage(J,W);                   |
|We take a finite projection from P^n to P^d as {x   , x   }|
|                                                 0,1   0,2 |
+-----------------------------------------------------------+
|i58 : keys retTable                                        |
|                                                           |
|o58 = {0, 1}                                               |
|                                                           |
|o58 : List                                                 |
+-----------------------------------------------------------+

We see that 0, 1 appear as keys, in other words, both R^0f_{*}L and R^1f_{*}L
survives.

+-----------------------------------------------------------------------------+
|i59 : prunedActionList = i->apply(dim S',j->prune HH^i retTable#i#j);        |
+-----------------------------------------------------------------------------+
|i60 : apply(keys retTable, i->isAction(J,prunedActionList(i)))               |
|                                                                             |
|o60 = {true, true}                                                           |
|                                                                             |
|o60 : List                                                                   |
+-----------------------------------------------------------------------------+
|i61 : M0=source (prunedActionList(0))_0                                      |
|                                                                             |
|o61 = cokernel {2} | 0        -x_(0,1) 0        |                            |
|               {2} | x_(0,0)  0        0        |                            |
|               {2} | -x_(0,1) x_(0,0)  0        |                            |
|               {2} | 0        0        0        |                            |
|               {2} | 0        0        x_(0,0)  |                            |
|               {2} | 0        0        -x_(0,1) |                            |
|               {3} | 0        0        0        |                            |
|                                                                             |
|                                                         7                   |
|o61 : kk[x   ..x   ]-module, quotient of (kk[x   ..x   ])                    |
|          0,0   0,1                           0,0   0,1                      |
+-----------------------------------------------------------------------------+
|i62 : (rank M0, degree M0, betti freeResolution M0)                          |
|                                                                             |
|                    0 1                                                      |
|o62 = (4, 4, total: 7 3)                                                     |
|                 2: 6 3                                                      |
|                 3: 1 .                                                      |
|                                                                             |
|o62 : Sequence                                                               |
+-----------------------------------------------------------------------------+
|i63 : isIsomorphicStrict(truncate(regularity M0, M0), truncate(regularity M0,|
|                                                                             |
|o63 = true                                                                   |
|-----------------------------------------------------------------------------|
|dual dual M0))                                                               |
+-----------------------------------------------------------------------------+
|i64 : dual dual M0                                                           |
|                                                                             |
|                      4                                                      |
|o64 = (kk[x   ..x   ])                                                       |
|           0,0   0,1                                                         |
|                                                                             |
|o64 : kk[x   ..x   ]-module, free, degrees {3, 2, 1, 0}                      |
|          0,0   0,1                                                          |
+-----------------------------------------------------------------------------+
|i65 : M1=source (prunedActionList(1))_0                                      |
|                                                                             |
|o65 = cokernel {2} | x_(0,1) 0       |                                       |
|               {2} | 0       x_(0,1) |                                       |
|                                                                             |
|                                                         2                   |
|o65 : kk[x   ..x   ]-module, quotient of (kk[x   ..x   ])                    |
|          0,0   0,1                           0,0   0,1                      |
+-----------------------------------------------------------------------------+
|i66 : (rank M1, degree M1, betti freeResolution M1)                          |
|                                                                             |
|                    0 1                                                      |
|o66 = (0, 2, total: 2 2)                                                     |
|                 2: 2 2                                                      |
|                                                                             |
|o66 : Sequence                                                               |
+-----------------------------------------------------------------------------+

Note that the sheafification of M0 (=R^0(\pi \cdot f)_{*}L) is a rank 4 vector
bundle O \oplus O(-1) \oplus O(-2) \oplus O(-3) on P^1, and the sheafification
of M1 (= R^1(\pi \cdot f)_{*} L) is a torsion sheaf on P^1 supported on the
double point at [1:0]. Together with the induced action on S', they have an
O_C-module structure as desired.

Caveat
======

Note that the resulting complex is a chain complex instead of a cochain
complex, so that for example HH^i RpiM = HH_{-i} RpiM. Also note that this
requires a pseudo-inverse computation of a split exact sequence, which might
fail over finite fields (see SVDComplexes).

See also
========

  * directImageComplex -- compute the direct image
    complex

Ways to use actionOnDirectImage:
================================

  * "actionOnDirectImage(Ideal,Complex)"
  * "actionOnDirectImage(Ideal,Module)"
  * "actionOnDirectImage(Ideal,Module,Matrix)"

For the programmer
==================

The object actionOnDirectImage, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:6242:0.

beilinson -- apply the beilinson functor
****************************************

  * Usage:
        M=beilinson F
        phi=beilinson psi
        C=beilinson T
  * Inputs:
      * F, a module (Macaulay2Doc), a free module over the
        exterior algebra E
      * psi, a matrix (Macaulay2Doc), a map between free modules
        over E
      * T, a complex (Complexes), a complex of free modules over
        E
  * Optional inputs (Macaulay2Doc),:
      * BundleType => a symbol (Macaulay2Doc), default value
        PrunedQuotient, the possible values are described in BundleType
  * Outputs:
      * M, a module (Macaulay2Doc), a module over the symmetric
        algebra S
      * phi, a matrix (Macaulay2Doc), a map between S-modules
      * C, a complex (Complexes), a chain complex of S-modules

Description
===========

The Beilinson functor is a functor from the category of free E-modules to the
category of coherent sheaves which associates to a cyclic free E-module of
generated in multidegree a the vector bundle U^a. Note that the U^a for
multidegrees a=\{a_1,...,a_t\} with 0 \le a_i \le n_i form a full exceptional
series for the derived category of coherent sheaves on the product PP = P^{n_1}
\times ... \times P^{n_t} of t projective spaces, see e.g. Tate Resolutions on
Products of Projective Spaces (see http://arxiv.org/abs/1411.5724 ).

In the function we compute from a complex of free E-modules the corresponding
complex of graded S-modules, whose sheafifications are the corresponding
sheaves. The corresponding graded S-module are chosen as quotients of free
S-modules in case of the default option BundleType=>PrunedQuotient, or as
submodules of free S-modules. The true Beilinson functor is obtained by the
sheafication of resulting the complex.

The Beilinson monad of a coherent sheaf $\mathcal F$ is the sheafication of
beilinson( T($\mathcal F$)) of its Tate resolution T($\mathcal F$).

+-----------------------------------------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces {2,1}                                 |
|                                                                             |
|o1 = (S, E)                                                                  |
|                                                                             |
|o1 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i2 : psi=random(E^{{-1,0}}, E^{{-2,-1}})                                     |
|                                                                             |
|o2 = {1, 0} | 107e_(0,0)e_(1,0)-5570e_(0,1)e_(1,0)+3783e_(0,2)e_(1,0)+4376e_(|
|     ------------------------------------------------------------------------|
|     0,0)e_(1,1)+3187e_(0,1)e_(1,1)-5307e_(0,2)e_(1,1) |                     |
|                                                                             |
|             1      1                                                        |
|o2 : Matrix E  <-- E                                                         |
+-----------------------------------------------------------------------------+
|i3 : phi=beilinson psi                                                       |
|                                                                             |
|o3 = {1, 0} | -5307x_(1,0)-3783x_(1,1) |                                     |
|     {1, 0} | -3187x_(1,0)-5570x_(1,1) |                                     |
|     {1, 0} | 4376x_(1,0)-107x_(1,1)   |                                     |
|                                                                             |
|o3 : Matrix                                                                  |
+-----------------------------------------------------------------------------+
|i4 : beilinson(E^{{-1,0}})                                                   |
|                                                                             |
|o4 = cokernel {1, 0} | x_(0,2)  |                                            |
|              {1, 0} | -x_(0,1) |                                            |
|              {1, 0} | x_(0,0)  |                                            |
|                                                                             |
|                            3                                                |
|o4 : S-module, quotient of S                                                 |
+-----------------------------------------------------------------------------+
|i5 : T = complex{psi}                                                        |
|                                                                             |
|      1      1                                                               |
|o5 = E  <-- E                                                                |
|                                                                             |
|     0      1                                                                |
|                                                                             |
|o5 : Complex                                                                 |
+-----------------------------------------------------------------------------+
|i6 : C = beilinson T                                                         |
|                                                                             |
|                                       1                                     |
|o6 = cokernel {1, 0} | x_(0,2)  | <-- S                                      |
|              {1, 0} | -x_(0,1) |                                            |
|              {1, 0} | x_(0,0)  |     1                                      |
|                                                                             |
|     0                                                                       |
|                                                                             |
|o6 : Complex                                                                 |
+-----------------------------------------------------------------------------+
|i7 : betti T                                                                 |
|                                                                             |
|            0 1                                                              |
|o7 = total: 1 1                                                              |
|         1: 1 .                                                              |
|         2: . 1                                                              |
|                                                                             |
|o7 : BettiTally                                                              |
+-----------------------------------------------------------------------------+

See also
========

  * BundleType -- Option in beilinson with values
    PrunedQuotient, QuotientBundle, DummyQuotientBundle, SubBundle, FreeBundle,
    or MapsBetweenFreeBundles
  * SubBundle -- value for the option BundleType in beilinson
  * PrunedQuotient -- value for the option BundleType in
    beilinson

Ways to use beilinson:
======================

  * "beilinson(Complex)"
  * "beilinson(Matrix)"
  * "beilinson(Module)"

For the programmer
==================

The object beilinson, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5701:0.

beilinsonBundle -- compute a basic Beilinson bundle
***************************************************

  * Usage:
        B=beilinsonBundle(i,whichblock,E)
        B=beilinsonBundle(a,E)
  * Inputs:
      * i, an integer (Macaulay2Doc), 0 \le i \le n_{whichblock}
      * whichblock, an integer (Macaulay2Doc), 0 \le whichblock \le
        r-1
      * E, a ring (Macaulay2Doc), the exterior algebra or symmetric
        algebra
      * a, a list (Macaulay2Doc), of integers \{a_0,...,a_{(r-1)}
        \}
  * Optional inputs (Macaulay2Doc),:
      * BundleType => a symbol (Macaulay2Doc), default value
        PrunedQuotient, the possible values are SubBundle or PrunedQuotient
  * Outputs:
      * B, a module (Macaulay2Doc), a module over the symmetric
        algebra S

Description
===========

The first version computes a basic Beilinson bundle, i.e. the pullback of a
Beilinson bundle from a single factor of a the product PP = P^{n_0} \times ...
\times P^{n_{(r-1)}} of r projective spaces.

The second version computes the tensor product of the basic bundles
beilinsonBundle(a_i,i,E) for i from 0 to r-1. See also Tate Resolutions on
Products of Projective Spaces (see http://arxiv.org/abs/1411.5724 ).

The vector bundle B is represented by its S-module of global sections, which is
either the quotient or a submodule of a free S-modules depending on the value
of the option BundleType.

The results are stashed in E.TateData.BeilinsonBundles, so they are not
recomputed.

+------------------------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces {2,3}                |
|                                                            |
|o1 = (S, E)                                                 |
|                                                            |
|o1 : Sequence                                               |
+------------------------------------------------------------+
|i2 : B1=beilinsonBundle(1,0,E)                              |
|                                                            |
|o2 = cokernel {1, 0} | x_(0,2)  |                           |
|              {1, 0} | -x_(0,1) |                           |
|              {1, 0} | x_(0,0)  |                           |
|                                                            |
|                            3                               |
|o2 : S-module, quotient of S                                |
+------------------------------------------------------------+
|i3 : B2=beilinsonBundle(1,1,E)                              |
|                                                            |
|o3 = cokernel {0, 1} | x_(1,2)  x_(1,3)  0        0        ||
|              {0, 1} | -x_(1,1) 0        x_(1,3)  0        ||
|              {0, 1} | x_(1,0)  0        0        x_(1,3)  ||
|              {0, 1} | 0        -x_(1,1) -x_(1,2) 0        ||
|              {0, 1} | 0        x_(1,0)  0        -x_(1,2) ||
|              {0, 1} | 0        0        x_(1,0)  x_(1,1)  ||
|                                                            |
|                            6                               |
|o3 : S-module, quotient of S                                |
+------------------------------------------------------------+
|i4 : B=beilinsonBundle({1,1},E); betti B                    |
|                                                            |
|             0  1                                           |
|o5 = total: 18 18                                           |
|         2: 18 18                                           |
|                                                            |
|o5 : BettiTally                                             |
+------------------------------------------------------------+
|i6 : B1**B2 == B                                            |
|                                                            |
|o6 = true                                                   |
+------------------------------------------------------------+

See also
========

  * BundleType -- Option in beilinson with values
    PrunedQuotient, QuotientBundle, DummyQuotientBundle, SubBundle, FreeBundle,
    or MapsBetweenFreeBundles
  * SubBundle -- value for the option BundleType in beilinson
  * PrunedQuotient -- value for the option BundleType in
    beilinson

Ways to use beilinsonBundle:
============================

  * "beilinsonBundle(List,Ring)"
  * "beilinsonBundle(ZZ,ZZ,Ring)"

For the programmer
==================

The object beilinsonBundle, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5754:0.

beilinsonContraction -- compute a Beilinson contraction
*******************************************************

  * Usage:
        beilinsonContraction(e, rowdeg, coldeg)
  * Inputs:
      * e, a ring element (Macaulay2Doc), an element of the
        exterior algebra E
      * rowdeg, a list (Macaulay2Doc),
      * coldeg, a list (Macaulay2Doc), two multidegrees
  * Optional inputs (Macaulay2Doc),:
      * BundleType => a symbol (Macaulay2Doc), default value
        PrunedQuotient, with values PrunedQuotient or SubBundle
  * Outputs:
      * a matrix (Macaulay2Doc), a map between modules over the
        symmetric algebra S

Description
===========

Returns a map between two Beilinson generators (i.e. the beilinson generators
beilinsonBundle(a, E) of the derived category). Note:

(1) (S,E) is the result of productOfProjectiveSpaces

(2) e is a homogeneous element of E giving a map from E(-coldeg) -->
E(-rowdeg).

+---------------------------------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces {2,1}                         |
|                                                                     |
|o1 = (S, E)                                                          |
|                                                                     |
|o1 : Sequence                                                        |
+---------------------------------------------------------------------+
|i2 : gens S, gens E                                                  |
|                                                                     |
|o2 = ({x   , x   , x   , x   , x   }, {e   , e   , e   , e   , e   })|
|        0,0   0,1   0,2   1,0   1,1     0,0   0,1   0,2   1,0   1,1  |
|                                                                     |
|o2 : Sequence                                                        |
+---------------------------------------------------------------------+
|i3 : f=e_(0,0)*e_(0,1)*e_(1,0)                                       |
|                                                                     |
|o3 = e   e   e                                                       |
|      0,0 0,1 1,0                                                    |
|                                                                     |
|o3 : E                                                               |
+---------------------------------------------------------------------+
|i4 : beilinsonContraction(f,{0,0},{2,1})                             |
|                                                                     |
|o4 = | x_(0,2)x_(1,1) |                                              |
|                                                                     |
|             1      1                                                |
|o4 : Matrix S  <-- S                                                 |
+---------------------------------------------------------------------+
|i5 : m=beilinsonContraction(e_(0,0)*e_(1,0),{0,0},{1,1})             |
|                                                                     |
|o5 = | x_(0,1)x_(1,1) x_(0,2)x_(1,1) 0 |                             |
|                                                                     |
|             1      3                                                |
|o5 : Matrix S  <-- S                                                 |
+---------------------------------------------------------------------+

Caveat
======

E is positively graded, in contrast to the paper!

See also
========

  * beilinson -- apply the beilinson functor
  * beilinsonBundle -- compute a basic Beilinson bundle
  * BundleType -- Option in beilinson with values
    PrunedQuotient, QuotientBundle, DummyQuotientBundle, SubBundle, FreeBundle,
    or MapsBetweenFreeBundles
  * SubBundle -- value for the option BundleType in beilinson
  * PrunedQuotient -- value for the option BundleType in
    beilinson

Ways to use beilinsonContraction:
=================================

  * "beilinsonContraction(RingElement,List,List)"

For the programmer
==================

The object beilinsonContraction, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5803:0.

beilinsonWindow -- extract the subquotient complex which contributes to the Beilinson window
********************************************************************************************

  * Usage:
        W=beilinsonWindow T
  * Inputs:
      * T, a complex (Complexes), a (part of a) Tate resolution
        on a product of t projective spaces
  * Outputs:
      * W, a complex (Complexes),

Description
===========

Extract the terms which under the U-functor defined in Tate Resolutions on
Products of Projective Spaces (see http://arxiv.org/abs/1411.5724 ) contributed
to the Beilinson complex U(T) of T, i.e. W is the smallest free subquotient
complex of T such that U(W) = U(T)

+-----------------------------------------------------+
|i1 : n={1,1};                                        |
+-----------------------------------------------------+
|i2 : (S,E) = productOfProjectiveSpaces n;            |
+-----------------------------------------------------+
|i3 : W=(complex {map(E^0,E^1,0),map(E^1,E^0,0)})[1]  |
|                                                     |
|             1                                       |
|o3 = 0  <-- E  <-- 0                                 |
|                                                     |
|     -1     0      1                                 |
|                                                     |
|o3 : Complex                                         |
+-----------------------------------------------------+
|i4 : time T=tateExtension W;                         |
| -- used 0.970836s (cpu); 0.729428s (thread); 0s (gc)|
+-----------------------------------------------------+
|i5 : cohomologyMatrix(T,-{3,3},{3,3})                |
|                                                     |
|o5 = | 8h  4h  0 4  8  12 16 |                       |
|     | 6h  3h  0 3  6  9  12 |                       |
|     | 4h  2h  0 2  4  6  8  |                       |
|     | 2h  h   0 1  2  3  4  |                       |
|     | 0   0   0 0  0  0  0  |                       |
|     | 2h2 h2  0 h  2h 3h 4h |                       |
|     | 4h2 2h2 0 2h 4h 6h 8h |                       |
|                                                     |
|                      7               7              |
|o5 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])               |
+-----------------------------------------------------+
|i6 : W=beilinsonWindow T                             |
|                                                     |
|      1                                              |
|o6 = E  <-- 0                                        |
|                                                     |
|     0      1                                        |
|                                                     |
|o6 : Complex                                         |
+-----------------------------------------------------+
|i7 : cohomologyMatrix(W,-{2,2},{2,2})                |
|                                                     |
|o7 = | 0 0 0 0 0 |                                   |
|     | 0 0 0 0 0 |                                   |
|     | 0 0 1 0 0 |                                   |
|     | 0 0 0 0 0 |                                   |
|     | 0 0 0 0 0 |                                   |
|                                                     |
|                      5               5              |
|o7 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])               |
+-----------------------------------------------------+
|i8 : a={2,-3}                                        |
|                                                     |
|o8 = {2, -3}                                         |
|                                                     |
|o8 : List                                            |
+-----------------------------------------------------+
|i9 : W2=beilinsonWindow ((T**E^{a})[sum a])          |
|                                                     |
|      4      11      6                               |
|o9 = E  <-- E   <-- E  <-- 0                         |
|                                                     |
|     -1     0       1      2                         |
|                                                     |
|o9 : Complex                                         |
+-----------------------------------------------------+
|i10 : cohomologyMatrix(W2,-{2,2},{2,2})              |
|                                                     |
|o10 = | 0 0  0  0 0 |                                |
|      | 0 0  0  0 0 |                                |
|      | 0 8h 4h 0 0 |                                |
|      | 0 6h 3h 0 0 |                                |
|      | 0 0  0  0 0 |                                |
|                                                     |
|                       5               5             |
|o10 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])              |
+-----------------------------------------------------+
|i11 : cohomologyMatrix(tateExtension W2,-{2,2},{2,2})|
|                                                     |
|o11 = | 18h 12h 6h 0 6 |                             |
|      | 15h 10h 5h 0 5 |                             |
|      | 12h 8h  4h 0 4 |                             |
|      | 9h  6h  3h 0 3 |                             |
|      | 6h  4h  2h 0 2 |                             |
|                                                     |
|                       5               5             |
|o11 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])              |
+-----------------------------------------------------+

See also
========

  * beilinsonWindow -- extract the subquotient complex
    which contributes to the Beilinson window
  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution

Ways to use beilinsonWindow:
============================

  * "beilinsonWindow(Complex)"

For the programmer
==================

The object beilinsonWindow, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5544:0.

bgg -- make a linear free complex from a module over an exterior algebra or a symmetric algebra
***********************************************************************************************

  * Usage:
        LP = bgg P
        RM = bgg(M,LengthLimit=>4)
  * Inputs:
      * P, a module (Macaulay2Doc), module over an exterior
        algebra E
      * M, a module (Macaulay2Doc), module over an symmetric
        algebra S
  * Optional inputs (Macaulay2Doc),:
      * LengthLimit => ..., default value null
  * Outputs:
      * LP, a complex (Complexes), over a symmetric algebra
      * RM, a complex (Complexes), over a exterior algebra

Description
===========

If P is an E-module, then LP becomes a linear complex of free S-modules, where
(S,E) is the Koszul pair corresponding to a product of projective spaces.
Similarly, if M is an S-module, them RM becomes a linear free complex over the
exterior algebra E of length bounded by the LengthLimit.

The complex LP is that produced from P by the Bernstein-Gel'fand-Gel'fand
functor called L in our paper Tate Resolutions on Products of Projective Spaces
(see http://arxiv.org/abs/ ). Similarly, the complex RM produced from M is a
bounded piece of the infinite complex of the Bernstein-Gel'fand-Gel'fand
functor called R in loc.cit. L and R form a pair of adjoint functors.

+---------------------------------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces{1,2}                          |
|                                                                     |
|o1 = (S, E)                                                          |
|                                                                     |
|o1 : Sequence                                                        |
+---------------------------------------------------------------------+
|i2 : P = prune truncate({1,2},E^1)**E^{{1,2}};                       |
+---------------------------------------------------------------------+
|i3 : LP = bgg P                                                      |
|                                                                     |
|      1      5      6                                                |
|o3 = S  <-- S  <-- S                                                 |
|                                                                     |
|     -2     -1     0                                                 |
|                                                                     |
|o3 : Complex                                                         |
+---------------------------------------------------------------------+
|i4 : netList apply(toList(min LP..max LP), i-> decompose ann HH_i LP)|
|                                                                     |
|     +------------------------------------+------------------------+ |
|o4 = |ideal (x   , x   , x   , x   , x   )|                        | |
|     |        1,2   1,1   1,0   0,1   0,0 |                        | |
|     +------------------------------------+------------------------+ |
|     |ideal (x   , x   )                  |ideal (x   , x   , x   )| |
|     |        0,1   0,0                   |        1,2   1,1   1,0 | |
|     +------------------------------------+------------------------+ |
|     |ideal ()                            |                        | |
|     +------------------------------------+------------------------+ |
+---------------------------------------------------------------------+
|i5 : M = prune HH_0 LP                                               |
|                                                                     |
|o5 = cokernel {1, 1} | -x_(1,2) |                                    |
|              {1, 1} | x_(1,0)  |                                    |
|              {1, 1} | -x_(1,1) |                                    |
|                                                                     |
|                            3                                        |
|o5 : S-module, quotient of S                                         |
+---------------------------------------------------------------------+
|i6 : betti freeResolution M                                          |
|                                                                     |
|            0 1                                                      |
|o6 = total: 3 1                                                      |
|         2: 3 1                                                      |
|                                                                     |
|o6 : BettiTally                                                      |
+---------------------------------------------------------------------+
|i7 : high = {3,3}                                                    |
|                                                                     |
|o7 = {3, 3}                                                          |
|                                                                     |
|o7 : List                                                            |
+---------------------------------------------------------------------+
|i8 : cohomologyMatrix(M, -high, high)                                |
|                                                                     |
|o8 = | 45h 30h 15h 0 15  30  45  |                                   |
|     | 24h 16h 8h  0 8   16  24  |                                   |
|     | 9h  6h  3h  0 3   6   9   |                                   |
|     | 0   0   0   0 0   0   0   |                                   |
|     | 3h2 2h2 h2  0 h   2h  3h  |                                   |
|     | 0   0   0   0 0   0   0   |                                   |
|     | 9h3 6h3 3h3 0 3h2 6h2 9h2 |                                   |
|                                                                     |
|                      7               7                              |
|o8 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                               |
+---------------------------------------------------------------------+
+-----------------------------------------------------------------------------+
|i9 : M=module ideal vars S                                                   |
|                                                                             |
|o9 = image | x_(0,0) x_(0,1) x_(1,0) x_(1,1) x_(1,2) |                       |
|                                                                             |
|                             1                                               |
|o9 : S-module, submodule of S                                                |
+-----------------------------------------------------------------------------+
|i10 : RM = bgg(M,LengthLimit=>3)                                             |
|                                                                             |
|       70      35      15      5                                             |
|o10 = E   <-- E   <-- E   <-- E                                              |
|                                                                             |
|      -4      -3      -2      -1                                             |
|                                                                             |
|o10 : Complex                                                                |
+-----------------------------------------------------------------------------+
|i11 : betti RM                                                               |
|                                                                             |
|             -4 -3 -2 -1                                                     |
|o11 = total: 70 35 15  5                                                     |
|          0: 70 35 15  5                                                     |
|                                                                             |
|o11 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i12 : tallyDegrees RM                                                        |
|                                                                             |
|o12 = (Tally{{-1, -3} => 20}, Tally{{-1, -2} => 12}, Tally{{-1, -1} => 6},   |
|             {-2, -2} => 18         {-2, -1} => 9          {-2, 0} => 3      |
|             {-3, -1} => 12         {-3, 0} => 4           {0, -2} => 6      |
|             {-4, 0} => 5           {0, -3} => 10                            |
|             {0, -4} => 15                                                   |
|      -----------------------------------------------------------------------|
|      Tally{{-1, 0} => 2})                                                   |
|            {0, -1} => 3                                                     |
|                                                                             |
|o12 : Sequence                                                               |
+-----------------------------------------------------------------------------+

See also
========

  * productOfProjectiveSpaces -- Cox ring of
    a product of projective spaces and it Koszul dual exterior algebra
  * tallyDegrees -- collect the degrees of the generators
    of the terms in a free complex

Ways to use bgg:
================

  * "bgg(Module)"

For the programmer
==================

The object bgg, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:6516:0.

BundleType -- Option in beilinson with values PrunedQuotient, QuotientBundle, DummyQuotientBundle, SubBundle, FreeBundle, or MapsBetweenFreeBundles
***************************************************************************************************************************************************

Description
===========

The Beilinson bundle U^a can be represented either by quotient or sub-bundles

See also
========

  * beilinson -- apply the beilinson functor

Functions with optional argument named BundleType:
==================================================

  * "beilinson(...,BundleType=>...)" -- see beilinson, --
    apply the beilinson functor
  * "beilinsonBundle(...,BundleType=>...)" -- see beilinsonBundle,
    -- compute a basic Beilinson bundle
  * "beilinsonContraction(...,BundleType=>...)" -- see
    beilinsonContraction, -- compute a Beilinson
    contraction
  * "contractionData(...,BundleType=>...)" -- see contractionData,
    -- Compute the action of monomials in the exterior algebra
    on the Beilinson monad
  * directImageComplex(...,BundleType=>...) (missing documentation)

For the programmer
==================

The object BundleType, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5817:0.

coarseMultigradedRegularity -- A truncation that has linear resolution
**********************************************************************

  * Usage:
        R = coarseMultigradedRegularity M
  * Inputs:
      * M, a module (Macaulay2Doc), multi-graded module over a
        multi-graded polynomial ring
      * M, a complex (Complexes), multi-graded module over a
        multi-graded polynomial ring
  * Optional inputs (Macaulay2Doc),:
      * Strategy => a string (Macaulay2Doc), default value
        "MinimalResolution"
  * Outputs:
      * R, a list (Macaulay2Doc), degree such that truncate(R,M)
        has linear resolution

Description
===========

Uses a free resolution and takes the maximum degree of the terms.

+-------------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces{1,1,2}    |
|                                                 |
|o1 = (S, E)                                      |
|                                                 |
|o1 : Sequence                                    |
+-------------------------------------------------+
|i2 : I = ideal(x_(0,0)^2,x_(1,0)^3,x_(2,0)^4)    |
|                                                 |
|             2     3     4                       |
|o2 = ideal (x   , x   , x   )                    |
|             0,0   1,0   2,0                     |
|                                                 |
|o2 : Ideal of S                                  |
+-------------------------------------------------+
|i3 : R = coarseMultigradedRegularity(S^1/I)      |
|                                                 |
|o3 = {2, 3, 4}                                   |
|                                                 |
|o3 : List                                        |
+-------------------------------------------------+
|i4 : N = truncate(R,S^1/I);                      |
+-------------------------------------------------+
|i5 : betti freeResolution N                      |
|                                                 |
|             0   1   2   3  4                    |
|o5 = total: 84 312 432 264 60                    |
|         9: 84 312 432 264 60                    |
|                                                 |
|o5 : BettiTally                                  |
+-------------------------------------------------+
|i6 : netList toList tallyDegrees freeResolution N|
|                                                 |
|     +-----------------------+                   |
|o6 = |Tally{{2, 3, 4} => 84} |                   |
|     +-----------------------+                   |
|     |Tally{{2, 3, 5} => 144}|                   |
|     |      {2, 4, 4} => 84  |                   |
|     |      {3, 3, 4} => 84  |                   |
|     +-----------------------+                   |
|     |Tally{{2, 3, 6} => 60 }|                   |
|     |      {2, 4, 5} => 144 |                   |
|     |      {3, 3, 5} => 144 |                   |
|     |      {3, 4, 4} => 84  |                   |
|     +-----------------------+                   |
|     |Tally{{2, 4, 6} => 60 }|                   |
|     |      {3, 3, 6} => 60  |                   |
|     |      {3, 4, 5} => 144 |                   |
|     +-----------------------+                   |
|     |Tally{{3, 4, 6} => 60} |                   |
|     +-----------------------+                   |
+-------------------------------------------------+

See the proof of Proposition 2.7 in Tate Resolutions on Products of Projective
Spaces (see https://arxiv.org/abs/1411.5724 ).

See also
========

  * productOfProjectiveSpaces -- Cox ring of
    a product of projective spaces and it Koszul dual exterior algebra
  * tallyDegrees -- collect the degrees of the generators
    of the terms in a free complex

Ways to use coarseMultigradedRegularity:
========================================

  * "coarseMultigradedRegularity(Complex)"
  * "coarseMultigradedRegularity(Module)"

For the programmer
==================

The object coarseMultigradedRegularity, is a
method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4322:0.

CoefficientField -- Option for productOfProjectiveSpaces
********************************************************

Description
===========

Base field for the two polynomial rings

Functions with optional argument named CoefficientField:
========================================================

  * "productOfProjectiveSpaces(...,CoefficientField=>...)" -- see
    productOfProjectiveSpaces, -- Cox ring of a
    product of projective spaces and it Koszul dual exterior algebra

For the programmer
==================

The object CoefficientField, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4383:0.

cohomologyHashTable -- cohomology groups of a sheaf on a product of projective spaces, or of (part) of a Tate resolution
************************************************************************************************************************

  * Usage:
        H=cohomologyHashTable(M,low,high)
        H=cohomologyHashTable(T,low,high)
  * Inputs:
      * M, a module (Macaulay2Doc), graded module representing a
        sheaf on a product of projective spaces
      * T, a complex (Complexes), free complex over the exterior
        algebra
      * low, a list (Macaulay2Doc),
      * high, a list (Macaulay2Doc), two lists representing
        multi-degrees, the range for computation.
  * Outputs:
      * H, a hash table (Macaulay2Doc), values are dimensions
        of (hyper)cohomology groups

Description
===========

If M is a multi-graded module representing a coherent sheaf F on $P^n :=
P^{n_0} x .. x P^{n_{t-1}}$, the script returns a hash table with entries {a,i}
=> h^i(F(a)) where a is a multi-index, low<=a<=high in the partial order (thus
the value is 0 when i is not in the range 0..sum n.) In case T is a Tate
resolution corresponding to an object F in D^b(P^n), then the values returned
are the dimensions of the hypercohomology groups of twists of F, and the values
can be nonzero in a wider range.

In case the number of factors t is 2, the output of cohomologyMatrix,
is easier to parse.

The script computes a sufficient part of the Tate resolution for F, and then
calls itself in the version for a Tate resolution.

If T is not a large enough part of the Tate resolution, such as W below, then
the function collects only the contribution of T to the cohomology table of the
Tate resolution, according to the formula in Corollary 0.2 of Tate Resolutions
on Products of Projective Spaces (see https://arxiv.org/abs/1411.5724 ).

+-------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces{1,2}|
|                                           |
|o1 = (S, E)                                |
|                                           |
|o1 : Sequence                              |
+-------------------------------------------+
|i2 : M = S^1                               |
|                                           |
|      1                                    |
|o2 = S                                     |
|                                           |
|o2 : S-module, free                        |
+-------------------------------------------+
|i3 : low = {-3,-3};high = {3,3};           |
+-------------------------------------------+
|i5 : H = cohomologyHashTable(M, low,high); |
+-------------------------------------------+

We can print just the entries representing nonzero cohomology groups:

+------------------------------------------------+
|i6 : H' = hashTable(select(pairs H, p-> p_1!=0))|
|                                                |
|o6 = HashTable{{{-2, -3}, 3} => 1}              |
|               {{-2, 0}, 1} => 1                |
|               {{-2, 1}, 1} => 3                |
|               {{-2, 2}, 1} => 6                |
|               {{-2, 3}, 1} => 10               |
|               {{-3, -3}, 3} => 2               |
|               {{-3, 0}, 1} => 2                |
|               {{-3, 1}, 1} => 6                |
|               {{-3, 2}, 1} => 12               |
|               {{-3, 3}, 1} => 20               |
|               {{0, -3}, 2} => 1                |
|               {{0, 0}, 0} => 1                 |
|               {{0, 1}, 0} => 3                 |
|               {{0, 2}, 0} => 6                 |
|               {{0, 3}, 0} => 10                |
|               {{1, -3}, 2} => 2                |
|               {{1, 0}, 0} => 2                 |
|               {{1, 1}, 0} => 6                 |
|               {{1, 2}, 0} => 12                |
|               {{1, 3}, 0} => 20                |
|               {{2, -3}, 2} => 3                |
|               {{2, 0}, 0} => 3                 |
|               {{2, 1}, 0} => 9                 |
|               {{2, 2}, 0} => 18                |
|               {{2, 3}, 0} => 30                |
|               {{3, -3}, 2} => 4                |
|               {{3, 0}, 0} => 4                 |
|               {{3, 1}, 0} => 12                |
|               {{3, 2}, 0} => 24                |
|               {{3, 3}, 0} => 40                |
|                                                |
|o6 : HashTable                                  |
+------------------------------------------------+

In the case of two factors (t=2), the same information can be read conveniently
from a matrix

+---------------------------------------+
|i7 : cohomologyMatrix(M, low, high)    |
|                                       |
|o7 = | 20h 10h 0 10 20  30  40  |      |
|     | 12h 6h  0 6  12  18  24  |      |
|     | 6h  3h  0 3  6   9   12  |      |
|     | 2h  h   0 1  2   3   4   |      |
|     | 0   0   0 0  0   0   0   |      |
|     | 0   0   0 0  0   0   0   |      |
|     | 2h3 h3  0 h2 2h2 3h2 4h2 |      |
|                                       |
|                      7               7|
|o7 : Matrix (ZZ[h, k])  <-- (ZZ[h, k]) |
+---------------------------------------+

where the entry in the a= \{a_0,a_1\} place is sum_i h^i(F(a)*h^i \in ZZ[h]. In
the case of more factors, the same format is available through the command

+-------------------------------+
|i8 : eulerPolynomialTable H'   |
|                               |
|                            3  |
|o8 = HashTable{{-2, -3} => h  }|
|               {-2, 0} => h    |
|               {-2, 1} => 3h   |
|               {-2, 2} => 6h   |
|               {-2, 3} => 10h  |
|                             3 |
|               {-3, -3} => 2h  |
|               {-3, 0} => 2h   |
|               {-3, 1} => 6h   |
|               {-3, 2} => 12h  |
|               {-3, 3} => 20h  |
|                           2   |
|               {0, -3} => h    |
|               {0, 0} => 1     |
|               {0, 1} => 3     |
|               {0, 2} => 6     |
|               {0, 3} => 10    |
|                            2  |
|               {1, -3} => 2h   |
|               {1, 0} => 2     |
|               {1, 1} => 6     |
|               {1, 2} => 12    |
|               {1, 3} => 20    |
|                            2  |
|               {2, -3} => 3h   |
|               {2, 0} => 3     |
|               {2, 1} => 9     |
|               {2, 2} => 18    |
|               {2, 3} => 30    |
|                            2  |
|               {3, -3} => 4h   |
|               {3, 0} => 4     |
|               {3, 1} => 12    |
|               {3, 2} => 24    |
|               {3, 3} => 40    |
|                               |
|o8 : HashTable                 |
+-------------------------------+

Caveat
======

In case of hypercohomology, we write k instead of h^{-1}, and use the
cohomology ring ZZ[h,k].

See also
========

  * productOfProjectiveSpaces -- Cox ring of
    a product of projective spaces and it Koszul dual exterior algebra
  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution
  * eulerPolynomialTable -- cohomology groups of a
    sheaf on a product of projective spaces, or of (part) of a Tate resolution
  * cornerComplex -- form the corner complex

Ways to use cohomologyHashTable:
================================

  * "cohomologyHashTable(Complex,List,List)"
  * "cohomologyHashTable(Module,List,List)"

For the programmer
==================

The object cohomologyHashTable, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4721:0.

cohomologyMatrix -- cohomology groups of a sheaf on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution
******************************************************************************************************

  * Usage:
        H=cohomologyMatrix(M,low,high)
        H=cohomologyMatrix(T,low,high)
  * Inputs:
      * T, a complex (Complexes), free complex over the exterior
        algebra
      * M, a module (Macaulay2Doc), graded module representing a
        sheaf on a product of projective spaces
      * low, a list (Macaulay2Doc),
      * high, a list (Macaulay2Doc), two lists low=\{a_1,a_2\},
        high=\{b_1,b_2\} representing bidegrees
  * Outputs:
      * H, a matrix (Macaulay2Doc), a (1+b1-a1)x(1+b2-a2) matrix
        of ring elements in $\mathbb Z[h,k]$

Description
===========

If M is a bigraded module over a bigraded polynomial ring representing a sheaf
F on P^{n_1} x P^{n_2}, the script returns a block of the cohomology table,
represented as a table of "cohomology polynomials" in $\mathbb Z[h,k]$ of the
form $$\sum_{i=0}^{|n|} \, dim H^i(\mathcal F(c_1,c_2)) * h^i$$ in each
position \{c_1,c_2\} for $a_1 \le c_1 \le b_1$ and $a_2 \le c_2 \le b_2$. In
case M corresponds to an object in the derived category D^b(P^{n_1}x P^{n_2}),
then hypercohomology polynomials are returned, with the convention that k
stands for k=h^{ -1}.

The polynomial for \{b_1,b_2\} sits in the north-east corner, the one
corresponding to (a_1,a_2) in the south-west corner.

In the case of a product of more (or fewer) projective spaces, or if a hash
table output is desired, use cohomologyHashTable or eulerPolynomialTable
instead.

The script computes a sufficient part of the Tate resolution for F, and then
calls itself in the version for a Tate resolution. More generally, If T is part
of a Tate resolution of F the function returns a matrix of cohomology
polynomials corresponding to T.

If T is not a large enough part of the Tate resolution, such as W below, then
the function collects only the contribution of T to the cohomology table of the
Tate resolution, according to the formula in Corollary 0.2 of Tate Resolutions
on Products of Projective Spaces (see https://arxiv.org/abs/1411.5724 ).

+-------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces{1,2}|
|                                           |
|o1 = (S, E)                                |
|                                           |
|o1 : Sequence                              |
+-------------------------------------------+
|i2 : M = S^1                               |
|                                           |
|      1                                    |
|o2 = S                                     |
|                                           |
|o2 : S-module, free                        |
+-------------------------------------------+
|i3 : low = {-3,-3};high={0,0};             |
+-------------------------------------------+
|i5 : cohomologyMatrix(M,low,high)          |
|                                           |
|o5 = | 2h  h  0 1  |                       |
|     | 0   0  0 0  |                       |
|     | 0   0  0 0  |                       |
|     | 2h3 h3 0 h2 |                       |
|                                           |
|                      4               4    |
|o5 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])     |
+-------------------------------------------+

As a second example, consider the structure sheaf $\mathcal O_E$ of a
nonsingular cubic contained in (point)xP^2. The corresponding graded module is

+----------------------------------------------------------+
|i6 : M = S^1/ideal(x_(0,0), x_(1,0)^3+x_(1,1)^3+x_(1,2)^3)|
|                                                          |
|o6 = cokernel | x_(0,0) x_(1,0)^3+x_(1,1)^3+x_(1,2)^3 |   |
|                                                          |
|                            1                             |
|o6 : S-module, quotient of S                              |
+----------------------------------------------------------+
|i7 : low = {-3,-3};high={0,0};                            |
+----------------------------------------------------------+
|i9 : cohomologyMatrix(M,low,high)                         |
|                                                          |
|o9 = | h+1 h+1 h+1 h+1 |                                  |
|     | 3h  3h  3h  3h  |                                  |
|     | 6h  6h  6h  6h  |                                  |
|     | 9h  9h  9h  9h  |                                  |
|                                                          |
|                      4               4                   |
|o9 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                    |
+----------------------------------------------------------+

and the "1+h" in the Northeast (= upper right) corner signifies that that
$h^0(\mathcal O_E) = h^1(\mathcal O_E) = 1.$

See also
========

  * cohomologyHashTable -- cohomology groups of a
    sheaf on a product of projective spaces, or of (part) of a Tate resolution

Ways to use cohomologyMatrix:
=============================

  * "cohomologyMatrix(Complex,List,List)"
  * "cohomologyMatrix(Module,List,List)"

For the programmer
==================

The object cohomologyMatrix, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4644:0.

CohomologyVariables -- Option for productOfProjectiveSpaces
***********************************************************

Description
===========

names of the variables in cohomRing, the "cohomology ring"

Functions with optional argument named CohomologyVariables:
===========================================================

  * "productOfProjectiveSpaces(...,CohomologyVariables=>...)" -- see
    productOfProjectiveSpaces, -- Cox ring of a
    product of projective spaces and it Koszul dual exterior algebra

For the programmer
==================

The object CohomologyVariables, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4421:0.

composedFunctions -- composed functions
***************************************

  * Usage:
        cmds=composedFunctions()
  * Outputs:
      * cmds, a string (Macaulay2Doc), the commands used in the
        testing/illustration of composed functions

Description
===========

Prints the commands which illustrate / test various composition of functions.

+--------------------------------------+
|i1 : n={1,1}, v=n+{1,1}               |
|                                      |
|o1 = ({1, 1}, {2, 2})                 |
|                                      |
|o1 : Sequence                         |
+--------------------------------------+
|i2 : high=3*n, low=-high              |
|                                      |
|o2 = ({3, 3}, {-3, -3})               |
|                                      |
|o2 : Sequence                         |
+--------------------------------------+
|i3 : (S,E)=productOfProjectiveSpaces n|
|                                      |
|o3 = (S, E)                           |
|                                      |
|o3 : Sequence                         |
+--------------------------------------+

We build the example from Section 4 of the paper Tate Resolutions on Products
of Projective Spaces (see https://arxiv.org/abs/1411.5724 ) which corresponds
to a rank 3 vector bundle on P^1xP^1.

+-----------------------------------------------------------------------------+
|i4 : P=(image transpose gens trim (ideal vars E)^2)**E^{n}                   |
|                                                                             |
|o4 = image {-1, -3} | -e_(1,0)e_(1,1) |                                      |
|           {-2, -2} | -e_(0,1)e_(1,1) |                                      |
|           {-2, -2} | -e_(0,0)e_(1,1) |                                      |
|           {-2, -2} | -e_(0,1)e_(1,0) |                                      |
|           {-2, -2} | -e_(0,0)e_(1,0) |                                      |
|           {-3, -1} | -e_(0,0)e_(0,1) |                                      |
|                                                                             |
|                             6                                               |
|o4 : E-module, submodule of E                                                |
+-----------------------------------------------------------------------------+
|i5 : betti P                                                                 |
|                                                                             |
|            0 1                                                              |
|o5 = total: 1 4                                                              |
|        -2: 1 .                                                              |
|        -1: . .                                                              |
|         0: . 4                                                              |
|                                                                             |
|o5 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i6 : LP=bgg P                                                                |
|                                                                             |
|      6      4      1                                                        |
|o6 = S  <-- S  <-- S                                                         |
|                                                                             |
|     0      1      2                                                         |
|                                                                             |
|o6 : Complex                                                                 |
+-----------------------------------------------------------------------------+
|i7 : M = (HH^0 LP)**S^{-n}                                                   |
|                                                                             |
|o7 = cokernel {2, 0} | x_(1,1)  -x_(1,0) 0       0        |                  |
|              {1, 1} | -x_(0,0) 0        x_(1,0) 0        |                  |
|              {1, 1} | 0        -x_(0,0) x_(1,1) 0        |                  |
|              {1, 1} | -x_(0,1) 0        0       x_(1,0)  |                  |
|              {1, 1} | 0        -x_(0,1) 0       x_(1,1)  |                  |
|              {0, 2} | 0        0        x_(0,1) -x_(0,0) |                  |
|                                                                             |
|                            6                                                |
|o7 : S-module, quotient of S                                                 |
+-----------------------------------------------------------------------------+
|i8 : betti freeResolution M                                                  |
|                                                                             |
|            0 1 2                                                            |
|o8 = total: 6 4 1                                                            |
|         2: 6 4 1                                                            |
|                                                                             |
|o8 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i9 : T = tateResolution(M,low,high)                                          |
|                                                                             |
|      136      55      32      44      39      36      54      91      136   |
|o9 = E    <-- E   <-- E   <-- E   <-- E   <-- E   <-- E   <-- E   <-- E      |
|                                                                             |
|     -8       -7      -6      -5      -4      -3      -2      -1      0      |
|                                                                             |
|o9 : Complex                                                                 |
|-----------------------------------------------------------------------------|
|     184      239      304      382      476      589                        |
|<-- E    <-- E    <-- E    <-- E    <-- E    <-- E                           |
|                                                                             |
|    1        2        3        4        5        6                           |
+-----------------------------------------------------------------------------+
|i10 : cohomologyMatrix(T,low,high)                                           |
|                                                                             |
|o10 = | 28h  18h  8h  2  12  22  32  |                                       |
|      | 20h  13h  6h  1  8   15  22  |                                       |
|      | 12h  8h   4h  0  4   8   12  |                                       |
|      | 4h   3h   2h  h  0   1   2   |                                       |
|      | 4h2  2h2  0   2h 4h  6h  8h  |                                       |
|      | 12h2 7h2  2h2 3h 8h  13h 18h |                                       |
|      | 20h2 12h2 4h2 4h 12h 20h 28h |                                       |
|                                                                             |
|                       7               7                                     |
|o10 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+

T is the part of the Tate resolution, which is complete in the range low to
high. (In a wider range some terms are missing or are incorrect)

+----------------------------------------------------------------+
|i11 : cohomologyMatrix(T,2*low,2*high)                          |
|                                                                |
|o11 = | 0    0    0    0    0    0    0  0   0   0   0   0   0 ||
|      | 0    0    0    0    0    0    0  0   0   0   68k 0   0 ||
|      | 0    0    0    0    0    0    0  0   0   0   55k 68k 0 ||
|      | 58h  48h  38h  28h  18h  8h   2  12  22  32  0   0   0 ||
|      | 41h  34h  27h  20h  13h  6h   1  8   15  22  0   0   0 ||
|      | 24h  20h  16h  12h  8h   4h   0  4   8   12  0   0   0 ||
|      | 7h   6h   5h   4h   3h   2h   h  0   1   2   0   0   0 ||
|      | 10h2 8h2  6h2  4h2  2h2  0    2h 4h  6h  8h  0   0   0 ||
|      | 27h2 22h2 17h2 12h2 7h2  2h2  3h 8h  13h 18h 0   0   0 ||
|      | 0    36h2 28h2 20h2 12h2 4h2  4h 12h 20h 28h 0   0   0 ||
|      | 0    0    39h2 28h2 17h2 6h2  5h 16h 27h 38h 0   0   0 ||
|      | 0    0    0    36h2 22h2 8h2  6h 20h 34h 48h 0   0   0 ||
|      | 0    0    0    0    27h2 10h2 7h 24h 41h 58h 0   0   0 ||
|                                                                |
|                       13               13                      |
|o11 : Matrix (ZZ[h, k])   <-- (ZZ[h, k])                        |
+----------------------------------------------------------------+

Alternatively we can recover M from its Beilinson monad derived from T.

+-------------------------------------------------------------+
|i12 : B=beilinson T                                          |
|                                                             |
|       1      4                                              |
|o12 = S  <-- S                                               |
|                                                             |
|      -1     0                                               |
|                                                             |
|o12 : Complex                                                |
+-------------------------------------------------------------+
|i13 : M'=prune HH^0 B                                        |
|                                                             |
|o13 = cokernel {2, 0} | -x_(1,0) 0        0        x_(1,1)  ||
|               {1, 1} | x_(0,0)  -x_(1,1) 0        0        ||
|               {1, 1} | -x_(0,1) 0        -x_(1,1) 0        ||
|               {0, 2} | 0        x_(0,1)  x_(0,0)  0        ||
|               {1, 1} | 0        -x_(1,0) 0        x_(0,0)  ||
|               {1, 1} | 0        0        -x_(1,0) -x_(0,1) ||
|                                                             |
|                             6                               |
|o13 : S-module, quotient of S                                |
+-------------------------------------------------------------+
|i14 : prune HH^1 B                                           |
|                                                             |
|o14 = cokernel | x_(1,1) x_(1,0) x_(0,1) x_(0,0) |           |
|                                                             |
|                             1                               |
|o14 : S-module, quotient of S                                |
+-------------------------------------------------------------+
|i15 : isIsomorphicStrict(M,M')                               |
|                                                             |
|o15 = true                                                   |
+-------------------------------------------------------------+

We study the corner complex of T at c=\{0,0\} .

+-----------------------------------------------------------------------------+
|i16 : C=cornerComplex(T,{0,0});                                              |
+-----------------------------------------------------------------------------+
|i17 : betti C                                                                |
|                                                                             |
|             -7 -6 -5 -4 -3 -2 -1 0  1  2  3   4                             |
|o17 = total: 55 32 44 39 20  6  1 4 15 36 70 120                             |
|         -1: 55  .  .  .  .  .  . .  .  .  .   .                             |
|          0:  . 32 44 39 20  6  . .  .  .  .   .                             |
|          1:  .  .  .  .  .  .  1 .  .  .  .   .                             |
|          2:  .  .  .  .  .  .  . .  .  .  .   .                             |
|          3:  .  .  .  .  .  .  . 4 15 36 70 120                             |
|                                                                             |
|o17 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i18 : cohomologyMatrix(C,low,high)                                           |
|                                                                             |
|o18 = | 0    0    0   2 12 22 32 |                                           |
|      | 0    0    0   1 8  15 22 |                                           |
|      | 0    0    0   0 4  8  12 |                                           |
|      | 0    0    0   h 0  1  2  |                                           |
|      | 4h3  2h3  0   0 0  0  0  |                                           |
|      | 12h3 7h3  2h3 0 0  0  0  |                                           |
|      | 20h3 12h3 4h3 0 0  0  0  |                                           |
|                                                                             |
|                       7               7                                     |
|o18 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i19 : betti C.dd_0                                                           |
|                                                                             |
|             0 1                                                             |
|o19 = total: 1 4                                                             |
|          0: 1 .                                                             |
|          1: . .                                                             |
|          2: . 4                                                             |
|                                                                             |
|o19 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i20 : P=ker C.dd_0**E^{v}                                                    |
|                                                                             |
|o20 = image {-1, 0} | e_(1,1) e_(1,0) e_(0,0) e_(0,1)  0       0             |
|            {0, -1} | 0       0       0       -e_(1,1) e_(1,0) e_(0,1)       |
|            {-1, 0} | 0       0       0       0        0       0             |
|            {0, -1} | 0       0       0       0        0       0             |
|                                                                             |
|                              4                                              |
|o20 : E-module, submodule of E                                               |
|-----------------------------------------------------------------------------|
|0       0       0       0       0       0       0       0       0       |    |
|e_(0,0) 0       0       0       e_(1,1) 0       e_(1,1) 0       0       |    |
|0       e_(1,1) e_(1,0) e_(0,1) e_(0,0) 0       0       0       0       |    |
|0       0       0       0       0       e_(1,1) e_(1,0) e_(0,1) e_(0,0) |    |
+-----------------------------------------------------------------------------+

The tensor product with E^{\{v\}} is necessary because we work with E instead
of $\omega_E$. M can be recovered by applying the bgg functor to P.

+-----------------------------------------------------------------------------+
|i21 : LP=bgg P;                                                              |
+-----------------------------------------------------------------------------+
|i22 : betti LP                                                               |
|                                                                             |
|             -3 -2 -1  0                                                     |
|o22 = total:  4 16 24 15                                                     |
|          0:  4 16 24 15                                                     |
|                                                                             |
|o22 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i23 : coLP=apply(toList(min LP..max LP),i->prune HH^(-i) LP);                |
+-----------------------------------------------------------------------------+
|i24 : apply(coLP,h->dim h)                                                   |
|                                                                             |
|o24 = {0, -1, 0, 4}                                                          |
|                                                                             |
|o24 : List                                                                   |
+-----------------------------------------------------------------------------+
|i25 : M1=HH^0 LP                                                             |
|                                                                             |
|o25 = image {1, -1} | x_(0,0)x_(1,1) -x_(1,1)^2      0                       |
|            {1, -1} | x_(0,0)x_(1,0) -x_(1,0)x_(1,1) 0                       |
|            {1, -1} | x_(0,1)x_(1,1) 0               x_(1,1)^2               |
|            {1, -1} | x_(0,1)x_(1,0) 0               x_(1,0)x_(1,1)          |
|            {0, 0}  | x_(0,0)^2      -x_(0,0)x_(1,1) 0                       |
|            {0, 0}  | x_(0,0)x_(0,1) -x_(0,1)x_(1,1) 0                       |
|            {0, 0}  | 0              x_(0,1)x_(1,0)  x_(0,0)x_(1,0)          |
|            {0, 0}  | x_(0,1)^2      0               x_(0,1)x_(1,1)          |
|            {0, 0}  | x_(0,0)x_(0,1) 0               x_(0,0)x_(1,1)          |
|            {0, 0}  | 0              0               0                       |
|            {0, 0}  | 0              0               0                       |
|            {-1, 1} | 0              x_(0,1)^2       x_(0,0)x_(0,1)          |
|            {-1, 1} | 0              x_(0,0)x_(0,1)  x_(0,0)^2               |
|            {-1, 1} | 0              0               0                       |
|            {-1, 1} | 0              0               0                       |
|                                                                             |
|                              15                                             |
|o25 : S-module, submodule of S                                               |
|-----------------------------------------------------------------------------|
|0              x_(1,0)x_(1,1) 0               |                              |
|0              x_(1,0)^2      0               |                              |
|0              0              -x_(1,0)x_(1,1) |                              |
|0              0              -x_(1,0)^2      |                              |
|0              x_(0,0)x_(1,0) 0               |                              |
|0              x_(0,1)x_(1,0) 0               |                              |
|x_(1,0)^2      0              0               |                              |
|0              0              -x_(0,1)x_(1,0) |                              |
|0              0              -x_(0,0)x_(1,0) |                              |
|x_(1,1)^2      x_(0,1)x_(1,1) x_(0,0)x_(1,1)  |                              |
|x_(1,0)x_(1,1) x_(0,1)x_(1,0) x_(0,0)x_(1,0)  |                              |
|x_(0,1)x_(1,0) 0              0               |                              |
|x_(0,0)x_(1,0) 0              0               |                              |
|x_(0,1)x_(1,1) x_(0,1)^2      x_(0,0)x_(0,1)  |                              |
|x_(0,0)x_(1,1) x_(0,0)x_(0,1) x_(0,0)^2       |                              |
+-----------------------------------------------------------------------------+
|i26 : betti M1,betti M                                                       |
|                                                                             |
|              0 1         0 1                                                |
|o26 = (total: 6 4, total: 6 4)                                               |
|           2: 6 4      2: 6 4                                                |
|                                                                             |
|o26 : Sequence                                                               |
+-----------------------------------------------------------------------------+
|i27 : isIsomorphicStrict(M,M1)                                               |
|                                                                             |
|o27 = true                                                                   |
+-----------------------------------------------------------------------------+

It works also for different syzygy modules in the corner complex. It works for
all P=ker C.dd_k in the range where C.dd_k is computed completely. We check the
case k=1 and k=-2.

+------------------------------------------------------------------------+
|i28 : k=1                                                               |
|                                                                        |
|o28 = 1                                                                 |
+------------------------------------------------------------------------+
|i29 : P=ker C.dd_(-k)**E^{v}; betti P                                   |
|                                                                        |
|             0  1                                                       |
|o30 = total: 4 15                                                       |
|         -1: 4 15                                                       |
|                                                                        |
|o30 : BettiTally                                                        |
+------------------------------------------------------------------------+
|i31 : LP=bgg P                                                          |
|                                                                        |
|       1      4                                                         |
|o31 = S  <-- S                                                          |
|                                                                        |
|      0      1                                                          |
|                                                                        |
|o31 : Complex                                                           |
+------------------------------------------------------------------------+
|i32 : betti LP                                                          |
|                                                                        |
|             0 1                                                        |
|o32 = total: 1 4                                                        |
|          0: 1 4                                                        |
|                                                                        |
|o32 : BettiTally                                                        |
+------------------------------------------------------------------------+
|i33 : coLP=apply(toList(min LP..max LP),i->prune HH^(-i) LP);           |
+------------------------------------------------------------------------+
|i34 : apply(coLP,h->dim h)                                              |
|                                                                        |
|o34 = {0, 4}                                                            |
|                                                                        |
|o34 : List                                                              |
+------------------------------------------------------------------------+
|i35 : M1=HH^(-k) LP                                                     |
|                                                                        |
|o35 = image {1, 0} | x_(0,1) 0       -x_(1,0) 0       0        x_(1,1) ||
|            {1, 0} | x_(0,0) x_(1,0) 0        0       -x_(1,1) 0       ||
|            {0, 1} | 0       x_(0,1) x_(0,0)  x_(1,1) 0        0       ||
|            {0, 1} | 0       0       0        x_(1,0) x_(0,1)  x_(0,0) ||
|                                                                        |
|                              4                                         |
|o35 : S-module, submodule of S                                          |
+------------------------------------------------------------------------+
|i36 : betti M1, betti M                                                 |
|                                                                        |
|              0 1         0 1                                           |
|o36 = (total: 6 4, total: 6 4)                                          |
|           2: 6 4      2: 6 4                                           |
|                                                                        |
|o36 : Sequence                                                          |
+------------------------------------------------------------------------+
|i37 : isIsomorphicStrict(M,M1)                                          |
|                                                                        |
|o37 = true                                                              |
+------------------------------------------------------------------------+

Note that we have to take HH^{(-k)} == HH_k because of the homological position
in which P sits.

+-----------------------------------------------------------------------------+
|i38 : k=-2                                                                   |
|                                                                             |
|o38 = -2                                                                     |
+-----------------------------------------------------------------------------+
|i39 : P=ker C.dd_(-k)**E^{v}; betti P                                        |
|                                                                             |
|              0   1                                                          |
|o40 = total: 70 120                                                          |
|          2: 70 120                                                          |
|                                                                             |
|o40 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i41 : LP=bgg P;                                                              |
+-----------------------------------------------------------------------------+
|i42 : betti LP                                                               |
|                                                                             |
|             -5  -4  -3 -2                                                   |
|o42 = total: 36 129 160 70                                                   |
|          0: 36 129 160 70                                                   |
|                                                                             |
|o42 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i43 : coLP=apply(toList(min LP..max LP),i->prune HH^(-i) LP);                |
+-----------------------------------------------------------------------------+
|i44 : apply(coLP,h->dim h)                                                   |
|                                                                             |
|o44 = {0, -1, 0, 4}                                                          |
|                                                                             |
|o44 : List                                                                   |
+-----------------------------------------------------------------------------+
|i45 : M1=HH^(-k) LP                                                          |
|                                                                             |
|o45 = image {1, -3}  | x_(0,1)x_(1,1)^3                                      |
|            {1, -3}  | x_(0,0)x_(1,1)^3                                      |
|            {1, -3}  | x_(0,1)x_(1,0)x_(1,1)^2                               |
|            {1, -3}  | x_(0,0)x_(1,0)x_(1,1)^2                               |
|            {1, -3}  | x_(0,1)x_(1,0)^2x_(1,1)                               |
|            {1, -3}  | x_(0,1)x_(1,0)^3                                      |
|            {1, -3}  | x_(0,0)x_(1,0)^2x_(1,1)                               |
|            {1, -3}  | x_(0,0)x_(1,0)^3                                      |
|            {0, -2}  | 0                                                     |
|            {0, -2}  | x_(0,0)x_(0,1)x_(1,1)^2                               |
|            {0, -2}  | 0                                                     |
|            {0, -2}  | x_(0,0)x_(0,1)x_(1,0)x_(1,1)                          |
|            {0, -2}  | x_(0,1)^2x_(1,1)^2                                    |
|            {0, -2}  | x_(0,0)x_(0,1)x_(1,1)^2                               |
|            {0, -2}  | x_(0,0)^2x_(1,1)^2                                    |
|            {0, -2}  | 0                                                     |
|            {0, -2}  | x_(0,0)x_(0,1)x_(1,0)^2                               |
|            {0, -2}  | 0                                                     |
|            {0, -2}  | 0                                                     |
|            {0, -2}  | x_(0,1)^2x_(1,0)x_(1,1)                               |
|            {0, -2}  | x_(0,1)^2x_(1,0)^2                                    |
|            {0, -2}  | x_(0,0)x_(0,1)x_(1,0)x_(1,1)                          |
|            {0, -2}  | x_(0,0)x_(0,1)x_(1,0)^2                               |
|            {0, -2}  | x_(0,0)^2x_(1,0)x_(1,1)                               |
|            {0, -2}  | x_(0,0)^2x_(1,0)^2                                    |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | 0                                                     |
|            {-1, -1} | x_(0,1)^3x_(1,1)                                      |
|            {-1, -1} | x_(0,1)^3x_(1,0)                                      |
|            {-1, -1} | x_(0,0)x_(0,1)^2x_(1,1)                               |
|            {-1, -1} | x_(0,0)x_(0,1)^2x_(1,0)                               |
|            {-1, -1} | x_(0,0)^2x_(0,1)x_(1,1)                               |
|            {-1, -1} | x_(0,0)^2x_(0,1)x_(1,0)                               |
|            {-1, -1} | x_(0,0)^3x_(1,1)                                      |
|            {-1, -1} | x_(0,0)^3x_(1,0)                                      |
|            {-2, 0}  | x_(0,1)^4                                             |
|            {-2, 0}  | x_(0,0)x_(0,1)^3                                      |
|            {-2, 0}  | x_(0,0)^2x_(0,1)^2                                    |
|            {-2, 0}  | x_(0,0)^3x_(0,1)                                      |
|            {-2, 0}  | x_(0,0)^4                                             |
|            {-2, 0}  | 0                                                     |
|            {-2, 0}  | 0                                                     |
|            {-2, 0}  | 0                                                     |
|            {-2, 0}  | 0                                                     |
|            {-2, 0}  | 0                                                     |
|            {-2, 0}  | 0                                                     |
|            {-2, 0}  | 0                                                     |
|            {-2, 0}  | 0                                                     |
|            {-2, 0}  | 0                                                     |
|            {-2, 0}  | 0                                                     |
|            {-2, 0}  | 0                                                     |
|            {-2, 0}  | 0                                                     |
|            {-3, 1}  | 0                                                     |
|            {-3, 1}  | 0                                                     |
|            {-3, 1}  | 0                                                     |
|            {-3, 1}  | 0                                                     |
|            {-3, 1}  | 0                                                     |
|            {-3, 1}  | 0                                                     |
|            {-3, 1}  | 0                                                     |
|            {-3, 1}  | 0                                                     |
|                                                                             |
|                              70                                             |
|o45 : S-module, submodule of S                                               |
|-----------------------------------------------------------------------------|
|0                             -x_(1,0)x_(1,1)^3                              |
|x_(1,0)x_(1,1)^3              0                                              |
|0                             -x_(1,0)^2x_(1,1)^2                            |
|x_(1,0)^2x_(1,1)^2            0                                              |
|0                             -x_(1,0)^3x_(1,1)                              |
|0                             -x_(1,0)^4                                     |
|x_(1,0)^3x_(1,1)              0                                              |
|x_(1,0)^4                     0                                              |
|x_(0,1)x_(1,1)^3              x_(0,0)x_(1,1)^3                               |
|x_(0,1)x_(1,0)x_(1,1)^2       0                                              |
|x_(0,1)x_(1,0)x_(1,1)^2       x_(0,0)x_(1,0)x_(1,1)^2                        |
|x_(0,1)x_(1,0)^2x_(1,1)       0                                              |
|0                             -x_(0,1)x_(1,0)x_(1,1)^2                       |
|0                             -x_(0,0)x_(1,0)x_(1,1)^2                       |
|x_(0,0)x_(1,0)x_(1,1)^2       0                                              |
|x_(0,1)x_(1,0)^2x_(1,1)       x_(0,0)x_(1,0)^2x_(1,1)                        |
|x_(0,1)x_(1,0)^3              0                                              |
|x_(0,1)x_(1,0)^3              x_(0,0)x_(1,0)^3                               |
|0                             0                                              |
|0                             -x_(0,1)x_(1,0)^2x_(1,1)                       |
|0                             -x_(0,1)x_(1,0)^3                              |
|0                             -x_(0,0)x_(1,0)^2x_(1,1)                       |
|0                             -x_(0,0)x_(1,0)^3                              |
|x_(0,0)x_(1,0)^2x_(1,1)       0                                              |
|x_(0,0)x_(1,0)^3              0                                              |
|-x_(0,1)^2x_(1,0)x_(1,1)      -x_(0,0)x_(0,1)x_(1,0)x_(1,1)                  |
|x_(0,1)^2x_(1,1)^2            x_(0,0)x_(0,1)x_(1,1)^2                        |
|-x_(0,0)x_(0,1)x_(1,0)x_(1,1) -x_(0,0)^2x_(1,0)x_(1,1)                       |
|x_(0,0)x_(0,1)x_(1,1)^2       x_(0,0)^2x_(1,1)^2                             |
|-x_(0,1)^2x_(1,0)^2           -x_(0,0)x_(0,1)x_(1,0)^2                       |
|0                             0                                              |
|x_(0,1)^2x_(1,0)x_(1,1)       x_(0,0)x_(0,1)x_(1,0)x_(1,1)                   |
|x_(0,1)^2x_(1,0)^2            x_(0,0)x_(0,1)x_(1,0)^2                        |
|-x_(0,0)x_(0,1)x_(1,0)^2      -x_(0,0)^2x_(1,0)^2                            |
|0                             0                                              |
|x_(0,0)x_(0,1)x_(1,0)x_(1,1)  x_(0,0)^2x_(1,0)x_(1,1)                        |
|x_(0,0)x_(0,1)x_(1,0)^2       x_(0,0)^2x_(1,0)^2                             |
|0                             -x_(0,1)^2x_(1,0)x_(1,1)                       |
|0                             -x_(0,1)^2x_(1,0)^2                            |
|0                             -x_(0,0)x_(0,1)x_(1,0)x_(1,1)                  |
|0                             -x_(0,0)x_(0,1)x_(1,0)^2                       |
|0                             -x_(0,0)^2x_(1,0)x_(1,1)                       |
|0                             -x_(0,0)^2x_(1,0)^2                            |
|x_(0,0)^2x_(1,0)x_(1,1)       0                                              |
|x_(0,0)^2x_(1,0)^2            0                                              |
|0                             -x_(0,1)^3x_(1,0)                              |
|0                             -x_(0,0)x_(0,1)^2x_(1,0)                       |
|0                             -x_(0,0)^2x_(0,1)x_(1,0)                       |
|0                             -x_(0,0)^3x_(1,0)                              |
|x_(0,0)^3x_(1,0)              0                                              |
|0                             0                                              |
|0                             0                                              |
|0                             0                                              |
|0                             0                                              |
|x_(0,1)^3x_(1,1)              x_(0,0)x_(0,1)^2x_(1,1)                        |
|x_(0,1)^3x_(1,0)              x_(0,0)x_(0,1)^2x_(1,0)                        |
|x_(0,0)^2x_(0,1)x_(1,1)       x_(0,0)^3x_(1,1)                               |
|x_(0,0)^2x_(0,1)x_(1,0)       x_(0,0)^3x_(1,0)                               |
|x_(0,0)x_(0,1)^2x_(1,1)       x_(0,0)^2x_(0,1)x_(1,1)                        |
|x_(0,0)x_(0,1)^2x_(1,0)       x_(0,0)^2x_(0,1)x_(1,0)                        |
|0                             0                                              |
|0                             0                                              |
|0                             0                                              |
|0                             0                                              |
|x_(0,1)^4                     x_(0,0)x_(0,1)^3                               |
|x_(0,0)^3x_(0,1)              x_(0,0)^4                                      |
|x_(0,0)x_(0,1)^3              x_(0,0)^2x_(0,1)^2                             |
|x_(0,0)^2x_(0,1)^2            x_(0,0)^3x_(0,1)                               |
|0                             0                                              |
|0                             0                                              |
|-----------------------------------------------------------------------------|
|0                            0                                               |
|0                            -x_(1,1)^4                                      |
|0                            0                                               |
|0                            -x_(1,0)x_(1,1)^3                               |
|0                            0                                               |
|0                            0                                               |
|0                            -x_(1,0)^2x_(1,1)^2                             |
|0                            -x_(1,0)^3x_(1,1)                               |
|x_(1,1)^4                    0                                               |
|0                            -x_(0,1)x_(1,1)^3                               |
|x_(1,0)x_(1,1)^3             0                                               |
|0                            -x_(0,1)x_(1,0)x_(1,1)^2                        |
|0                            0                                               |
|0                            0                                               |
|0                            -x_(0,0)x_(1,1)^3                               |
|x_(1,0)^2x_(1,1)^2           0                                               |
|0                            -x_(0,1)x_(1,0)^2x_(1,1)                        |
|x_(1,0)^3x_(1,1)             0                                               |
|x_(1,0)^4                    x_(0,1)x_(1,0)^3                                |
|0                            0                                               |
|0                            0                                               |
|0                            0                                               |
|0                            0                                               |
|0                            -x_(0,0)x_(1,0)x_(1,1)^2                        |
|0                            -x_(0,0)x_(1,0)^2x_(1,1)                        |
|0                            x_(0,1)^2x_(1,1)^2                              |
|x_(0,1)x_(1,1)^3             0                                               |
|0                            x_(0,0)x_(0,1)x_(1,1)^2                         |
|x_(0,0)x_(1,1)^3             0                                               |
|0                            x_(0,1)^2x_(1,0)x_(1,1)                         |
|x_(0,1)x_(1,0)^3             x_(0,1)^2x_(1,0)^2                              |
|x_(0,1)x_(1,0)x_(1,1)^2      0                                               |
|x_(0,1)x_(1,0)^2x_(1,1)      0                                               |
|0                            x_(0,0)x_(0,1)x_(1,0)x_(1,1)                    |
|x_(0,0)x_(1,0)^3             x_(0,0)x_(0,1)x_(1,0)^2                         |
|x_(0,0)x_(1,0)x_(1,1)^2      0                                               |
|x_(0,0)x_(1,0)^2x_(1,1)      0                                               |
|0                            0                                               |
|0                            0                                               |
|0                            0                                               |
|0                            0                                               |
|0                            0                                               |
|0                            0                                               |
|0                            -x_(0,0)^2x_(1,1)^2                             |
|0                            -x_(0,0)^2x_(1,0)x_(1,1)                        |
|0                            0                                               |
|0                            0                                               |
|0                            0                                               |
|0                            0                                               |
|0                            -x_(0,0)^3x_(1,1)                               |
|x_(0,0)^2x_(1,0)x_(1,1)      x_(0,0)^2x_(0,1)x_(1,1)                         |
|x_(0,0)^2x_(1,0)^2           x_(0,0)^2x_(0,1)x_(1,0)                         |
|x_(0,1)^2x_(1,0)x_(1,1)      x_(0,1)^3x_(1,1)                                |
|x_(0,1)^2x_(1,0)^2           x_(0,1)^3x_(1,0)                                |
|x_(0,1)^2x_(1,1)^2           0                                               |
|x_(0,1)^2x_(1,0)x_(1,1)      0                                               |
|x_(0,0)^2x_(1,1)^2           0                                               |
|x_(0,0)^2x_(1,0)x_(1,1)      0                                               |
|x_(0,0)x_(0,1)x_(1,1)^2      0                                               |
|x_(0,0)x_(0,1)x_(1,0)x_(1,1) 0                                               |
|x_(0,0)x_(0,1)x_(1,0)x_(1,1) x_(0,0)x_(0,1)^2x_(1,1)                         |
|x_(0,0)x_(0,1)x_(1,0)^2      x_(0,0)x_(0,1)^2x_(1,0)                         |
|x_(0,0)^3x_(1,0)             x_(0,0)^3x_(0,1)                                |
|x_(0,1)^3x_(1,0)             x_(0,1)^4                                       |
|x_(0,1)^3x_(1,1)             0                                               |
|x_(0,0)^3x_(1,1)             0                                               |
|x_(0,0)x_(0,1)^2x_(1,1)      0                                               |
|x_(0,0)^2x_(0,1)x_(1,1)      0                                               |
|x_(0,0)x_(0,1)^2x_(1,0)      x_(0,0)x_(0,1)^3                                |
|x_(0,0)^2x_(0,1)x_(1,0)      x_(0,0)^2x_(0,1)^2                              |
|-----------------------------------------------------------------------------|
|x_(1,1)^4                    |                                               |
|0                            |                                               |
|x_(1,0)x_(1,1)^3             |                                               |
|0                            |                                               |
|x_(1,0)^2x_(1,1)^2           |                                               |
|x_(1,0)^3x_(1,1)             |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|x_(0,1)x_(1,1)^3             |                                               |
|x_(0,0)x_(1,1)^3             |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|x_(0,0)x_(1,0)^3             |                                               |
|x_(0,1)x_(1,0)x_(1,1)^2      |                                               |
|x_(0,1)x_(1,0)^2x_(1,1)      |                                               |
|x_(0,0)x_(1,0)x_(1,1)^2      |                                               |
|x_(0,0)x_(1,0)^2x_(1,1)      |                                               |
|0                            |                                               |
|0                            |                                               |
|x_(0,0)x_(0,1)x_(1,1)^2      |                                               |
|0                            |                                               |
|x_(0,0)^2x_(1,1)^2           |                                               |
|0                            |                                               |
|x_(0,0)x_(0,1)x_(1,0)x_(1,1) |                                               |
|x_(0,0)x_(0,1)x_(1,0)^2      |                                               |
|0                            |                                               |
|0                            |                                               |
|x_(0,0)^2x_(1,0)x_(1,1)      |                                               |
|x_(0,0)^2x_(1,0)^2           |                                               |
|0                            |                                               |
|0                            |                                               |
|x_(0,1)^2x_(1,1)^2           |                                               |
|x_(0,1)^2x_(1,0)x_(1,1)      |                                               |
|x_(0,0)x_(0,1)x_(1,1)^2      |                                               |
|x_(0,0)x_(0,1)x_(1,0)x_(1,1) |                                               |
|x_(0,0)^2x_(1,1)^2           |                                               |
|x_(0,0)^2x_(1,0)x_(1,1)      |                                               |
|0                            |                                               |
|0                            |                                               |
|x_(0,1)^3x_(1,1)             |                                               |
|x_(0,0)x_(0,1)^2x_(1,1)      |                                               |
|x_(0,0)^2x_(0,1)x_(1,1)      |                                               |
|x_(0,0)^3x_(1,1)             |                                               |
|0                            |                                               |
|x_(0,0)^3x_(1,1)             |                                               |
|x_(0,0)^3x_(1,0)             |                                               |
|x_(0,0)x_(0,1)^2x_(1,1)      |                                               |
|x_(0,0)x_(0,1)^2x_(1,0)      |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|x_(0,0)^2x_(0,1)x_(1,1)      |                                               |
|x_(0,0)^2x_(0,1)x_(1,0)      |                                               |
|x_(0,0)^4                    |                                               |
|x_(0,0)x_(0,1)^3             |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|0                            |                                               |
|x_(0,0)^2x_(0,1)^2           |                                               |
|x_(0,0)^3x_(0,1)             |                                               |
+-----------------------------------------------------------------------------+
|i46 : betti M1,betti M                                                       |
|                                                                             |
|              0 1         0 1                                                |
|o46 = (total: 6 4, total: 6 4)                                               |
|           2: 6 4      2: 6 4                                                |
|                                                                             |
|o46 : Sequence                                                               |
+-----------------------------------------------------------------------------+
|i47 : isIsomorphicStrict(M,M1)                                               |
|                                                                             |
|o47 = true                                                                   |
+-----------------------------------------------------------------------------+

Next we check the functor bgg on S-modules.

+--------------------------------------------------+
|i48 : RM=bgg M                                    |
|                                                  |
|       216      140      84      45      20      6|
|o48 = E    <-- E    <-- E   <-- E   <-- E   <-- E |
|                                                  |
|      -7       -6       -5      -4      -3      -2|
|                                                  |
|o48 : Complex                                     |
+--------------------------------------------------+
|i49 : cohomologyMatrix(RM,low,high)               |
|                                                  |
|o49 = | 0 0 0 2 12 22 32 |                        |
|      | 0 0 0 1 8  15 22 |                        |
|      | 0 0 0 0 4  8  12 |                        |
|      | 0 0 0 0 0  1  2  |                        |
|      | 0 0 0 0 0  0  0  |                        |
|      | 0 0 0 0 0  0  0  |                        |
|      | 0 0 0 0 0  0  0  |                        |
|                                                  |
|                       7               7          |
|o49 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])           |
+--------------------------------------------------+
|i50 : betti RM                                    |
|                                                  |
|              -7  -6 -5 -4 -3 -2                  |
|o50 = total: 216 140 84 45 20  6                  |
|          0: 216 140 84 45 20  6                  |
|                                                  |
|o50 : BettiTally                                  |
+--------------------------------------------------+
|i51 : uQ=firstQuadrantComplex(T,{0,0});           |
+--------------------------------------------------+
|i52 : cohomologyMatrix(uQ,low,high)               |
|                                                  |
|o52 = | 0 0 0 2 12 22 32 |                        |
|      | 0 0 0 1 8  15 22 |                        |
|      | 0 0 0 0 4  8  12 |                        |
|      | 0 0 0 h 0  1  2  |                        |
|      | 0 0 0 0 0  0  0  |                        |
|      | 0 0 0 0 0  0  0  |                        |
|      | 0 0 0 0 0  0  0  |                        |
|                                                  |
|                       7               7          |
|o52 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])           |
+--------------------------------------------------+

The additional entry h in the zero position of the cohomology matrix of uQ
indicates that we can recover the original square of the maximal ideal of E
from the differential of the first quadrant complex uQ in this specific case.

+----------------------------------+
|i53 : uQ.dd_(-1)                  |
|                                  |
|o53 = {-2, 0}  | e_(0,0)e_(0,1)  ||
|      {-1, -1} | e_(0,0)e_(1,1)  ||
|      {-1, -1} | e_(0,1)e_(1,0)  ||
|      {-1, -1} | -e_(0,1)e_(1,1) ||
|      {-1, -1} | -e_(0,0)e_(1,0) ||
|      {0, -2}  | e_(1,0)e_(1,1)  ||
|                                  |
|              6      1            |
|o53 : Matrix E  <-- E             |
+----------------------------------+

Next we test reciprocity.

+-----------------------------------------------------------------------------+
|i54 : T1=tateResolution(M,low,3*high);                                       |
+-----------------------------------------------------------------------------+
|i55 : c={2,2}                                                                |
|                                                                             |
|o55 = {2, 2}                                                                 |
|                                                                             |
|o55 : List                                                                   |
+-----------------------------------------------------------------------------+
|i56 : CM=cornerComplex(T1,c);                                                |
+-----------------------------------------------------------------------------+
|i57 : RMc=firstQuadrantComplex(T1,c);                                        |
+-----------------------------------------------------------------------------+
|i58 : cohomologyMatrix(CM,low,3*high)                                        |
|                                                                             |
|o58 = | 0    0    0   0   0    64 92 120 148 176 204 232 260 |               |
|      | 0    0    0   0   0    57 82 107 132 157 182 207 232 |               |
|      | 0    0    0   0   0    50 72 94  116 138 160 182 204 |               |
|      | 0    0    0   0   0    43 62 81  100 119 138 157 176 |               |
|      | 0    0    0   0   0    36 52 68  84  100 116 132 148 |               |
|      | 0    0    0   0   0    29 42 55  68  81  94  107 120 |               |
|      | 0    0    0   0   0    22 32 42  52  62  72  82  92  |               |
|      | 0    0    0   0   0    15 22 29  36  43  50  57  64  |               |
|      | 12h2 8h2  4h2 0   4h   0  0  0   0   0   0   0   0   |               |
|      | 4h2  3h2  2h2 h2  0    0  0  0   0   0   0   0   0   |               |
|      | 4h3  2h3  0   2h2 4h2  0  0  0   0   0   0   0   0   |               |
|      | 12h3 7h3  2h3 3h2 8h2  0  0  0   0   0   0   0   0   |               |
|      | 20h3 12h3 4h3 4h2 12h2 0  0  0   0   0   0   0   0   |               |
|                                                                             |
|                       13               13                                   |
|o58 : Matrix (ZZ[h, k])   <-- (ZZ[h, k])                                     |
+-----------------------------------------------------------------------------+
|i59 : coRMc=apply(toList(-10..-4),i-> HH^(-i) RMc==0)                        |
|                                                                             |
|o59 = {true, true, true, true, true, true, false}                            |
|                                                                             |
|o59 : List                                                                   |
+-----------------------------------------------------------------------------+
|i60 : P1=ker CM.dd_(-sum c)                                                  |
|                                                                             |
|o60 = image {-2, -2} | 0              0              e_(0,0)e_(1,0)          |
|            {-2, -2} | 0              e_(0,0)e_(1,1) 0                       |
|            {-2, -2} | 0              e_(0,0)e_(1,0) 0                       |
|            {-2, -2} | e_(0,1)e_(1,1) 0              0                       |
|            {-2, -2} | e_(0,0)e_(1,1) 0              -e_(0,1)e_(1,1)         |
|            {-2, -2} | e_(0,1)e_(1,0) 0              0                       |
|            {-2, -2} | 0              0              e_(0,1)e_(1,0)          |
|            {-2, -2} | 0              0              e_(0,1)e_(1,1)          |
|            {-2, -2} | 0              e_(0,1)e_(1,1) 0                       |
|            {-2, -2} | e_(0,0)e_(1,0) 0              -e_(0,1)e_(1,0)         |
|            {-2, -2} | 0              e_(0,1)e_(1,0) 0                       |
|            {-2, -2} | 0              0              0                       |
|            {-2, -2} | 0              0              e_(0,0)e_(1,1)          |
|            {-2, -2} | 0              0              0                       |
|            {-2, -2} | 0              0              0                       |
|                                                                             |
|                              15                                             |
|o60 : E-module, submodule of E                                               |
|-----------------------------------------------------------------------------|
|-e_(0,0)e_(1,1) |                                                            |
|-e_(0,1)e_(1,1) |                                                            |
|-e_(0,1)e_(1,0) |                                                            |
|0               |                                                            |
|0               |                                                            |
|0               |                                                            |
|-e_(0,1)e_(1,1) |                                                            |
|0               |                                                            |
|0               |                                                            |
|0               |                                                            |
|0               |                                                            |
|-e_(0,1)e_(1,0) |                                                            |
|0               |                                                            |
|e_(0,0)e_(1,1)  |                                                            |
|e_(0,0)e_(1,0)  |                                                            |
+-----------------------------------------------------------------------------+
|i61 : LP=bgg (P1**E^{-c+v})                                                  |
|                                                                             |
|       15      16      4                                                     |
|o61 = S   <-- S   <-- S                                                      |
|                                                                             |
|      0       1       2                                                      |
|                                                                             |
|o61 : Complex                                                                |
+-----------------------------------------------------------------------------+
|i62 : betti LP                                                               |
|                                                                             |
|              0  1 2                                                         |
|o62 = total: 15 16 4                                                         |
|          0: 15 16 4                                                         |
|                                                                             |
|o62 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i63 : coLP=apply(toList(min LP..max LP),i->dim HH^(-i) LP)                   |
|                                                                             |
|o63 = {4, -1, -1}                                                            |
|                                                                             |
|o63 : List                                                                   |
+-----------------------------------------------------------------------------+

Hence both Lp and RMc are acyclic.

+-----------------------------------------------------------------------------+
|i64 : Mc=prune truncate(c,M)**S^{c}                                          |
|                                                                             |
|o64 = cokernel | x_(1,0)  0        0        0        0        0              |
|               | -x_(1,1) x_(1,0)  0        0        0        0              |
|               | 0        -x_(1,1) 0        0        0        0              |
|               | 0        0        x_(0,0)  x_(1,0)  0        0              |
|               | 0        0        -x_(0,1) 0        x_(1,0)  0              |
|               | 0        0        0        -x_(1,1) 0        x_(0,0)        |
|               | 0        0        0        0        -x_(1,1) -x_(0,1)       |
|               | 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              |
|                                                                             |
|                             15                                              |
|o64 : S-module, quotient of S                                                |
|-----------------------------------------------------------------------------|
|0        0        0        0        -x_(0,0) 0        0        0             |
|0        0        0        0        0        0        -x_(0,0) x_(0,0)       |
|0        0        0        0        0        0        0        0             |
|0        0        0        0        0        0        0        0             |
|0        0        0        0        x_(0,0)  0        0        0             |
|0        0        0        0        0        0        0        0             |
|0        0        0        0        0        0        x_(0,0)  0             |
|x_(0,0)  x_(1,0)  0        0        0        0        0        0             |
|-x_(0,1) 0        x_(1,0)  0        0        0        0        x_(0,0)       |
|0        -x_(1,1) 0        x_(0,0)  0        0        0        0             |
|0        0        -x_(1,1) -x_(0,1) 0        0        0        0             |
|0        0        0        0        x_(0,1)  x_(1,0)  0        0             |
|0        0        0        0        0        -x_(1,1) x_(0,1)  0             |
|0        0        0        0        0        0        0        x_(0,1)       |
|0        0        0        0        0        0        0        0             |
|-----------------------------------------------------------------------------|
|0        0       |                                                           |
|0        0       |                                                           |
|0        x_(0,0) |                                                           |
|0        0       |                                                           |
|0        0       |                                                           |
|0        0       |                                                           |
|0        0       |                                                           |
|0        0       |                                                           |
|0        0       |                                                           |
|0        0       |                                                           |
|0        x_(0,0) |                                                           |
|0        0       |                                                           |
|0        0       |                                                           |
|x_(1,0)  0       |                                                           |
|-x_(1,1) x_(0,1) |                                                           |
+-----------------------------------------------------------------------------+
|i65 : betti (Mc'=HH^0 LP), betti Mc                                          |
|                                                                             |
|               0  1          0  1                                            |
|o65 = (total: 15 16, total: 15 16)                                           |
|           0: 15 16      0: 15 16                                            |
|                                                                             |
|o65 : Sequence                                                               |
+-----------------------------------------------------------------------------+
|i66 : isIsomorphicStrict(Mc',Mc)                                             |
|                                                                             |
|o66 = true                                                                   |
+-----------------------------------------------------------------------------+
+-----------------------------------------------------------------------------+
|i67 : c={3,1}                                                                |
|                                                                             |
|o67 = {3, 1}                                                                 |
|                                                                             |
|o67 : List                                                                   |
+-----------------------------------------------------------------------------+
|i68 : cohomologyMatrix(T1,low,2*high)                                        |
|                                                                             |
|o68 = | 52h  33h  14h 5  24  43  62  81  100 119 |                           |
|      | 44h  28h  12h 4  20  36  52  68  84  100 |                           |
|      | 36h  23h  10h 3  16  29  42  55  68  81  |                           |
|      | 28h  18h  8h  2  12  22  32  42  52  62  |                           |
|      | 20h  13h  6h  1  8   15  22  29  36  43  |                           |
|      | 12h  8h   4h  0  4   8   12  16  20  24  |                           |
|      | 4h   3h   2h  h  0   1   2   3   4   5   |                           |
|      | 4h2  2h2  0   2h 4h  6h  8h  10h 12h 14h |                           |
|      | 12h2 7h2  2h2 3h 8h  13h 18h 23h 28h 33h |                           |
|      | 20h2 12h2 4h2 4h 12h 20h 28h 36h 44h 52h |                           |
|                                                                             |
|                       10               10                                   |
|o68 : Matrix (ZZ[h, k])   <-- (ZZ[h, k])                                     |
+-----------------------------------------------------------------------------+
|i69 : CM=cornerComplex(T1,c);                                                |
+-----------------------------------------------------------------------------+
|i70 : cohomologyMatrix(CM,low,3*high)                                        |
|                                                                             |
|o70 = | 0    0    0   0   0    0    92 120 148 176 204 232 260 |             |
|      | 0    0    0   0   0    0    82 107 132 157 182 207 232 |             |
|      | 0    0    0   0   0    0    72 94  116 138 160 182 204 |             |
|      | 0    0    0   0   0    0    62 81  100 119 138 157 176 |             |
|      | 0    0    0   0   0    0    52 68  84  100 116 132 148 |             |
|      | 0    0    0   0   0    0    42 55  68  81  94  107 120 |             |
|      | 0    0    0   0   0    0    32 42  52  62  72  82  92  |             |
|      | 0    0    0   0   0    0    22 29  36  43  50  57  64  |             |
|      | 0    0    0   0   0    0    12 16  20  24  28  32  36  |             |
|      | 4h2  3h2  2h2 h2  0    h    0  0   0   0   0   0   0   |             |
|      | 4h3  2h3  0   2h2 4h2  6h2  0  0   0   0   0   0   0   |             |
|      | 12h3 7h3  2h3 3h2 8h2  13h2 0  0   0   0   0   0   0   |             |
|      | 20h3 12h3 4h3 4h2 12h2 20h2 0  0   0   0   0   0   0   |             |
|                                                                             |
|                       13               13                                   |
|o70 : Matrix (ZZ[h, k])   <-- (ZZ[h, k])                                     |
+-----------------------------------------------------------------------------+
|i71 : RMc=firstQuadrantComplex(T1,c);                                        |
+-----------------------------------------------------------------------------+
|i72 : coRMc=apply(toList(-9..-4),i-> HH^(-i) RMc==0)                         |
|                                                                             |
|o72 = {true, true, true, true, true, false}                                  |
|                                                                             |
|o72 : List                                                                   |
+-----------------------------------------------------------------------------+
|i73 : P1=ker CM.dd_(-sum c)                                                  |
|                                                                             |
|o73 = image {-3, -1} | 0              0                                      |
|            {-3, -1} | e_(0,1)e_(1,1) 0                                      |
|            {-3, -1} | e_(0,1)e_(1,0) 0                                      |
|            {-3, -1} | 0              0                                      |
|            {-3, -1} | 0              e_(0,1)e_(1,0)e_(1,1)                  |
|            {-3, -1} | 0              e_(0,0)e_(1,0)e_(1,1)                  |
|            {-3, -1} | e_(0,0)e_(1,1) 0                                      |
|            {-3, -1} | 0              0                                      |
|            {-3, -1} | 0              0                                      |
|            {-3, -1} | 0              0                                      |
|            {-3, -1} | e_(0,0)e_(1,0) 0                                      |
|            {-3, -1} | 0              0                                      |
|                                                                             |
|                              12                                             |
|o73 : E-module, submodule of E                                               |
|-----------------------------------------------------------------------------|
|e_(0,0)e_(1,0)e_(1,1)  0                     0                               |
|0                      0                     0                               |
|0                      0                     0                               |
|0                      0                     e_(0,0)e_(1,0)e_(1,1)           |
|0                      0                     0                               |
|0                      e_(0,1)e_(1,0)e_(1,1) 0                               |
|e_(0,1)e_(1,0)e_(1,1)  0                     0                               |
|-e_(0,1)e_(1,0)e_(1,1) e_(0,0)e_(1,0)e_(1,1) 0                               |
|0                      0                     0                               |
|0                      0                     e_(0,1)e_(1,0)e_(1,1)           |
|0                      0                     0                               |
|0                      0                     0                               |
|-----------------------------------------------------------------------------|
|0                     0                      |                               |
|0                     0                      |                               |
|0                     0                      |                               |
|0                     -e_(0,1)e_(1,0)e_(1,1) |                               |
|0                     0                      |                               |
|0                     0                      |                               |
|0                     0                      |                               |
|0                     0                      |                               |
|e_(0,1)e_(1,0)e_(1,1) 0                      |                               |
|e_(0,0)e_(1,0)e_(1,1) 0                      |                               |
|0                     -e_(0,1)e_(1,0)e_(1,1) |                               |
|0                     e_(0,0)e_(1,0)e_(1,1)  |                               |
+-----------------------------------------------------------------------------+
|i74 : LP=bgg (P1**E^{-c+v})                                                  |
|                                                                             |
|       12      10      1                                                     |
|o74 = S   <-- S   <-- S                                                      |
|                                                                             |
|      0       1       2                                                      |
|                                                                             |
|o74 : Complex                                                                |
+-----------------------------------------------------------------------------+
|i75 : betti LP                                                               |
|                                                                             |
|              0  1 2                                                         |
|o75 = total: 12 10 1                                                         |
|          0: 12 10 1                                                         |
|                                                                             |
|o75 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i76 : coLP=apply(toList(min LP..max LP),i->dim HH^(-i) LP)                   |
|                                                                             |
|o76 = {4, -1, -1}                                                            |
|                                                                             |
|o76 : List                                                                   |
+-----------------------------------------------------------------------------+
|i77 : Mc=prune truncate(c,M)**S^{c}                                          |
|                                                                             |
|o77 = cokernel | x_(0,0)  x_(1,0)  0        0        0        0              |
|               | -x_(0,1) 0        x_(1,0)  0        0        0              |
|               | 0        -x_(1,1) 0        x_(0,0)  0        0              |
|               | 0        0        -x_(1,1) -x_(0,1) 0        0              |
|               | 0        0        0        0        x_(0,0)  0              |
|               | 0        0        0        0        -x_(0,1) x_(0,0)        |
|               | 0        0        0        0        0        -x_(0,1)       |
|               | 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                                              |
|o77 : S-module, quotient of S                                                |
|-----------------------------------------------------------------------------|
|0        0        0        0       |                                         |
|0        0        -x_(0,0) 0       |                                         |
|0        0        0        0       |                                         |
|0        0        0        x_(0,0) |                                         |
|0        0        0        0       |                                         |
|0        0        0        0       |                                         |
|0        0        x_(0,0)  0       |                                         |
|x_(0,0)  0        0        0       |                                         |
|-x_(0,1) x_(0,0)  0        0       |                                         |
|0        -x_(0,1) 0        x_(0,0) |                                         |
|0        0        x_(0,1)  0       |                                         |
|0        0        0        x_(0,1) |                                         |
+-----------------------------------------------------------------------------+
|i78 : betti (Mc'=HH^0 LP), betti Mc                                          |
|                                                                             |
|               0  1          0  1                                            |
|o78 = (total: 12 10, total: 12 10)                                           |
|           0: 12 10      0: 12 10                                            |
|                                                                             |
|o78 : Sequence                                                               |
+-----------------------------------------------------------------------------+
|i79 : isIsomorphicStrict(Mc',Mc)                                             |
|                                                                             |
|o79 = true                                                                   |
+-----------------------------------------------------------------------------+

Now we test tateExtension.

+-----------------------------------------------------------------------------+
|i80 : W=beilinsonWindow T                                                    |
|                                                                             |
|       1      4                                                              |
|o80 = E  <-- E  <-- 0                                                        |
|                                                                             |
|      -1     0      1                                                        |
|                                                                             |
|o80 : Complex                                                                |
+-----------------------------------------------------------------------------+
|i81 : T'=tateExtension W                                                     |
|                                                                             |
|       1250      1044      867      716      588      480      389      312  |
|o81 = E     <-- E     <-- E    <-- E    <-- E    <-- E    <-- E    <-- E     |
|                                                                             |
|      -10       -9        -8       -7       -6       -5       -4       -3    |
|                                                                             |
|o81 : Complex                                                                |
|-----------------------------------------------------------------------------|
|     246      189      136      88      55      46      54                   |
|<-- E    <-- E    <-- E    <-- E   <-- E   <-- E   <-- E                     |
|                                                                             |
|    -2       -1       0        1       2       3       4                     |
+-----------------------------------------------------------------------------+
|i82 : comT'=cohomologyMatrix(T',low,high)                                    |
|                                                                             |
|o82 = | 28h  18h  8h  2  12  22  32  |                                       |
|      | 20h  13h  6h  1  8   15  22  |                                       |
|      | 12h  8h   4h  0  4   8   12  |                                       |
|      | 4h   3h   2h  h  0   1   2   |                                       |
|      | 4h2  2h2  0   2h 4h  6h  8h  |                                       |
|      | 12h2 7h2  2h2 3h 8h  13h 18h |                                       |
|      | 20h2 12h2 4h2 4h 12h 20h 28h |                                       |
|                                                                             |
|                       7               7                                     |
|o82 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i83 : comT=cohomologyMatrix(T,low,high)                                      |
|                                                                             |
|o83 = | 28h  18h  8h  2  12  22  32  |                                       |
|      | 20h  13h  6h  1  8   15  22  |                                       |
|      | 12h  8h   4h  0  4   8   12  |                                       |
|      | 4h   3h   2h  h  0   1   2   |                                       |
|      | 4h2  2h2  0   2h 4h  6h  8h  |                                       |
|      | 12h2 7h2  2h2 3h 8h  13h 18h |                                       |
|      | 20h2 12h2 4h2 4h 12h 20h 28h |                                       |
|                                                                             |
|                       7               7                                     |
|o83 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i84 : assert(sub(comT',vars ring comT)==comT)                                |
+-----------------------------------------------------------------------------+

Finally we illustrate how shifting the Beilinson window works.

+-----------------------------------------------------------------------------+
|i85 : cohomologyMatrix(T,low,high)                                           |
|                                                                             |
|o85 = | 28h  18h  8h  2  12  22  32  |                                       |
|      | 20h  13h  6h  1  8   15  22  |                                       |
|      | 12h  8h   4h  0  4   8   12  |                                       |
|      | 4h   3h   2h  h  0   1   2   |                                       |
|      | 4h2  2h2  0   2h 4h  6h  8h  |                                       |
|      | 12h2 7h2  2h2 3h 8h  13h 18h |                                       |
|      | 20h2 12h2 4h2 4h 12h 20h 28h |                                       |
|                                                                             |
|                       7               7                                     |
|o85 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i86 : cohomologyMatrix(beilinsonWindow T,low, high)                          |
|                                                                             |
|o86 = | 0 0 0  0  0 0 0 |                                                    |
|      | 0 0 0  0  0 0 0 |                                                    |
|      | 0 0 0  0  0 0 0 |                                                    |
|      | 0 0 2h h  0 0 0 |                                                    |
|      | 0 0 0  2h 0 0 0 |                                                    |
|      | 0 0 0  0  0 0 0 |                                                    |
|      | 0 0 0  0  0 0 0 |                                                    |
|                                                                             |
|                       7               7                                     |
|o86 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i87 : B = beilinson T                                                        |
|                                                                             |
|       1      4                                                              |
|o87 = S  <-- S                                                               |
|                                                                             |
|      -1     0                                                               |
|                                                                             |
|o87 : Complex                                                                |
+-----------------------------------------------------------------------------+
|i88 : d={2,2}                                                                |
|                                                                             |
|o88 = {2, 2}                                                                 |
|                                                                             |
|o88 : List                                                                   |
+-----------------------------------------------------------------------------+
|i89 : T1=(T**E^{d})[sum d]                                                   |
|                                                                             |
|       136      55      32      44      39      36      54      91      136  |
|o89 = E    <-- E   <-- E   <-- E   <-- E   <-- E   <-- E   <-- E   <-- E     |
|                                                                             |
|      -12      -11     -10     -9      -8      -7      -6      -5      -4    |
|                                                                             |
|o89 : Complex                                                                |
|-----------------------------------------------------------------------------|
|     184      239      304      382      476      589                        |
|<-- E    <-- E    <-- E    <-- E    <-- E    <-- E                           |
|                                                                             |
|    -3       -2       -1       0        1        2                           |
+-----------------------------------------------------------------------------+
|i90 : cohomologyMatrix(beilinsonWindow T1,low,high)                          |
|                                                                             |
|o90 = | 0 0 0    0    0 0 0 |                                                |
|      | 0 0 0    0    0 0 0 |                                                |
|      | 0 0 0    0    0 0 0 |                                                |
|      | 0 0 12h2 7h2  0 0 0 |                                                |
|      | 0 0 20h2 12h2 0 0 0 |                                                |
|      | 0 0 0    0    0 0 0 |                                                |
|      | 0 0 0    0    0 0 0 |                                                |
|                                                                             |
|                       7               7                                     |
|o90 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i91 : B1 =beilinson T1                                                       |
|                                                                             |
|       7      24      20                                                     |
|o91 = S  <-- S   <-- S                                                       |
|                                                                             |
|      -2     -1      0                                                       |
|                                                                             |
|o91 : Complex                                                                |
+-----------------------------------------------------------------------------+
|i92 : decompose annihilator HH^1 B1                                          |
|                                                                             |
|o92 = {ideal (x   , x   ), ideal (x   , x   )}                               |
|               0,1   0,0           1,1   1,0                                 |
|                                                                             |
|o92 : List                                                                   |
+-----------------------------------------------------------------------------+
|i93 : decompose annihilator HH^2 B1                                          |
|                                                                             |
|o93 = {ideal (x   , x   , x   , x   )}                                       |
|               1,1   1,0   0,1   0,0                                         |
|                                                                             |
|o93 : List                                                                   |
+-----------------------------------------------------------------------------+
|i94 : M1=HH^0 B1                                                             |
|                                                                             |
|o94 = image {1, 1} | x_(0,1)x_(1,0)x_(1,1)^2 x_(0,0)x_(0,1)x_(1,1)^2         |
|            {1, 1} | x_(0,1)x_(1,1)^3        0                               |
|            {1, 1} | 0                       x_(0,0)^2x_(1,1)^2              |
|            {1, 1} | x_(0,0)x_(1,1)^3        0                               |
|            {1, 1} | x_(0,1)x_(1,0)^2x_(1,1) x_(0,0)x_(0,1)x_(1,0)x_(1,1)    |
|            {1, 1} | x_(0,1)x_(1,0)x_(1,1)^2 0                               |
|            {1, 1} | 0                       x_(0,0)^2x_(1,0)x_(1,1)         |
|            {1, 1} | x_(0,0)x_(1,0)x_(1,1)^2 0                               |
|            {1, 1} | 0                       x_(0,1)^2x_(1,1)^2              |
|            {1, 1} | 0                       x_(0,0)x_(0,1)x_(1,1)^2         |
|            {1, 1} | 0                       0                               |
|            {1, 1} | 0                       0                               |
|            {1, 1} | x_(0,1)x_(1,0)^3        x_(0,0)x_(0,1)x_(1,0)^2         |
|            {1, 1} | x_(0,1)x_(1,0)^2x_(1,1) 0                               |
|            {1, 1} | x_(0,0)x_(1,0)^3        x_(0,0)^2x_(1,0)^2              |
|            {1, 1} | x_(0,0)x_(1,0)^2x_(1,1) 0                               |
|            {1, 1} | 0                       x_(0,1)^2x_(1,0)x_(1,1)         |
|            {1, 1} | 0                       x_(0,0)x_(0,1)x_(1,0)x_(1,1)    |
|            {1, 1} | 0                       0                               |
|            {1, 1} | 0                       0                               |
|                                                                             |
|                              20                                             |
|o94 : S-module, submodule of S                                               |
|-----------------------------------------------------------------------------|
|0                             x_(0,1)^2x_(1,1)^2                             |
|x_(0,0)x_(0,1)x_(1,1)^2       0                                              |
|-x_(0,0)^2x_(1,0)x_(1,1)      0                                              |
|x_(0,0)^2x_(1,1)^2            0                                              |
|0                             x_(0,1)^2x_(1,0)x_(1,1)                        |
|x_(0,0)x_(0,1)x_(1,0)x_(1,1)  0                                              |
|-x_(0,0)^2x_(1,0)^2           0                                              |
|x_(0,0)^2x_(1,0)x_(1,1)       0                                              |
|-x_(0,1)^2x_(1,0)x_(1,1)      0                                              |
|-x_(0,0)x_(0,1)x_(1,0)x_(1,1) 0                                              |
|0                             x_(0,0)x_(0,1)x_(1,1)^2                        |
|0                             -x_(0,0)^2x_(1,1)^2                            |
|0                             x_(0,1)^2x_(1,0)^2                             |
|x_(0,0)x_(0,1)x_(1,0)^2       0                                              |
|0                             x_(0,0)x_(0,1)x_(1,0)^2                        |
|x_(0,0)^2x_(1,0)^2            0                                              |
|-x_(0,1)^2x_(1,0)^2           0                                              |
|-x_(0,0)x_(0,1)x_(1,0)^2      0                                              |
|0                             x_(0,0)x_(0,1)x_(1,0)x_(1,1)                   |
|0                             -x_(0,0)^2x_(1,0)x_(1,1)                       |
|-----------------------------------------------------------------------------|
|0                             0                        |                     |
|x_(0,1)^2x_(1,1)^2            0                        |                     |
|0                             x_(0,0)^2x_(0,1)x_(1,1)  |                     |
|x_(0,0)x_(0,1)x_(1,1)^2       0                        |                     |
|0                             0                        |                     |
|x_(0,1)^2x_(1,0)x_(1,1)       0                        |                     |
|0                             x_(0,0)^2x_(0,1)x_(1,0)  |                     |
|x_(0,0)x_(0,1)x_(1,0)x_(1,1)  0                        |                     |
|0                             x_(0,1)^3x_(1,1)         |                     |
|0                             x_(0,0)x_(0,1)^2x_(1,1)  |                     |
|-x_(0,0)x_(0,1)x_(1,0)x_(1,1) -x_(0,0)^2x_(0,1)x_(1,1) |                     |
|x_(0,0)^2x_(1,0)x_(1,1)       x_(0,0)^3x_(1,1)         |                     |
|0                             0                        |                     |
|x_(0,1)^2x_(1,0)^2            0                        |                     |
|0                             0                        |                     |
|x_(0,0)x_(0,1)x_(1,0)^2       0                        |                     |
|0                             x_(0,1)^3x_(1,0)         |                     |
|0                             x_(0,0)x_(0,1)^2x_(1,0)  |                     |
|-x_(0,0)x_(0,1)x_(1,0)^2      -x_(0,0)^2x_(0,1)x_(1,0) |                     |
|x_(0,0)^2x_(1,0)^2            x_(0,0)^3x_(1,0)         |                     |
+-----------------------------------------------------------------------------+
|i95 : dim M1                                                                 |
|                                                                             |
|o95 = 4                                                                      |
+-----------------------------------------------------------------------------+
|i96 : betti M1, betti M                                                      |
|                                                                             |
|              0 1         0 1                                                |
|o96 = (total: 6 4, total: 6 4)                                               |
|           6: 6 4      2: 6 4                                                |
|                                                                             |
|o96 : Sequence                                                               |
+-----------------------------------------------------------------------------+
|i97 : isIsomorphicStrict(M1,M**S^{-d})                                       |
|                                                                             |
|o97 = true                                                                   |
+-----------------------------------------------------------------------------+

Another shift:

+-----------------------------------------------------------------------------+
|i98 : d={-1,-2}                                                              |
|                                                                             |
|o98 = {-1, -2}                                                               |
|                                                                             |
|o98 : List                                                                   |
+-----------------------------------------------------------------------------+
|i99 : T2=(T**E^{d})[sum d]                                                   |
|                                                                             |
|       136      55      32      44      39      36      54      91      136  |
|o99 = E    <-- E   <-- E   <-- E   <-- E   <-- E   <-- E   <-- E   <-- E     |
|                                                                             |
|      -5       -4      -3      -2      -1      0       1       2       3     |
|                                                                             |
|o99 : Complex                                                                |
|-----------------------------------------------------------------------------|
|     184      239      304      382      476      589                        |
|<-- E    <-- E    <-- E    <-- E    <-- E    <-- E                           |
|                                                                             |
|    4        5        6        7        8        9                           |
+-----------------------------------------------------------------------------+
|i100 : cohomologyMatrix(beilinsonWindow T2,low,high)                         |
|                                                                             |
|o100 = | 0 0 0 0 0 0 0 |                                                     |
|       | 0 0 0 0 0 0 0 |                                                     |
|       | 0 0 0 0 0 0 0 |                                                     |
|       | 0 0 1 8 0 0 0 |                                                     |
|       | 0 0 0 4 0 0 0 |                                                     |
|       | 0 0 0 0 0 0 0 |                                                     |
|       | 0 0 0 0 0 0 0 |                                                     |
|                                                                             |
|                        7               7                                    |
|o100 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+-----------------------------------------------------------------------------+
|i101 : cohomologyMatrix(T,low,high)                                          |
|                                                                             |
|o101 = | 28h  18h  8h  2  12  22  32  |                                      |
|       | 20h  13h  6h  1  8   15  22  |                                      |
|       | 12h  8h   4h  0  4   8   12  |                                      |
|       | 4h   3h   2h  h  0   1   2   |                                      |
|       | 4h2  2h2  0   2h 4h  6h  8h  |                                      |
|       | 12h2 7h2  2h2 3h 8h  13h 18h |                                      |
|       | 20h2 12h2 4h2 4h 12h 20h 28h |                                      |
|                                                                             |
|                        7               7                                    |
|o101 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+-----------------------------------------------------------------------------+
|i102 : B2 =beilinson T2                                                      |
|                                                                             |
|        8      5                                                             |
|o102 = S  <-- S                                                              |
|                                                                             |
|       0      1                                                              |
|                                                                             |
|o102 : Complex                                                               |
+-----------------------------------------------------------------------------+
|i103 : HH^(-1) B2 == 0                                                       |
|                                                                             |
|o103 = true                                                                  |
+-----------------------------------------------------------------------------+
|i104 : M2=HH^0 B2                                                            |
|                                                                             |
|o104 = cokernel | x_(1,1)  0        0        x_(1,0)  0        |             |
|                | 0        -x_(1,0) 0        0        -x_(0,0) |             |
|                | 0        x_(1,1)  0        0        0        |             |
|                | 0        0        -x_(1,0) 0        0        |             |
|                | 0        0        x_(1,1)  0        -x_(0,0) |             |
|                | -x_(1,0) 0        0        0        0        |             |
|                | 0        0        0        -x_(1,0) -x_(0,1) |             |
|                | 0        0        0        x_(1,1)  0        |             |
|                                                                             |
|                              8                                              |
|o104 : S-module, quotient of S                                               |
+-----------------------------------------------------------------------------+
|i105 : dim M2                                                                |
|                                                                             |
|o105 = 4                                                                     |
+-----------------------------------------------------------------------------+
|i106 : betti M2, betti M, betti truncate(-d,M)                               |
|                                                                             |
|               0 1         0 1         0 1                                   |
|o106 = (total: 8 5, total: 6 4, total: 8 5)                                  |
|            0: 8 5      2: 6 4      3: 8 5                                   |
|                                                                             |
|o106 : Sequence                                                              |
+-----------------------------------------------------------------------------+
|i107 : isIsomorphicStrict(M2,truncate(-d,M)**S^{-d})                         |
|                                                                             |
|o107 = true                                                                  |
+-----------------------------------------------------------------------------+

See also
========

  * bgg -- make a linear free complex from a module over an
    exterior algebra or a symmetric algebra
  * upperCorner -- compute the upper corner
  * cornerComplex -- form the corner complex
  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution
  * beilinson -- apply the beilinson functor
  * tateExtension -- extend the terms in the Beilinson
    window to a part of a corner complex of the corresponding Tate resolution
  * isIsomorphicStrict -- probabilistic test for
    homogeneous isomorphism

For the programmer
==================

The object composedFunctions, is a function closure (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4284:0.

ContractionData -- name of a cached datum
*****************************************

For the programmer
==================

The object ContractionData, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4389:0.

contractionData -- Compute the action of monomials in the exterior algebra on the Beilinson monad
*************************************************************************************************

  * Usage:
        contractionData(a, b, E)
  * Inputs:
      * a, a list (Macaulay2Doc), row degrees
      * b, a list (Macaulay2Doc), degrees
      * E, a ring (Macaulay2Doc), exterior algebra
  * Optional inputs (Macaulay2Doc),:
      * BundleType => ..., default value PrunedQuotient
  * Outputs:
      * a list (Macaulay2Doc), maps from U^a to U^b

Caveat
======

Mike will finish this some day

Ways to use contractionData:
============================

  * "contractionData(List,List,Ring)"

For the programmer
==================

The object contractionData, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:6540:0.

cornerComplex -- form the corner complex
****************************************

  * Usage:
        C = cornerComplex(T,c)
        C = cornerComplex(M,c,low,high)
  * Inputs:
      * T, a complex (Complexes), a (part of a) Tate resolution
        on a product of t projective spaces
      * c, a list (Macaulay2Doc), cohomological degree of upper
        corner of the  last quadrant complex which is part of the corner
        complex
      * M, a module (Macaulay2Doc), multi-graded module
        representing a sheaf F
      * low, a list (Macaulay2Doc), a multidegree
      * high, a list (Macaulay2Doc), a multidegree
  * Outputs:
      * C, a complex (Complexes), The corner complex

Description
===========

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 (see
http://arxiv.org/abs/1411.5724 ). 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 freeResolution( trim (ideal vars E)^2,LengthLimit=>8))[1];|
+-------------------------------------------------------------------------+
|i5 : T2=freeResolution(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 P^1xP^1.

+---------------------------------------------+
|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.dd_2

+------------------------------+
|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.dd_1

+---------------------+
|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     |
|o37 = E   <-- E    <-- E    <-- E   <-- E   <-- E   <-- E  <-- E  <-- E  <-- |
|                                                                             |
|      -8      -7       -6       -5      -4      -3      -2     -1     0      |
|                                                                             |
|o37 : Complex                                                                |
|-----------------------------------------------------------------------------|
| 17      44      95      181      315                                        |
|E   <-- E   <-- E   <-- E    <-- E                                           |
|                                                                             |
|1       2       3       4        5                                           |
+-----------------------------------------------------------------------------+
|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                                                        |
+-----------------------------------------------------------------------------+

See also
========

  * upperCorner -- compute the upper corner
  * lowerCorner -- compute the lower corner
  * firstQuadrantComplex -- form the first
    quadrant complex
  * lastQuadrantComplex -- form the last quadrant
    complex
  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution
  * beilinson -- apply the beilinson functor

Ways to use cornerComplex:
==========================

  * "cornerComplex(Complex,List)"
  * "cornerComplex(Module,List,List,List)"

For the programmer
==================

The object cornerComplex, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5505:0.

directImageComplex -- compute the direct image complex
******************************************************

  * Usage:
        RpiM = directImageComplex(M,I)
        RphiN = directImageComplex(J,N,phi)
  * Inputs:
      * M, a module (Macaulay2Doc), representing a sheaf F on a
        product of projective spaces
      * I, a list (Macaulay2Doc), corresponding to the factors to
        which pi projects
      * J, an ideal (Macaulay2Doc), the saturated ideal of a
        projective scheme X in some P^n
      * N, a module (Macaulay2Doc), representing a sheaf on X
      * phi, a matrix (Macaulay2Doc), a kx(m+1) matrix of
        homogeneous polynomials on P^n which define a morphism or rational map
        phi:X -> P^m, i.e. the 2x2 minors of phi vanish on X.
  * Optional inputs (Macaulay2Doc),:
      * BundleType (missing documentation) => a symbol (Macaulay2Doc),
        default value PrunedQuotient, the possible
        values are described in BundleType
  * Outputs:
      * RpiM, a complex (Complexes), a chain complex of modules
        over a symmetric algebra
      * RphiN, a complex (Complexes), a chain complex of modules
        over the coordinate ring of P^m

Description
===========

Let M represent a coherent sheaf F on a product P=P^{n_0}x..xP^{n_{t-1}} of t
projective space.

Let $pi: P -> P^I= X_{i \in I} P^{n_i}$ denote the projection onto some
factors. We compute a chain complex of S_I modules whose sheafication is $Rpi_*
F$.

The algorithm is based on the properties of strands, and the beilinson functor
on $P^I$, see Tate Resolutions on Products of Projective Spaces (see
http://arxiv.org/abs/1411.5724 ). Note that the resulting complex is a chain
complex instead of a cochain complex, so that for example HH^1 RpiM is the
module representing $R^1 pi_* F$

In the second version we start with a projective scheme X =Proj(R/J) defined by
J in some P^n= Proj R with R \cong K[x_0..x_n] a polynomial ring, an  R-module
N of representing a sheaf on X, and a matrix phi of homogeneous forms who's
rows define a morphism phi: X -> P^m. In particular the 2x2 minors of phi
vanish on X, and phi defines a morphism if and only if the entries of phi have
no common zero in X. The algorithm passes to the graph of phi in P^n x P^m, and
calls the first version of this function.

Here is an example of the first kind.

+-------------------------------------------+
|i1 : t=2                                   |
|                                           |
|o1 = 2                                     |
+-------------------------------------------+
|i2 : n={1,2}                               |
|                                           |
|o2 = {1, 2}                                |
|                                           |
|o2 : List                                  |
+-------------------------------------------+
|i3 : (S,E)=productOfProjectiveSpaces{1,2}  |
|                                           |
|o3 = (S, E)                                |
|                                           |
|o3 : Sequence                              |
+-------------------------------------------+
|i4 : M=(beilinson E^{{-1,-1}})**S^{{-2,-1}}|
|                                           |
|o4 = cokernel {3, 2} | x_(1,2)  |          |
|              {3, 2} | -x_(1,1) |          |
|              {3, 2} | x_(1,0)  |          |
|                                           |
|                            3              |
|o4 : S-module, quotient of S               |
+-------------------------------------------+

We compute the direct image complex of M by projecting to the second factor
P^2.

+------------------------------------------------------------------+
|i5 : I={1}                                                        |
|                                                                  |
|o5 = {1}                                                          |
|                                                                  |
|o5 : List                                                         |
+------------------------------------------------------------------+
|i6 : J=select({0,t-1},i-> not member(i,I))                        |
|                                                                  |
|o6 = {0}                                                          |
|                                                                  |
|o6 : List                                                         |
+------------------------------------------------------------------+
|i7 : RpiM=directImageComplex(M,I)                                 |
|                                                                  |
|        ZZ              2        ZZ              6                |
|o7 = (-----[x   ..x   ])  <-- (-----[x   ..x   ])                 |
|      32003  0,0   0,2         32003  0,0   0,2                   |
|                                                                  |
|     -2                       -1                                  |
|                                                                  |
|o7 : Complex                                                      |
+------------------------------------------------------------------+
|i8 : betti RpiM                                                   |
|                                                                  |
|            -2 -1                                                 |
|o8 = total:  2  6                                                 |
|         2:  2  6                                                 |
|                                                                  |
|o8 : BettiTally                                                   |
+------------------------------------------------------------------+
|i9 : prune HH_0 RpiM                                              |
|                                                                  |
|o9 = 0                                                            |
|                                                                  |
|       ZZ                                                         |
|o9 : -----[x   ..x   ]-module                                     |
|     32003  0,0   0,2                                             |
+------------------------------------------------------------------+
|i10 : prune HH^1 RpiM                                             |
|                                                                  |
|o10 = cokernel {2} | -x_(0,2) 0        |                          |
|               {2} | 0        -x_(0,2) |                          |
|               {2} | x_(0,0)  0        |                          |
|               {2} | -x_(0,1) 0        |                          |
|               {2} | 0        x_(0,0)  |                          |
|               {2} | 0        -x_(0,1) |                          |
|                                                                  |
|        ZZ                                     ZZ              6  |
|o10 : -----[x   ..x   ]-module, quotient of (-----[x   ..x   ])   |
|      32003  0,0   0,2                       32003  0,0   0,2     |
+------------------------------------------------------------------+
|i11 : prune HH^2 RpiM                                             |
|                                                                  |
|o11 = cokernel | x_(0,2) x_(0,1) x_(0,0) 0       0       0       ||
|               | 0       0       0       x_(0,2) x_(0,1) x_(0,0) ||
|                                                                  |
|        ZZ                                     ZZ              2  |
|o11 : -----[x   ..x   ]-module, quotient of (-----[x   ..x   ])   |
|      32003  0,0   0,2                       32003  0,0   0,2     |
+------------------------------------------------------------------+
|i12 : dim HH^2 RpiM                                               |
|                                                                  |
|o12 = 0                                                           |
+------------------------------------------------------------------+

HH_{-2} RpiM is artinian, hence its sheafication is zero. Thus the direct image
complex in this case is concentrated in the single sheaf $Rpi_* F = R^1pi_* F$

+--------------------------------------------------+
|i13 : cohomologyMatrix(M,-3*n,3*n)                |
|                                                  |
|o13 = | 175h  140h  105h  70h  35h  0 35   |      |
|      | 120h  96h   72h   48h  24h  0 24   |      |
|      | 75h   60h   45h   30h  15h  0 15   |      |
|      | 40h   32h   24h   16h  8h   0 8    |      |
|      | 15h   12h   9h    6h   3h   0 3    |      |
|      | 0     0     0     0    0    0 0    |      |
|      | 5h2   4h2   3h2   2h2  h2   0 h    |      |
|      | 0     0     0     0    0    0 0    |      |
|      | 15h3  12h3  9h3   6h3  3h3  0 3h2  |      |
|      | 40h3  32h3  24h3  16h3 8h3  0 8h2  |      |
|      | 75h3  60h3  45h3  30h3 15h3 0 15h2 |      |
|      | 120h3 96h3  72h3  48h3 24h3 0 24h2 |      |
|      | 175h3 140h3 105h3 70h3 35h3 0 35h2 |      |
|                                                  |
|                       13               7         |
|o13 : Matrix (ZZ[h, k])   <-- (ZZ[h, k])          |
+--------------------------------------------------+
|i14 : T=tateResolution(M,-2*n,2*n);               |
+--------------------------------------------------+
|i15 : cohomologyMatrix(strand(T,{0,0},J),-2*n,2*n)|
|                                                  |
|o15 = | 0 0 30h  0 0 |                            |
|      | 0 0 16h  0 0 |                            |
|      | 0 0 6h   0 0 |                            |
|      | 0 0 0    0 0 |                            |
|      | 0 0 2h2  0 0 |                            |
|      | 0 0 0    0 0 |                            |
|      | 0 0 6h3  0 0 |                            |
|      | 0 0 16h3 0 0 |                            |
|      | 0 0 30h3 0 0 |                            |
|                                                  |
|                       9               5          |
|o15 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])           |
+--------------------------------------------------+

As an example of the second version, we consider the ruled cubic surface scroll
X subset P^4 defined by the 2x2 minors of the matrix $$ m= matrix \{
\{x_0,x_1,x_3\},\{x_1,x_2,x_4\} \},$$ and the morphism f: X -> P^1 onto the
base. f is defined by ratio of the two rows of m, hence by the 3x2 matrix
phi=m^t.

As a module N we take a symmetric power of the cokernel m, twisted by
R^{\{d\}}.

+-------------------------------------------------------+
|i16 : kk=ZZ/101                                        |
|                                                       |
|o16 = kk                                               |
|                                                       |
|o16 : QuotientRing                                     |
+-------------------------------------------------------+
|i17 : R=kk[x_0..x_4]                                   |
|                                                       |
|o17 = R                                                |
|                                                       |
|o17 : PolynomialRing                                   |
+-------------------------------------------------------+
|i18 : m=matrix {{ x_0,x_1,x_3},{x_1,x_2,x_4}}          |
|                                                       |
|o18 = | x_0 x_1 x_3 |                                  |
|      | x_1 x_2 x_4 |                                  |
|                                                       |
|              2      3                                 |
|o18 : Matrix R  <-- R                                  |
+-------------------------------------------------------+
|i19 : J=minors(2,m)                                    |
|                                                       |
|                2                                      |
|o19 = ideal (- x  + x x , - x x  + x x , - x x  + x x )|
|                1    0 2     1 3    0 4     2 3    1 4 |
|                                                       |
|o19 : Ideal of R                                       |
+-------------------------------------------------------+
|i20 : dim J, degree J                                  |
|                                                       |
|o20 = (3, 3)                                           |
|                                                       |
|o20 : Sequence                                         |
+-------------------------------------------------------+
|i21 : s=2,d=-2                                         |
|                                                       |
|o21 = (2, -2)                                          |
|                                                       |
|o21 : Sequence                                         |
+-------------------------------------------------------+
|i22 : N=symmetricPower(s,coker m)**R^{d};              |
+-------------------------------------------------------+
|i23 : betti freeResolution N                           |
|                                                       |
|             0 1 2                                     |
|o23 = total: 3 6 3                                     |
|          2: 3 6 3                                     |
|                                                       |
|o23 : BettiTally                                       |
+-------------------------------------------------------+
|i24 : annihilator N == J                               |
|                                                       |
|o24 = true                                             |
+-------------------------------------------------------+
|i25 : phi= transpose m                                 |
|                                                       |
|o25 = {-1} | x_0 x_1 |                                 |
|      {-1} | x_1 x_2 |                                 |
|      {-1} | x_3 x_4 |                                 |
|                                                       |
|              3      2                                 |
|o25 : Matrix R  <-- R                                  |
+-------------------------------------------------------+
|i26 : RphiN = directImageComplex(J,N,phi)              |
|                                                       |
|                      1                                |
|o26 = (kk[x   ..x   ])                                 |
|           0,0   0,1                                   |
|                                                       |
|      0                                                |
|                                                       |
|o26 : Complex                                          |
+-------------------------------------------------------+
|i27 : T= ring RphiN                                    |
|                                                       |
|o27 = T                                                |
|                                                       |
|o27 : PolynomialRing                                   |
+-------------------------------------------------------+
|i28 : HH^1 RphiN                                       |
|                                                       |
|o28 = 0                                                |
|                                                       |
|o28 : T-module                                         |
+-------------------------------------------------------+

Now a different symmetric power and a different twist.

+-----------------------------------------------------------------------------+
|i29 : s=3,d=1                                                                |
|                                                                             |
|o29 = (3, 1)                                                                 |
|                                                                             |
|o29 : Sequence                                                               |
+-----------------------------------------------------------------------------+
|i30 : N=symmetricPower(s,coker m)**R^{d};                                    |
+-----------------------------------------------------------------------------+
|i31 : RphiN = directImageComplex(J,N,phi)                                    |
|                                                                             |
|                      11                     9                               |
|o31 = (kk[x   ..x   ])   <-- (kk[x   ..x   ])                                |
|           0,0   0,1              0,0   0,1                                  |
|                                                                             |
|      0                      1                                               |
|                                                                             |
|o31 : Complex                                                                |
+-----------------------------------------------------------------------------+
|i32 : T=ring RphiN                                                           |
|                                                                             |
|o32 = T                                                                      |
|                                                                             |
|o32 : PolynomialRing                                                         |
+-----------------------------------------------------------------------------+
|i33 : netList apply(toList(min RphiN.. max RphiN),i->                        |
|          {-i, saturate annihilator HH^(-i) RphiN,betti freeResolution       |
|                                                                             |
|      +--+--------+-----------+                                              |
|      |  |        |        0 1|                                              |
|o33 = |0 |ideal ()|total: 11 9|                                              |
|      |  |        |    0: 11 9|                                              |
|      +--+--------+-----------+                                              |
|      |  |        |           |                                              |
|      |-1|ideal 1 |total:     |                                              |
|      +--+--------+-----------+                                              |
|-----------------------------------------------------------------------------|
|HH^(-i) RphiN})                                                              |
+-----------------------------------------------------------------------------+
|i34 : R0=prune HH^0 RphiN                                                    |
|                                                                             |
|o34 = cokernel | 0        0        0        0       0       0       -x_(0,1) |
|               | 0        0        0        0       0       0       0        |
|               | x_(0,0)  0        0        0       0       0       0        |
|               | 0        x_(0,0)  0        0       0       0       0        |
|               | -x_(0,1) 0        x_(0,0)  0       0       0       0        |
|               | 0        -x_(0,1) 0        x_(0,0) 0       0       0        |
|               | 0        0        -x_(0,1) 0       x_(0,0) 0       0        |
|               | 0        0        0        x_(0,1) 0       x_(0,0) 0        |
|               | 0        0        0        0       x_(0,1) 0       0        |
|               | 0        0        0        0       0       x_(0,1) x_(0,0)  |
|               | 0        0        0        0       0       0       0        |
|                                                                             |
|                             11                                              |
|o34 : T-module, quotient of T                                                |
|-----------------------------------------------------------------------------|
|0       0        |                                                           |
|0       -x_(0,1) |                                                           |
|0       0        |                                                           |
|0       0        |                                                           |
|0       0        |                                                           |
|0       0        |                                                           |
|0       0        |                                                           |
|0       0        |                                                           |
|x_(0,0) 0        |                                                           |
|0       0        |                                                           |
|x_(0,1) x_(0,0)  |                                                           |
+-----------------------------------------------------------------------------+
|i35 : dim R0, degree R0                                                      |
|                                                                             |
|o35 = (2, 2)                                                                 |
|                                                                             |
|o35 : Sequence                                                               |
+-----------------------------------------------------------------------------+
|i36 : betti (sR0Dual = syz transpose presentation R0)                        |
|                                                                             |
|              0 1                                                            |
|o36 = total: 11 2                                                            |
|          0: 11 .                                                            |
|          1:  . .                                                            |
|          2:  . .                                                            |
|          3:  . 1                                                            |
|          4:  . 1                                                            |
|                                                                             |
|o36 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i37 : saturate annihilator coker transpose sR0Dual                           |
|                                                                             |
|o37 = ideal 1                                                                |
|                                                                             |
|o37 : Ideal of T                                                             |
+-----------------------------------------------------------------------------+
|i38 : dual source sR0Dual                                                    |
|                                                                             |
|       2                                                                     |
|o38 = T                                                                      |
|                                                                             |
|o38 : T-module, free, degrees {-4, -5}                                       |
+-----------------------------------------------------------------------------+

We conclude that the sheaf represented by R0 is O(5)+O(4) on P^1, which is
correct because N represents phi^*O(1) and phi_* O_X(H) = O(2)+O(1).

Caveat
======

Note that the resulting complex is a chain complex instead of a cochain
complex, so that for example HH^i RpiM = HH_{-i} RpiM.

See also
========

  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution
  * tateResolution -- compute the Tate resolution
  * strand -- take the strand
  * beilinson -- apply the beilinson functor

Ways to use directImageComplex:
===============================

  * "directImageComplex(Ideal,Module,Matrix)"
  * "directImageComplex(Module,List)"

For the programmer
==================

The object directImageComplex, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:6065:0.

DummyQuotientBundle -- value for the option BundleType in beilinson
*******************************************************************

Description
===========

The Beilinson bundles U^a will be represented by quotient bundles. On a single
component P^n, U^{-1} (indeed, it is the zero sheaf) is represented as the
cokernel of the Koszul map \oplus^{n+1} S(-2)->S(-1).

See also
========

  * beilinson -- apply the beilinson functor
  * BundleType -- Option in beilinson with values
    PrunedQuotient, QuotientBundle, DummyQuotientBundle, SubBundle, FreeBundle,
    or MapsBetweenFreeBundles
  * PrunedQuotient -- value for the option BundleType in
    beilinson
  * QuotientBundle -- value for the option BundleType in
    beilinson
  * SubBundle -- value for the option BundleType in beilinson
  * FreeBundle -- value for the option BundleType in
    beilinson
  * MapsBetweenFreeBundles -- value for the
    option BundleType in beilinson

For the programmer
==================

The object DummyQuotientBundle, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5891:0.

eulerPolynomialTable -- cohomology groups of a sheaf on a product of projective spaces, or of (part) of a Tate resolution
*************************************************************************************************************************

  * Usage:
        H=eulerPolynomialTable(M,low,high)
        H=eulerPolynomialTable(T,low,high)
        H=eulerPolynomialTable H'
  * Inputs:
      * M, a module (Macaulay2Doc), graded module representing a
        sheaf on a product of projective spaces
      * T, a complex (Complexes), free complex over the exterior
        algebra
      * H', a hash table (Macaulay2Doc), output of
        cohomologyHashTable  low: List
      * high, a list (Macaulay2Doc), two lists representing
        multi-degrees, the range for computation.
  * Outputs:
      * H, a hash table (Macaulay2Doc), values are
        hypercohomology polynomials

Description
===========

If M is a multi-graded module representing a coherent sheaf F on $P^n :=
P^{n_0} x .. x P^{n_{t-1}}$, the script returns a hash table with entries a =>
sum_i h^i(F(a))*h^i \in ZZ[h,k], where k represents h^{-1}, where a is a
multi-index, low<=a<=high in the partial order (thus the value is 0 when i is
not in the range 0..sum n.) In case T is a Tate resolution corresponding to an
object F in D^b(P^n), then the values returned are the polynomials of the
hypercohomology groups of twists of F, and the values can be nonzero in a wider
range.

In case the number of factors t is 2, the output of cohomologyMatrix,
is easier to parse. In general the script
cohomologyHashTable, gives the same information as this
script, but in a less compact form.

The script computes a sufficient part of the Tate resolution for F, and then
calls itself in the version for a Tate resolution.

If T is not a large enough part of the Tate resolution, such as W below, then
the function collects only the contribution of T to the cohomology table of the
Tate resolution, according to the formula in Corollary 0.2 of Tate Resolutions
on Products of Projective Spaces (see https://arxiv.org/abs/1411.5724 ).

+--------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces{1,2} |
|                                            |
|o1 = (S, E)                                 |
|                                            |
|o1 : Sequence                               |
+--------------------------------------------+
|i2 : M = S^1                                |
|                                            |
|      1                                     |
|o2 = S                                      |
|                                            |
|o2 : S-module, free                         |
+--------------------------------------------+
|i3 : low = {-3,-3};high = {3,3};            |
+--------------------------------------------+
|i5 : H' = cohomologyHashTable(M, low,high); |
+--------------------------------------------+
|i6 : H = eulerPolynomialTable H'            |
|                                            |
|o6 = HashTable{{-1, -1} => 0  }             |
|               {-1, -2} => 0                |
|               {-1, -3} => 0                |
|               {-1, 0} => 0                 |
|               {-1, 1} => 0                 |
|               {-1, 2} => 0                 |
|               {-1, 3} => 0                 |
|               {-2, -1} => 0                |
|               {-2, -2} => 0                |
|                            3               |
|               {-2, -3} => h                |
|               {-2, 0} => h                 |
|               {-2, 1} => 3h                |
|               {-2, 2} => 6h                |
|               {-2, 3} => 10h               |
|               {-3, -1} => 0                |
|               {-3, -2} => 0                |
|                             3              |
|               {-3, -3} => 2h               |
|               {-3, 0} => 2h                |
|               {-3, 1} => 6h                |
|               {-3, 2} => 12h               |
|               {-3, 3} => 20h               |
|               {0, -1} => 0                 |
|               {0, -2} => 0                 |
|                           2                |
|               {0, -3} => h                 |
|               {0, 0} => 1                  |
|               {0, 1} => 3                  |
|               {0, 2} => 6                  |
|               {0, 3} => 10                 |
|               {1, -1} => 0                 |
|               {1, -2} => 0                 |
|                            2               |
|               {1, -3} => 2h                |
|               {1, 0} => 2                  |
|               {1, 1} => 6                  |
|               {1, 2} => 12                 |
|               {1, 3} => 20                 |
|               {2, -1} => 0                 |
|               {2, -2} => 0                 |
|                            2               |
|               {2, -3} => 3h                |
|               {2, 0} => 3                  |
|               {2, 1} => 9                  |
|               {2, 2} => 18                 |
|               {2, 3} => 30                 |
|               {3, -1} => 0                 |
|               {3, -2} => 0                 |
|                            2               |
|               {3, -3} => 4h                |
|               {3, 0} => 4                  |
|               {3, 1} => 12                 |
|               {3, 2} => 24                 |
|               {3, 3} => 40                 |
|                                            |
|o6 : HashTable                              |
+--------------------------------------------+
|i7 : H = eulerPolynomialTable (M, low, high)|
|                                            |
|o7 = HashTable{{-1, -1} => 0  }             |
|               {-1, -2} => 0                |
|               {-1, -3} => 0                |
|               {-1, 0} => 0                 |
|               {-1, 1} => 0                 |
|               {-1, 2} => 0                 |
|               {-1, 3} => 0                 |
|               {-2, -1} => 0                |
|               {-2, -2} => 0                |
|                            3               |
|               {-2, -3} => h                |
|               {-2, 0} => h                 |
|               {-2, 1} => 3h                |
|               {-2, 2} => 6h                |
|               {-2, 3} => 10h               |
|               {-3, -1} => 0                |
|               {-3, -2} => 0                |
|                             3              |
|               {-3, -3} => 2h               |
|               {-3, 0} => 2h                |
|               {-3, 1} => 6h                |
|               {-3, 2} => 12h               |
|               {-3, 3} => 20h               |
|               {0, -1} => 0                 |
|               {0, -2} => 0                 |
|                           2                |
|               {0, -3} => h                 |
|               {0, 0} => 1                  |
|               {0, 1} => 3                  |
|               {0, 2} => 6                  |
|               {0, 3} => 10                 |
|               {1, -1} => 0                 |
|               {1, -2} => 0                 |
|                            2               |
|               {1, -3} => 2h                |
|               {1, 0} => 2                  |
|               {1, 1} => 6                  |
|               {1, 2} => 12                 |
|               {1, 3} => 20                 |
|               {2, -1} => 0                 |
|               {2, -2} => 0                 |
|                            2               |
|               {2, -3} => 3h                |
|               {2, 0} => 3                  |
|               {2, 1} => 9                  |
|               {2, 2} => 18                 |
|               {2, 3} => 30                 |
|               {3, -1} => 0                 |
|               {3, -2} => 0                 |
|                            2               |
|               {3, -3} => 4h                |
|               {3, 0} => 4                  |
|               {3, 1} => 12                 |
|               {3, 2} => 24                 |
|               {3, 3} => 40                 |
|                                            |
|o7 : HashTable                              |
+--------------------------------------------+

We can print just the entries representing nonzero cohomology groups:

+---------------------------------------------------+
|i8 : trimH = hashTable(select(pairs H, p-> p_1!=0))|
|                                                   |
|                            3                      |
|o8 = HashTable{{-2, -3} => h  }                    |
|               {-2, 0} => h                        |
|               {-2, 1} => 3h                       |
|               {-2, 2} => 6h                       |
|               {-2, 3} => 10h                      |
|                             3                     |
|               {-3, -3} => 2h                      |
|               {-3, 0} => 2h                       |
|               {-3, 1} => 6h                       |
|               {-3, 2} => 12h                      |
|               {-3, 3} => 20h                      |
|                           2                       |
|               {0, -3} => h                        |
|               {0, 0} => 1                         |
|               {0, 1} => 3                         |
|               {0, 2} => 6                         |
|               {0, 3} => 10                        |
|                            2                      |
|               {1, -3} => 2h                       |
|               {1, 0} => 2                         |
|               {1, 1} => 6                         |
|               {1, 2} => 12                        |
|               {1, 3} => 20                        |
|                            2                      |
|               {2, -3} => 3h                       |
|               {2, 0} => 3                         |
|               {2, 1} => 9                         |
|               {2, 2} => 18                        |
|               {2, 3} => 30                        |
|                            2                      |
|               {3, -3} => 4h                       |
|               {3, 0} => 4                         |
|               {3, 1} => 12                        |
|               {3, 2} => 24                        |
|               {3, 3} => 40                        |
|                                                   |
|o8 : HashTable                                     |
+---------------------------------------------------+

In the case of two factors (t=2), the same information can be read conveniently
from a matrix

+---------------------------------------+
|i9 : cohomologyMatrix(M, low, high)    |
|                                       |
|o9 = | 20h 10h 0 10 20  30  40  |      |
|     | 12h 6h  0 6  12  18  24  |      |
|     | 6h  3h  0 3  6   9   12  |      |
|     | 2h  h   0 1  2   3   4   |      |
|     | 0   0   0 0  0   0   0   |      |
|     | 0   0   0 0  0   0   0   |      |
|     | 2h3 h3  0 h2 2h2 3h2 4h2 |      |
|                                       |
|                      7               7|
|o9 : Matrix (ZZ[h, k])  <-- (ZZ[h, k]) |
+---------------------------------------+

where the entry in the a= \{a_0,a_1\} place is sum_i h^i(F(a)*h^i \in ZZ[h].

Caveat
======

In case of hypercohomology, we write k instead of h^{-1}, and use the
cohomology ring ZZ[h,k].

See also
========

  * productOfProjectiveSpaces -- Cox ring of
    a product of projective spaces and it Koszul dual exterior algebra
  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution
  * cohomologyHashTable -- cohomology groups of a
    sheaf on a product of projective spaces, or of (part) of a Tate resolution

Ways to use eulerPolynomialTable:
=================================

  * "eulerPolynomialTable(Complex,List,List)"
  * "eulerPolynomialTable(HashTable)"
  * "eulerPolynomialTable(Module,List,List)"

For the programmer
==================

The object eulerPolynomialTable, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4801:0.

firstQuadrantComplex -- form the first quadrant complex
*******************************************************

  * Usage:
        firstQuadrantComplex(T,c)
  * Inputs:
      * T, a complex (Complexes), a (part of a) Tate resolution
        on a product of t projective spaces
      * c, a list (Macaulay2Doc), cohomological degree of the lower
        corner of the first complex
  * Outputs:
      * a complex (Complexes),

Description
===========

Form the first quadrant complex with corner c of a (part of a) Tate resolution
T as defined in Tate Resolutions on Products of Projective Spaces (see
http://arxiv.org/abs/1411.5724 ).

+-----------------------------------------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces {1,1};                                |
+-----------------------------------------------------------------------------+
|i2 : T1= (dual freeResolution( trim (ideal vars E)^2,LengthLimit=>8))[1];    |
+-----------------------------------------------------------------------------+
|i3 : T=trivialHomologicalTruncation(T2=freeResolution(coker                  |
|-----------------------------------------------------------------------------|
|upperCorner(T1,{4,3}),LengthLimit=>13)[7],-5,6);                             |
+-----------------------------------------------------------------------------+
|i4 : betti T                                                                 |
|                                                                             |
|            -5 -4 -3 -2 -1  0   1   2   3   4   5   6                        |
|o4 = total: 22 27 26 36 63 98 136 181 236 304 388 491                        |
|         0: 22 27 18  6  .  .   .   .   .   .   .   .                        |
|         1:  .  .  8 30 63 98 132 166 200 234 268 302                        |
|         2:  .  .  .  .  .  .   4  15  36  70 120 189                        |
|                                                                             |
|o4 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i5 : cohomologyMatrix(T,-{4,4},{3,2})                                        |
|                                                                             |
|o5 = | 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                                      |
|o5 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                       |
+-----------------------------------------------------------------------------+
|i6 : fqT=firstQuadrantComplex(T,-{2,1});                                     |
+-----------------------------------------------------------------------------+
|i7 : betti fqT                                                               |
|                                                                             |
|            -5 -4 -3 -2 -1  0 1                                              |
|o7 = total: 22 27 26 18 22 12 5                                              |
|         0: 22 27 18  6  .  . .                                              |
|         1:  .  .  8 12 22 12 3                                              |
|         2:  .  .  .  .  .  . 2                                              |
|                                                                             |
|o7 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i8 : cohomologyMatrix(fqT,-{4,4},{3,2})                                      |
|                                                                             |
|o8 = | 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                                      |
|o8 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                       |
+-----------------------------------------------------------------------------+
|i9 : cohomologyMatrix(fqT,-{2,1},-{1,0})                                     |
|                                                                             |
|o9 = | 3h  2h |                                                              |
|     | 2h2 0  |                                                              |
|                                                                             |
|                      2               2                                      |
|o9 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                       |
+-----------------------------------------------------------------------------+
|i10 : lqT=lastQuadrantComplex(T,-{2,1});                                     |
+-----------------------------------------------------------------------------+
|i11 : betti lqT                                                              |
|                                                                             |
|              3  4  5   6                                                    |
|o11 = total: 12 37 78 138                                                    |
|          2: 12 37 78 138                                                    |
|                                                                             |
|o11 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i12 : cohomologyMatrix(lqT,-{4,4},{3,2})                                     |
|                                                                             |
|o12 = | 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                                     |
|o12 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i13 : cohomologyMatrix(lqT,-{3,2},-{2,1})                                    |
|                                                                             |
|o13 = | 0    0 |                                                             |
|      | 12h2 0 |                                                             |
|                                                                             |
|                       2               2                                     |
|o13 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i14 : cT=cornerComplex(T,-{2,1});                                            |
+-----------------------------------------------------------------------------+
|i15 : betti cT                                                               |
|                                                                             |
|             -5 -4 -3 -2 -1  0 1  2  3  4   5                                |
|o15 = 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                                |
|                                                                             |
|o15 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i16 : cohomologyMatrix(cT,-{4,4},{3,2})                                      |
|                                                                             |
|o16 = | 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                                     |
|o16 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+

See also
========

  * upperCorner -- compute the upper corner
  * lowerCorner -- compute the lower corner
  * lastQuadrantComplex -- form the last quadrant
    complex
  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution

Ways to use firstQuadrantComplex:
=================================

  * "firstQuadrantComplex(Complex,List)"

For the programmer
==================

The object firstQuadrantComplex, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5255:0.

FreeBundle -- value for the option BundleType in beilinson
**********************************************************

Description
===========

This option computes the natural free bundles which contains the Beilinson
bundles U^a as subbundles.

See also
========

  * beilinson -- apply the beilinson functor
  * BundleType -- Option in beilinson with values
    PrunedQuotient, QuotientBundle, DummyQuotientBundle, SubBundle, FreeBundle,
    or MapsBetweenFreeBundles
  * PrunedQuotient -- value for the option BundleType in
    beilinson
  * QuotientBundle -- value for the option BundleType in
    beilinson
  * DummyQuotientBundle -- value for the option
    BundleType in beilinson
  * SubBundle -- value for the option BundleType in beilinson
  * MapsBetweenFreeBundles -- value for the
    option BundleType in beilinson

For the programmer
==================

The object FreeBundle, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5909:0.

isAction -- test whether a list of square matrices induces an action
********************************************************************

  * Usage:
        isAction(I,actionList)
  * Inputs:
      * I, an ideal (Macaulay2Doc), the saturated ideal of a
        projective variety X in P^N
      * actionList, a list (Macaulay2Doc), the list \{X_0,...,X_N\}
        \, of maps M\to M(1) for some module M
  * Outputs:
      * v, a Boolean value (Macaulay2Doc),

Description
===========

Let S be the homogeneous coordinate ring of P^N, and x_0,...,x_N be the
coordinates. Let \pi:X\to P^n be a Noether normalization. Note that giving a
coherent sheaf F on X is equivalent to giving a sheaf G (=\pi_{*}F) on P^n
together with multiplication maps X_i (=\pi_{*} (\cdot x_i)) : G\to G(1) such
that X_i X_j = X_j X_i for every i, j, and f(X_0, ..., X_n)=0 for every f \in
I. In other words, \{X_0,...,X_N\} \, gives an action which makes G into an
O_X-module.

This method checks first that actionList is composed of commuting matrices, and
then checks whether f(X_0,...,X_n)=0 for each generator f of I.

The following is an example when C is a conic, F=O_C, and \pi\, is a linear
projection at the coordinate point [0:0:1]. In the case, the pushforward
\pi_{*}F = O_{P^1} \oplus O_{P^1}(-1).

+-------------------------------------------+
|i1 : S=QQ[x_0..x_2]; R=QQ[y_0,y_1];        |
+-------------------------------------------+
|i3 : I=ideal(x_0*x_1-x_2^2);               |
|                                           |
|o3 : Ideal of S                            |
+-------------------------------------------+
|i4 : M=R^{{1:0},{1:-1}};                   |
+-------------------------------------------+
|i5 : X0=map(M**R^{1},M,{{y_0,0},{0,y_0}})  |
|                                           |
|o5 = {-1} | y_0 0   |                      |
|     {0}  | 0   y_0 |                      |
|                                           |
|             2      2                      |
|o5 : Matrix R  <-- R                       |
+-------------------------------------------+
|i6 : X1=map(M**R^{1},M,{{y_1,0},{0,y_1}})  |
|                                           |
|o6 = {-1} | y_1 0   |                      |
|     {0}  | 0   y_1 |                      |
|                                           |
|             2      2                      |
|o6 : Matrix R  <-- R                       |
+-------------------------------------------+
|i7 : X2=map(M**R^{1},M,{{0,y_0*y_1},{1,0}})|
|                                           |
|o7 = {-1} | 0 y_0y_1 |                     |
|     {0}  | 1 0      |                     |
|                                           |
|             2      2                      |
|o7 : Matrix R  <-- R                       |
+-------------------------------------------+
|i8 : isAction(I,{X0,X1,X2})                |
|                                           |
|o8 = true                                  |
+-------------------------------------------+

Ways to use isAction:
=====================

  * "isAction(Ideal,List)"

For the programmer
==================

The object isAction, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:6282:0.

isIsomorphicStrict -- probabilistic test for homogeneous isomorphism
********************************************************************

  * Usage:
        v = isIsomorphicStrict(A,B)
  * Inputs:
      * A, a module (Macaulay2Doc),
      * B, a module (Macaulay2Doc),
  * Outputs:
      * v, a Boolean value (Macaulay2Doc),

Description
===========

This is the same as isIsomorphic (Isomorphism), but with
additional options Strict => true and Homogeneous => true added by default.

First checks that the generator degrees are the same. Then computes a random
degree 0 map A --> B and B --> A, and returns true iff both are surjections.

+-----------------------------------------------------------------------------+
|i1 : S = ZZ/11[a,b]                                                          |
|                                                                             |
|o1 = S                                                                       |
|                                                                             |
|o1 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i2 : M = coker random(S^{-2,0,1,2}, S^{3:-3})                                |
|                                                                             |
|o2 = cokernel {2}  | -3a-4b                         a-3b                     |
|              {0}  | 3a3-3a2b-4ab2+2b3              3a3-3a2b-3ab2+3b3        |
|              {-1} | 3a4-a3b+3a2b2-2ab3-5b4         -5a4-5a3b-4a2b2-5ab3     |
|              {-2} | -5a5+5a4b+5a3b2-2a2b3+5ab4+3b5 -2a5-5a4b-4a3b2+4a2b3+b5 |
|                                                                             |
|                            4                                                |
|o2 : S-module, quotient of S                                                 |
|-----------------------------------------------------------------------------|
|3a-b                         |                                               |
|-4a3+5a2b+5ab2-5b3           |                                               |
|-3a4-2a3b-5a2b2+2ab3+2b4     |                                               |
|3a5+3a4b-4a3b2-a2b3+4ab4-3b5 |                                               |
+-----------------------------------------------------------------------------+
|i3 : N = coker (random(cover M, cover M)*presentation M)                     |
|                                                                             |
|o3 = cokernel {2}  | -5a-3b                        -2a-5b                    |
|              {0}  | -2a3-2a2b-2ab2                a3-2a2b-4ab2-4b3          |
|              {-1} | -4a4-3a3b-3a2b2-3ab3+4b4      4a4+4a3b-3a2b2+5ab3+2b4   |
|              {-2} | -a5-2a4b-2a3b2+4a2b3-2ab4-4b5 3a5+a4b-4a3b2+5a2b3-3ab4  |
|                                                                             |
|                            4                                                |
|o3 : S-module, quotient of S                                                 |
|-----------------------------------------------------------------------------|
|5a+2b                         |                                              |
|a3+3a2b-5ab2                  |                                              |
|-3a4-2a3b-3ab3-5b4            |                                              |
|2a5-4a4b+3a3b2-5a2b3+3ab4+5b5 |                                              |
+-----------------------------------------------------------------------------+
|i4 : tally apply(100, j->isIsomorphicStrict(M,N))                            |
|                                                                             |
|o4 = Tally{true => 100}                                                      |
|                                                                             |
|o4 : Tally                                                                   |
+-----------------------------------------------------------------------------+

Caveat
======

If the function returns true then the modules ARE isomorphic. But if it returns
false they may be isomorphic anyway.

Ways to use isIsomorphicStrict:
===============================

  * "isIsomorphicStrict(Module,Module)"

For the programmer
==================

The object isIsomorphicStrict, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4099:0.

isQuism -- Test to see if the ComplexMap is a quasiisomorphism.
***************************************************************

  * Usage:
        isQuism(phi)
  * Inputs:
      * phi,
  * Outputs:
      * Boolean

Description
===========

A quasiisomorphism is a chain map that is an isomorphism in homology.Mapping
cones currently do not work properly for complexes concentratedin one degree,
so isQuism could return bad information in that case.
+------------------------------------------------------+
|i1 : R = ZZ/101[a,b,c]                                |
|                                                      |
|o1 = R                                                |
|                                                      |
|o1 : PolynomialRing                                   |
+------------------------------------------------------+
|i2 : kRes = freeResolution coker vars R               |
|                                                      |
|      1      3      3      1                          |
|o2 = R  <-- R  <-- R  <-- R                           |
|                                                      |
|     0      1      2      3                           |
|                                                      |
|o2 : Complex                                          |
+------------------------------------------------------+
|i3 : multBya = extend(kRes,kRes ** R^{-1},matrix{{a}})|
|                                                      |
|          1             1                             |
|o3 = 0 : R  <--------- R  : 0                         |
|               | a |                                  |
|                                                      |
|          3                     3                     |
|     1 : R  <----------------- R  : 1                 |
|               {1} | a b c |                          |
|               {1} | 0 0 0 |                          |
|               {1} | 0 0 0 |                          |
|                                                      |
|          3         3                                 |
|     2 : R  <----- R  : 2                             |
|               0                                      |
|                                                      |
|          1         1                                 |
|     3 : R  <----- R  : 3                             |
|               0                                      |
|                                                      |
|o3 : ComplexMap                                       |
+------------------------------------------------------+
|i4 : isQuism(multBya)                                 |
|                                                      |
|o4 = false                                            |
+------------------------------------------------------+
|i5 : F = extend(kRes,kRes,matrix{{1_R}})              |
|                                                      |
|          1             1                             |
|o5 = 0 : R  <--------- R  : 0                         |
|               | 1 |                                  |
|                                                      |
|          3                     3                     |
|     1 : R  <----------------- R  : 1                 |
|               {1} | 1 0 0 |                          |
|               {1} | 0 1 0 |                          |
|               {1} | 0 0 1 |                          |
|                                                      |
|          3                     3                     |
|     2 : R  <----------------- R  : 2                 |
|               {2} | 1 0 0 |                          |
|               {2} | 0 1 0 |                          |
|               {2} | 0 0 1 |                          |
|                                                      |
|          1                 1                         |
|     3 : R  <------------- R  : 3                     |
|               {3} | 1 |                              |
|                                                      |
|o5 : ComplexMap                                       |
+------------------------------------------------------+
|i6 : isQuism(F)                                       |
|                                                      |
|o6 = true                                             |
+------------------------------------------------------+

Ways to use isQuism:
====================

  * "isQuism(ComplexMap)"

For the programmer
==================

The object isQuism, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:6410:0.

lastQuadrantComplex -- form the last quadrant complex
*****************************************************

  * Usage:
        lastQuadrantComplex(T,c)
  * Inputs:
      * T, a complex (Complexes), a (part of a) Tate resolution
        on a product of t projective spaces
      * c, a list (Macaulay2Doc), cohomological degree of the lower
        corner of the complementary first quadrant complex
  * Outputs:
      * a complex (Complexes),

Description
===========

Form the last quadrant complex with corner c of a (part of a) Tate resolution T
as defined in Tate Resolutions on Products of Projective Spaces (see
http://arxiv.org/abs/1411.5724 ).

+-----------------------------------------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces {1,1};                                |
+-----------------------------------------------------------------------------+
|i2 : T1= (dual freeResolution( trim (ideal vars E)^2,LengthLimit=>8))[1];    |
+-----------------------------------------------------------------------------+
|i3 : T=trivialHomologicalTruncation(T2=freeResolution(coker                  |
|-----------------------------------------------------------------------------|
|upperCorner(T1,{4,3}),LengthLimit=>13)[7],-5,6);                             |
+-----------------------------------------------------------------------------+
|i4 : betti T                                                                 |
|                                                                             |
|            -5 -4 -3 -2 -1  0   1   2   3   4   5   6                        |
|o4 = total: 22 27 26 36 63 98 136 181 236 304 388 491                        |
|         0: 22 27 18  6  .  .   .   .   .   .   .   .                        |
|         1:  .  .  8 30 63 98 132 166 200 234 268 302                        |
|         2:  .  .  .  .  .  .   4  15  36  70 120 189                        |
|                                                                             |
|o4 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i5 : cohomologyMatrix(T,-{4,4},{3,2})                                        |
|                                                                             |
|o5 = | 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                                      |
|o5 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                       |
+-----------------------------------------------------------------------------+
|i6 : fqT=firstQuadrantComplex(T,-{2,1});                                     |
+-----------------------------------------------------------------------------+
|i7 : betti fqT                                                               |
|                                                                             |
|            -5 -4 -3 -2 -1  0 1                                              |
|o7 = total: 22 27 26 18 22 12 5                                              |
|         0: 22 27 18  6  .  . .                                              |
|         1:  .  .  8 12 22 12 3                                              |
|         2:  .  .  .  .  .  . 2                                              |
|                                                                             |
|o7 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i8 : cohomologyMatrix(fqT,-{4,4},{3,2})                                      |
|                                                                             |
|o8 = | 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                                      |
|o8 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                       |
+-----------------------------------------------------------------------------+
|i9 : cohomologyMatrix(fqT,-{2,1},-{1,0})                                     |
|                                                                             |
|o9 = | 3h  2h |                                                              |
|     | 2h2 0  |                                                              |
|                                                                             |
|                      2               2                                      |
|o9 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                       |
+-----------------------------------------------------------------------------+
|i10 : lqT=lastQuadrantComplex(T,-{2,1});                                     |
+-----------------------------------------------------------------------------+
|i11 : betti lqT                                                              |
|                                                                             |
|              3  4  5   6                                                    |
|o11 = total: 12 37 78 138                                                    |
|          2: 12 37 78 138                                                    |
|                                                                             |
|o11 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i12 : cohomologyMatrix(lqT,-{4,4},{3,2})                                     |
|                                                                             |
|o12 = | 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                                     |
|o12 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i13 : cohomologyMatrix(lqT,-{3,2},-{2,1})                                    |
|                                                                             |
|o13 = | 0    0 |                                                             |
|      | 12h2 0 |                                                             |
|                                                                             |
|                       2               2                                     |
|o13 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i14 : cT=cornerComplex(T,-{2,1});                                            |
+-----------------------------------------------------------------------------+
|i15 : betti cT                                                               |
|                                                                             |
|             -5 -4 -3 -2 -1  0 1  2  3  4   5                                |
|o15 = 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                                |
|                                                                             |
|o15 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i16 : cohomologyMatrix(cT,-{4,4},{3,2})                                      |
|                                                                             |
|o16 = | 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                                     |
|o16 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+

See also
========

  * upperCorner -- compute the upper corner
  * lowerCorner -- compute the lower corner
  * firstQuadrantComplex -- form the first
    quadrant complex
  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution

Ways to use lastQuadrantComplex:
================================

  * "lastQuadrantComplex(Complex,List)"

For the programmer
==================

The object lastQuadrantComplex, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5298:0.

lowerCorner -- compute the lower corner
***************************************

  * Usage:
        m=lowerCorner(F,d)
  * Inputs:
      * F, a complex (Complexes), over the exterior algebra
      * d, a list (Macaulay2Doc), a (multi)-degree
  * Outputs:
      * a matrix (Macaulay2Doc), a submatrix of the differential
        $F_{k+1} -> F_{k}$

Description
===========

Let $k = |deg|$ be the total degree and $G \subset F_k$ the summand spanned by
the generators of $F_k$ in degree d, $H \subset F_{k+1}$ the summand spanned by
generators of degree d' with $0 \le d-d' \le n$. The function returns the
corresponding submatrix $m: H -> G$ of the differential.

+-----------------------------------------------------------------------------+
|i1 : n={1,2};                                                                |
+-----------------------------------------------------------------------------+
|i2 : (S,E) = productOfProjectiveSpaces n                                     |
|                                                                             |
|o2 = (S, E)                                                                  |
|                                                                             |
|o2 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i3 : F=dual freeResolution((ker transpose vars E)**E^{{ 2,3}},LengthLimit=>4)|
|                                                                             |
|      70      35      15      5      1                                       |
|o3 = E   <-- E   <-- E   <-- E  <-- E                                        |
|                                                                             |
|     -4      -3      -2      -1     0                                        |
|                                                                             |
|o3 : Complex                                                                 |
+-----------------------------------------------------------------------------+
|i4 : betti F                                                                 |
|                                                                             |
|            -4 -3 -2 -1 0                                                    |
|o4 = total: 70 35 15  5 1                                                    |
|         0: 70 35 15  5 1                                                    |
|                                                                             |
|o4 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i5 : tallyDegrees F                                                          |
|                                                                             |
|o5 = (Tally{{-1, -3} => 20}, Tally{{-1, -2} => 12}, Tally{{-1, -1} => 6},    |
|            {-2, -2} => 18         {-2, -1} => 9          {-2, 0} => 3       |
|            {-3, -1} => 12         {-3, 0} => 4           {0, -2} => 6       |
|            {-4, 0} => 5           {0, -3} => 10                             |
|            {0, -4} => 15                                                    |
|     ------------------------------------------------------------------------|
|     Tally{{-1, 0} => 2}, Tally{{0, 0} => 1})                                |
|           {0, -1} => 3                                                      |
|                                                                             |
|o5 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i6 : deg={2,1}                                                               |
|                                                                             |
|o6 = {2, 1}                                                                  |
|                                                                             |
|o6 : List                                                                    |
+-----------------------------------------------------------------------------+
|i7 : m=lowerCorner(F,deg);                                                   |
|                                                                             |
|             9      9                                                        |
|o7 : Matrix E  <-- E                                                         |
+-----------------------------------------------------------------------------+
|i8 : tally degrees target m, tally degrees source m                          |
|                                                                             |
|o8 = (Tally{{-2, -1} => 9}, Tally{{-1, -1} => 6})                            |
|                                  {-2, 0} => 3                               |
|                                                                             |
|o8 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i9 : Fm=(freeResolution(coker m,LengthLimit=>7))[sum deg]                    |
|                                                                             |
|      9      9      8      15      32      57      91      137               |
|o9 = E  <-- E  <-- E  <-- E   <-- E   <-- E   <-- E   <-- E                  |
|                                                                             |
|     -3     -2     -1     0       1       2       3       4                  |
|                                                                             |
|o9 : Complex                                                                 |
+-----------------------------------------------------------------------------+
|i10 : betti Fm                                                               |
|                                                                             |
|             -3 -2 -1  0  1  2  3   4                                        |
|o10 = total:  9  9  8 15 32 57 91 137                                        |
|          0:  9  9  5  1  .  .  .   .                                        |
|          1:  .  .  .  3  7 11 15  19                                        |
|          2:  .  .  3 11 25 45 71 103                                        |
|          3:  .  .  .  .  .  1  5  15                                        |
|                                                                             |
|o10 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i11 : cohomologyMatrix(Fm,-{3,3},{4,4})                                      |
|                                                                             |
|o11 = | 0   0  0 0  0   0   0 0 |                                            |
|      | 0   0  0 0  0   0   0 0 |                                            |
|      | 0   0  0 0  0   0   0 0 |                                            |
|      | 6h  3h 0 3  6   9   0 0 |                                            |
|      | 2h  h  0 1  2   3   0 0 |                                            |
|      | 0   0  0 0  0   0   0 0 |                                            |
|      | 0   0  0 0  0   0   0 0 |                                            |
|      | 2h3 h3 0 h2 2h2 3h2 0 0 |                                            |
|                                                                             |
|                       8               8                                     |
|o11 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+

Ways to use lowerCorner:
========================

  * "lowerCorner(Complex,List)"

For the programmer
==================

The object lowerCorner, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4567:0.

MapsBetweenFreeBundles -- value for the option BundleType in beilinson
**********************************************************************

Description
===========

This option computes the maps from natural free bundles which generates the
Beilinson bundles U^a to natural free bundles which contains the Beilinson
bundles U^a as subbundles. In other words, this option provides a map between
free modules \wedge^{a+1}W\otimes S(-1)\to \wedge^{a}W\otimes S which factors
through U^a where W=S_1. In particular, it represents a natural embedding of
U^a into the corresponding free bundle.

See also
========

  * beilinson -- apply the beilinson functor
  * BundleType -- Option in beilinson with values
    PrunedQuotient, QuotientBundle, DummyQuotientBundle, SubBundle, FreeBundle,
    or MapsBetweenFreeBundles
  * PrunedQuotient -- value for the option BundleType in
    beilinson
  * QuotientBundle -- value for the option BundleType in
    beilinson
  * DummyQuotientBundle -- value for the option
    BundleType in beilinson
  * SubBundle -- value for the option BundleType in beilinson
  * FreeBundle -- value for the option BundleType in
    beilinson

For the programmer
==================

The object MapsBetweenFreeBundles, is a
symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5930:0.

productOfProjectiveSpaces -- Cox ring of a product of projective spaces and it Koszul dual exterior algebra
***********************************************************************************************************

  * Usage:
        (S,E)=productOfProjectiveSpaces N
        (S,E)=productOfProjectiveSpaces n
  * Inputs:
      * N, a list (Macaulay2Doc), the list \{n_1,...,n_t\} \, of
        the dimensions of the factors
      * n, an integer (Macaulay2Doc), Gives n copies of P^1
  * Optional inputs (Macaulay2Doc),:
      * CoefficientField => a ring (Macaulay2Doc), default value
        ZZ/32003, ground field of S,E
      * Variables => a list (Macaulay2Doc), default value {x, e},
        list of 2 symbols
      * CohomologyVariables => a list (Macaulay2Doc), default value
        {h, k}, list of 2 symbols
  * Outputs:
      * S, a polynomial ring (Macaulay2Doc), homogeneous
        coordinate ring of P^{n_1}x ... x P^{n_t}
      * E, a polynomial ring (Macaulay2Doc), the
        corresponding exterior algebra

Description
===========

The degrees of the variables for the i-th projective space are indexed
x_(i,0),..,x_(i,n_i-1), and have degree (0..0,1,0,..0) with a 1 in the i-th
place. The script also caches some values in S.TateData and E.TateData, so that
S and E can subsequently find each other and also their cohomology ring.

+-----------------------------------------------------------------------------+
|i1 : (S,E)=productOfProjectiveSpaces{1,2}                                    |
|                                                                             |
|o1 = (S, E)                                                                  |
|                                                                             |
|o1 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i2 : vars S                                                                  |
|                                                                             |
|o2 = | x_(0,0) x_(0,1) x_(1,0) x_(1,1) x_(1,2) |                             |
|                                                                             |
|             1      5                                                        |
|o2 : Matrix S  <-- S                                                         |
+-----------------------------------------------------------------------------+
|i3 : vars E                                                                  |
|                                                                             |
|o3 = | e_(0,0) e_(0,1) e_(1,0) e_(1,1) e_(1,2) |                             |
|                                                                             |
|             1      5                                                        |
|o3 : Matrix E  <-- E                                                         |
+-----------------------------------------------------------------------------+
|i4 : (S,E) = productOfProjectiveSpaces({1,1},                                |
|         Variables =>{getSymbol "u",getSymbol"v"},                           |
|         CohomologyVariables =>{getSymbol "p",getSymbol "q"},                |
|         CoefficientField => QQ)                                             |
|                                                                             |
|o4 = (S, E)                                                                  |
|                                                                             |
|o4 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i5 : (coefficientRing S) === (coefficientRing E)                             |
|                                                                             |
|o5 = true                                                                    |
+-----------------------------------------------------------------------------+
|i6 : trim (ideal vars S)^2                                                   |
|                                                                             |
|             2                                   2                           |
|o6 = ideal (u   , u   u   , u   u   , u   u   , u   , u   u   , u   u   ,    |
|             1,1   1,0 1,1   0,1 1,1   0,0 1,1   1,0   0,1 1,0   0,0 1,0     |
|     ------------------------------------------------------------------------|
|      2               2                                                      |
|     u   , u   u   , u   )                                                   |
|      0,1   0,0 0,1   0,0                                                    |
|                                                                             |
|o6 : Ideal of S                                                              |
+-----------------------------------------------------------------------------+
|i7 : trim (ideal vars E)^2                                                   |
|                                                                             |
|o7 = ideal (v   v   , v   v   , v   v   , v   v   , v   v   , v   v   )      |
|             1,0 1,1   0,1 1,1   0,0 1,1   0,1 1,0   0,0 1,0   0,0 0,1       |
|                                                                             |
|o7 : Ideal of E                                                              |
+-----------------------------------------------------------------------------+
|i8 : peek S.TateData                                                         |
|                                                                             |
|o8 = MutableHashTable{BeilinsonBundles => MutableHashTable{}}                |
|                      CohomRing => ZZ[p..q]                                  |
|                      Rings => (S, E)                                        |
+-----------------------------------------------------------------------------+

Ways to use productOfProjectiveSpaces:
======================================

  * "productOfProjectiveSpaces(List)"
  * "productOfProjectiveSpaces(ZZ)"

For the programmer
==================

The object productOfProjectiveSpaces, is a
method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4373:0.

PrunedQuotient -- value for the option BundleType in beilinson
**************************************************************

Description
===========

The Beilinson bundles U^a will be represented by quotient bundles. On a single
component P^n, U^0 is represented as S^1 (S is the homogeneous coordinate ring
for P^n).

See also
========

  * beilinson -- apply the beilinson functor
  * BundleType -- Option in beilinson with values
    PrunedQuotient, QuotientBundle, DummyQuotientBundle, SubBundle, FreeBundle,
    or MapsBetweenFreeBundles
  * QuotientBundle -- value for the option BundleType in
    beilinson
  * DummyQuotientBundle -- value for the option
    BundleType in beilinson
  * SubBundle -- value for the option BundleType in beilinson
  * FreeBundle -- value for the option BundleType in
    beilinson
  * MapsBetweenFreeBundles -- value for the
    option BundleType in beilinson

For the programmer
==================

The object PrunedQuotient, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5854:0.

QuotientBundle -- value for the option BundleType in beilinson
**************************************************************

Description
===========

The Beilinson bundles U^a will be represented by quotient bundles.

See also
========

  * beilinson -- apply the beilinson functor
  * BundleType -- Option in beilinson with values
    PrunedQuotient, QuotientBundle, DummyQuotientBundle, SubBundle, FreeBundle,
    or MapsBetweenFreeBundles
  * PrunedQuotient -- value for the option BundleType in
    beilinson
  * DummyQuotientBundle -- value for the option
    BundleType in beilinson
  * SubBundle -- value for the option BundleType in beilinson
  * FreeBundle -- value for the option BundleType in
    beilinson
  * MapsBetweenFreeBundles -- value for the
    option BundleType in beilinson

For the programmer
==================

The object QuotientBundle, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5872:0.

regionComplex -- region complex
*******************************

  * Usage:
        regionComplex(T,c,IJK)
  * Inputs:
      * T, a complex (Complexes), over the exterior algebra
      * c, a list (Macaulay2Doc), a (multi) degree
      * IJK, a sequence (Macaulay2Doc), a sequence (I,J,K) of
        disjoint subsets of \{0..t-1\}
  * Outputs:
      * a complex (Complexes), a region complex of T

Description
===========

We compute the region complex of T as defined in Tate Resolutions on Products
of Projective Spaces (see http://arxiv.org/abs/1411.5724 ) section 3. Note that
different from the paper I,J,K are sublists of 0...t-1 and not subsets of 1..t.
In the examples below, only rT2 and rT3 are proper region complexes.

+----------------------------------------------------------------------------+
|i1 : n={1,1};                                                               |
+----------------------------------------------------------------------------+
|i2 : (S,E) = productOfProjectiveSpaces n;                                   |
+----------------------------------------------------------------------------+
|i3 : T1 = (dual freeResolution(trim (ideal vars E)^2, LengthLimit => 5))[1];|
+----------------------------------------------------------------------------+
|i4 : a=-{2,2};                                                              |
+----------------------------------------------------------------------------+
|i5 : T2=(T1**E^{a})[sum a];                                                 |
+----------------------------------------------------------------------------+
|i6 : W=beilinsonWindow T2,cohomologyMatrix(W,-2*n,2*n)                      |
|                                                                            |
|       15      16      4                                                    |
|o6 = (E   <-- E   <-- E  <-- 0, | 0 0 0  0 0 |)                             |
|                                | 0 0 0  0 0 |                              |
|      0       1       2      3  | 0 8 15 0 0 |                              |
|                                | 0 4 8  0 0 |                              |
|                                | 0 0 0  0 0 |                              |
|                                                                            |
|o6 : Sequence                                                               |
+----------------------------------------------------------------------------+
|i7 : T=tateExtension W;                                                     |
+----------------------------------------------------------------------------+
|i8 : cohomologyMatrix(T,-{3,3},{3,3})                                       |
|                                                                            |
|o8 = | 12h 4  20 36 52 68  84  |                                            |
|     | 10h 3  16 29 42 55  68  |                                            |
|     | 8h  2  12 22 32 42  52  |                                            |
|     | 6h  1  8  15 22 29  36  |                                            |
|     | 4h  0  4  8  12 16  20  |                                            |
|     | 2h  h  0  1  2  3   4   |                                            |
|     | 0   2h 4h 6h 8h 10h 12h |                                            |
|                                                                            |
|                      7               7                                     |
|o8 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+----------------------------------------------------------------------------+
|i9 : c={1,0}                                                                |
|                                                                            |
|o9 = {1, 0}                                                                 |
|                                                                            |
|o9 : List                                                                   |
+----------------------------------------------------------------------------+
|i10 : rT0=regionComplex(T,c,({},{0,1},{})); --a single position             |
+----------------------------------------------------------------------------+
|i11 : cohomologyMatrix(rT0,-{3,3},{3,3})                                    |
|                                                                            |
|o11 = | 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 22 0 0 |                                                    |
|      | 0 0 0 0 0  0 0 |                                                    |
|      | 0 0 0 0 0  0 0 |                                                    |
|      | 0 0 0 0 0  0 0 |                                                    |
|                                                                            |
|                       7               7                                    |
|o11 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+----------------------------------------------------------------------------+
|i12 : rT1=regionComplex(T,c,({0},{1},{})); --a horizontal half line         |
+----------------------------------------------------------------------------+
|i13 : cohomologyMatrix(rT1,-{3,3},{3,3})                                    |
|                                                                            |
|o13 = | 0  0 0 0  0 0 0 |                                                   |
|      | 0  0 0 0  0 0 0 |                                                   |
|      | 0  0 0 0  0 0 0 |                                                   |
|      | 6h 1 8 15 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               7                                    |
|o13 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+----------------------------------------------------------------------------+
|i14 : rT2=regionComplex(T,c,({},{0},{})); -- a vertical line                |
+----------------------------------------------------------------------------+
|i15 : cohomologyMatrix(rT2,-{3,3},{3,3})                                    |
|                                                                            |
|o15 = | 0 0 0 0 52 0 0 |                                                    |
|      | 0 0 0 0 42 0 0 |                                                    |
|      | 0 0 0 0 32 0 0 |                                                    |
|      | 0 0 0 0 22 0 0 |                                                    |
|      | 0 0 0 0 12 0 0 |                                                    |
|      | 0 0 0 0 2  0 0 |                                                    |
|      | 0 0 0 0 8h 0 0 |                                                    |
|                                                                            |
|                       7               7                                    |
|o15 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+----------------------------------------------------------------------------+
|i16 : rT3=regionComplex(T,c,({},{},{1})); -- a upper half plane             |
+----------------------------------------------------------------------------+
|i17 : cohomologyMatrix(rT3,-{3,3},{3,3})                                    |
|                                                                            |
|o17 = | 12h 4 20 36 52 68 84 |                                              |
|      | 10h 3 16 29 42 55 68 |                                              |
|      | 8h  2 12 22 32 42 52 |                                              |
|      | 6h  1 8  15 22 29 36 |                                              |
|      | 0   0 0  0  0  0  0  |                                              |
|      | 0   0 0  0  0  0  0  |                                              |
|      | 0   0 0  0  0  0  0  |                                              |
|                                                                            |
|                       7               7                                    |
|o17 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+----------------------------------------------------------------------------+
|i18 : rT4=regionComplex(T,c,({0},{},{1})); --a north east quadrant          |
+----------------------------------------------------------------------------+
|i19 : cohomologyMatrix(rT4,-{3,3},{3,3})                                    |
|                                                                            |
|o19 = | 12h 4 20 36 0 0 0 |                                                 |
|      | 10h 3 16 29 0 0 0 |                                                 |
|      | 8h  2 12 22 0 0 0 |                                                 |
|      | 6h  1 8  15 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               7                                    |
|o19 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+----------------------------------------------------------------------------+
|i20 : rT5=regionComplex(T,c,({1},{},{0})); --a south west quadrant          |
+----------------------------------------------------------------------------+
|i21 : cohomologyMatrix(rT5,-{3,3},{3,3})                                    |
|                                                                            |
|o21 = | 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 16  20  |                                                |
|      | 0 0 0 0 2  3   4   |                                                |
|      | 0 0 0 0 8h 10h 12h |                                                |
|                                                                            |
|                       7               7                                    |
|o21 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+----------------------------------------------------------------------------+

See also
========

  * upperCorner -- compute the upper corner
  * lowerCorner -- compute the lower corner
  * beilinsonWindow -- extract the subquotient complex
    which contributes to the Beilinson window
  * tateExtension -- extend the terms in the Beilinson
    window to a part of a corner complex of the corresponding Tate resolution
  * firstQuadrantComplex -- form the first
    quadrant complex
  * lastQuadrantComplex -- form the last quadrant
    complex
  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution

Ways to use regionComplex:
==========================

  * "regionComplex(Complex,List,Sequence)"

For the programmer
==================

The object regionComplex, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5158:0.

Rings -- Option for productOfProjectiveSpaces
*********************************************

Description
===========

Base field for the two polynomial rings

For the programmer
==================

The object Rings, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4410:0.

strand -- take the strand
*************************

  * Usage:
        strand(T,c,I)
  * Inputs:
      * T, a complex (Complexes), over the exterior algebra
      * c, a list (Macaulay2Doc), a (multi) degree
      * I, a list (Macaulay2Doc), a sublist of \{0..t-1\} , where t
        denotes the number of factors
  * Outputs:
      * a complex (Complexes), the I-strand of T through c

Description
===========

We compute the strand of T as defined in Tate Resolutions on Products of
Projective Spaces (see http://arxiv.org/abs/1411.5724 ) Theorem 0.4. If T is
(part of) the Tate resolution of a sheaf $F$, then the I-strand of $T$ through
$c$ corresponds to the Tate resolution $R{\pi_J}_*(F(c))$ where $J
=\{0,\ldots,t-1\} - I$ is the complement and $\pi_J: \mathbb PP \to \prod_{j
\in J} \mathbb P^{n_j}$ denotes the projection.

+----------------------------------------------------------------------------+
|i1 : n={1,1};                                                               |
+----------------------------------------------------------------------------+
|i2 : (S,E) = productOfProjectiveSpaces n;                                   |
+----------------------------------------------------------------------------+
|i3 : T1 = (dual freeResolution(trim (ideal vars E)^2, LengthLimit => 5))[1];|
+----------------------------------------------------------------------------+
|i4 : a=-{2,2};                                                              |
+----------------------------------------------------------------------------+
|i5 : T2=(T1**E^{a})[sum a];                                                 |
+----------------------------------------------------------------------------+
|i6 : W=beilinsonWindow T2,cohomologyMatrix(W,-2*n,2*n)                      |
|                                                                            |
|       15      16      4                                                    |
|o6 = (E   <-- E   <-- E  <-- 0, | 0 0 0  0 0 |)                             |
|                                | 0 0 0  0 0 |                              |
|      0       1       2      3  | 0 8 15 0 0 |                              |
|                                | 0 4 8  0 0 |                              |
|                                | 0 0 0  0 0 |                              |
|                                                                            |
|o6 : Sequence                                                               |
+----------------------------------------------------------------------------+
|i7 : T=tateExtension W;                                                     |
+----------------------------------------------------------------------------+
|i8 : low = -{2,2};high = {2,2};                                             |
+----------------------------------------------------------------------------+
|i10 : cohomologyMatrix(T,low,high)                                          |
|                                                                            |
|o10 = | 3 16 29 42 55 |                                                     |
|      | 2 12 22 32 42 |                                                     |
|      | 1 8  15 22 29 |                                                     |
|      | 0 4  8  12 16 |                                                     |
|      | h 0  1  2  3  |                                                     |
|                                                                            |
|                       5               5                                    |
|o10 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+----------------------------------------------------------------------------+
|i11 : sT1=strand(T,{-1,0},{1});                                             |
+----------------------------------------------------------------------------+
|i12 : cohomologyMatrix(sT1,low,high)                                        |
|                                                                            |
|o12 = | 0 0 0  0  0  |                                                      |
|      | 0 0 0  0  0  |                                                      |
|      | 1 8 15 22 29 |                                                      |
|      | 0 0 0  0  0  |                                                      |
|      | 0 0 0  0  0  |                                                      |
|                                                                            |
|                       5               5                                    |
|o12 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+----------------------------------------------------------------------------+
|i13 : sT2=strand(T,{-1,0},{0});                                             |
+----------------------------------------------------------------------------+
|i14 : cohomologyMatrix(sT2,low,high)                                        |
|                                                                            |
|o14 = | 0 16 0 0 0 |                                                        |
|      | 0 12 0 0 0 |                                                        |
|      | 0 8  0 0 0 |                                                        |
|      | 0 4  0 0 0 |                                                        |
|      | 0 0  0 0 0 |                                                        |
|                                                                            |
|                       5               5                                    |
|o14 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+----------------------------------------------------------------------------+
|i15 : sT3=strand(T,{-1,0},{0,1});                                           |
+----------------------------------------------------------------------------+
|i16 : cohomologyMatrix(sT3, low,high)                                       |
|                                                                            |
|o16 = | 0 0 0 0 0 |                                                         |
|      | 0 0 0 0 0 |                                                         |
|      | 0 8 0 0 0 |                                                         |
|      | 0 0 0 0 0 |                                                         |
|      | 0 0 0 0 0 |                                                         |
|                                                                            |
|                       5               5                                    |
|o16 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                     |
+----------------------------------------------------------------------------+

See also
========

  * upperCorner -- compute the upper corner
  * lowerCorner -- compute the lower corner
  * beilinsonWindow -- extract the subquotient complex
    which contributes to the Beilinson window
  * tateExtension -- extend the terms in the Beilinson
    window to a part of a corner complex of the corresponding Tate resolution
  * firstQuadrantComplex -- form the first
    quadrant complex
  * lastQuadrantComplex -- form the last quadrant
    complex
  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution

Ways to use strand:
===================

  * "strand(Complex,List,List)"

For the programmer
==================

The object strand, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5210:0.

SubBundle -- value for the option BundleType in beilinson
*********************************************************

Description
===========

The Beilinson bundles U^a will be represented by subbundles.

See also
========

  * beilinson -- apply the beilinson functor
  * BundleType -- Option in beilinson with values
    PrunedQuotient, QuotientBundle, DummyQuotientBundle, SubBundle, FreeBundle,
    or MapsBetweenFreeBundles
  * PrunedQuotient -- value for the option BundleType in
    beilinson
  * QuotientBundle -- value for the option BundleType in
    beilinson
  * DummyQuotientBundle -- value for the option
    BundleType in beilinson
  * FreeBundle -- value for the option BundleType in
    beilinson
  * MapsBetweenFreeBundles -- value for the
    option BundleType in beilinson

For the programmer
==================

The object SubBundle, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5835:0.

symExt -- from linear presentation matrices over S to linear presentation matrices over E and conversely
********************************************************************************************************

  * Usage:
        symExt(m,E)
  * Inputs:
      * m, a matrix (Macaulay2Doc), a linear presentation matrix
        over S
      * E, a ring (Macaulay2Doc), the Koszul dual ring of S
  * Outputs:
      * a matrix (Macaulay2Doc), the corresponding linear
        presentation matrix over E

Description
===========

Same method as in the single factor case

+-----------------------------------------------------------------------------+
|i1 : n={1,2}                                                                 |
|                                                                             |
|o1 = {1, 2}                                                                  |
|                                                                             |
|o1 : List                                                                    |
+-----------------------------------------------------------------------------+
|i2 : (S,E) = productOfProjectiveSpaces n                                     |
|                                                                             |
|o2 = (S, E)                                                                  |
|                                                                             |
|o2 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i3 : vars S, vars E                                                          |
|                                                                             |
|o3 = (| x_(0,0) x_(0,1) x_(1,0) x_(1,1) x_(1,2) |, | e_(0,0) e_(0,1) e_(1,0) |
|     ------------------------------------------------------------------------|
|     e_(1,1) e_(1,2) |)                                                      |
|                                                                             |
|o3 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i4 : m=map(S^4,S^{{ -1,0},{0,-1}}, transpose                                 |
|                                                                             |
|o4 = | x_(0,0) x_(1,0) |                                                     |
|     | x_(0,1) 0       |                                                     |
|     | 0       x_(1,1) |                                                     |
|     | 0       x_(1,2) |                                                     |
|                                                                             |
|             4      2                                                        |
|o4 : Matrix S  <-- S                                                         |
|-----------------------------------------------------------------------------|
|matrix{{S_0,S_1,0,0},{S_2,0,S_3,S_4}})                                       |
+-----------------------------------------------------------------------------+
|i5 : mE=symExt(m,E)                                                          |
|                                                                             |
|o5 = {-1, 0} | 0        e_(0,0) 0       0       |                            |
|     {-1, 0} | 0        0       e_(0,0) 0       |                            |
|     {-1, 0} | 0        0       0       e_(0,0) |                            |
|     {-1, 0} | e_(0,1)  0       0       0       |                            |
|     {-1, 0} | -e_(0,0) e_(0,1) 0       0       |                            |
|     {-1, 0} | 0        0       e_(0,1) 0       |                            |
|     {-1, 0} | 0        0       0       e_(0,1) |                            |
|     {0, -1} | 0        e_(1,0) 0       0       |                            |
|     {0, -1} | 0        0       e_(1,0) 0       |                            |
|     {0, -1} | 0        0       0       e_(1,0) |                            |
|     {0, -1} | e_(1,1)  0       0       0       |                            |
|     {0, -1} | 0        e_(1,1) 0       0       |                            |
|     {0, -1} | -e_(1,0) 0       e_(1,1) 0       |                            |
|     {0, -1} | 0        0       0       e_(1,1) |                            |
|     {0, -1} | e_(1,2)  0       0       0       |                            |
|     {0, -1} | 0        e_(1,2) 0       0       |                            |
|     {0, -1} | 0        0       e_(1,2) 0       |                            |
|     {0, -1} | -e_(1,0) 0       0       e_(1,2) |                            |
|                                                                             |
|             18      4                                                       |
|o5 : Matrix E   <-- E                                                        |
+-----------------------------------------------------------------------------+

Ways to use symExt:
===================

  * "symExt(Matrix,Ring)"

For the programmer
==================

The object symExt, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4450:0.

tallyDegrees -- collect the degrees of the generators of the terms in a free complex
************************************************************************************

  * Usage:
        tallyDegrees C
  * Inputs:
      * C, a complex (Complexes), a complex of graded free
        modules
  * Outputs:
      * a sequence (Macaulay2Doc), a sequence of tallies of the
        degrees of the generators of the free module

Description
===========

Returns for each free module C_d in the complex the result of tally (Macaulay2Doc),
see degrees (Macaulay2Doc), C_d

+-----------------------------------------------------------------------------+
|i1 : S=ZZ/101[x_0..x_1,y_0,z_0,Degrees=>{2:{2,0,0},1:{0,1,0},{0,0,1}}]       |
|                                                                             |
|o1 = S                                                                       |
|                                                                             |
|o1 : PolynomialRing                                                          |
+-----------------------------------------------------------------------------+
|i2 : C =freeResolution ideal vars S                                          |
|                                                                             |
|      1      4      6      4      1                                          |
|o2 = S  <-- S  <-- S  <-- S  <-- S                                           |
|                                                                             |
|     0      1      2      3      4                                           |
|                                                                             |
|o2 : Complex                                                                 |
+-----------------------------------------------------------------------------+
|i3 : betti C                                                                 |
|                                                                             |
|            0 1 2 3 4                                                        |
|o3 = total: 1 4 6 4 1                                                        |
|         0: 1 2 1 . .                                                        |
|         1: . 2 4 2 .                                                        |
|         2: . . 1 2 1                                                        |
|                                                                             |
|o3 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i4 : tallyDegrees C                                                          |
|                                                                             |
|o4 = (Tally{{0, 0, 0} => 1}, Tally{{0, 0, 1} => 1}, Tally{{0, 1, 1} => 1},   |
|                                   {0, 1, 0} => 1         {2, 0, 1} => 2     |
|                                   {2, 0, 0} => 2         {2, 1, 0} => 2     |
|                                                          {4, 0, 0} => 1     |
|     ------------------------------------------------------------------------|
|     Tally{{2, 1, 1} => 2}, Tally{{4, 1, 1} => 1})                           |
|           {4, 0, 1} => 1                                                    |
|           {4, 1, 0} => 1                                                    |
|                                                                             |
|o4 : Sequence                                                                |
+-----------------------------------------------------------------------------+

Ways to use tallyDegrees:
=========================

  * "tallyDegrees(Complex)"

For the programmer
==================

The object tallyDegrees, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4826:0.

TateData -- symbol used in beilinsonBundle
******************************************

See also
========

  * beilinsonBundle -- compute a basic Beilinson bundle

For the programmer
==================

The object TateData, is a symbol (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4399:0.

tateData -- reads TateData from the cache of an appropriate ring
****************************************************************

  * Usage:
        T = tateData S
  * Inputs:
      * S, a ring (Macaulay2Doc), such as produced by
        productOfProjectiveSpaces
  * Outputs:
      * T, a hash table (Macaulay2Doc),

Description
===========

The function productOfProjectiveSpaces creates two rings and store various data
in their cache table, which tateData reads.

+-------------------------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces{1,2}                  |
|                                                             |
|o1 = (S, E)                                                  |
|                                                             |
|o1 : Sequence                                                |
+-------------------------------------------------------------+
|i2 : T = tateData S                                          |
|                                                             |
|o2 = MutableHashTable{...3...}                               |
|                                                             |
|o2 : MutableHashTable                                        |
+-------------------------------------------------------------+
|i3 : peek T                                                  |
|                                                             |
|o3 = MutableHashTable{BeilinsonBundles => MutableHashTable{}}|
|                      CohomRing => ZZ[h, k]                  |
|                      Rings => (S, E)                        |
+-------------------------------------------------------------+
|i4 : T === S.TateData                                        |
|                                                             |
|o4 = true                                                    |
+-------------------------------------------------------------+
|i5 : peek E.TateData                                         |
|                                                             |
|o5 = MutableHashTable{BeilinsonBundles => MutableHashTable{}}|
|                      CohomRing => ZZ[h, k]                  |
|                      Rings => (S, E)                        |
+-------------------------------------------------------------+
|i6 : T === E.TateData                                        |
|                                                             |
|o6 = true                                                    |
+-------------------------------------------------------------+

See also
========

  * productOfProjectiveSpaces -- Cox ring of
    a product of projective spaces and it Koszul dual exterior algebra

Ways to use tateData:
=====================

  * "tateData(Ring)"

For the programmer
==================

The object tateData, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:6460:0.

tateExtension -- extend the terms in the Beilinson window to a part of a corner complex of the corresponding Tate resolution
****************************************************************************************************************************

  * Usage:
        T=tateExtension W
  * Inputs:
      * W, a complex (Complexes), terms in the Beilinson window
        of a Tate resolution
  * Outputs:
      * T, a complex (Complexes), a corner complex of the
        corresponding Tate resolution

Description
===========

Every object F in the derived category D^d(P) of coherent sheaves on a product
P=P^{n_1}x..xP^{n_t} of t projective space is of the form U(W) with W a complex
with terms in the Beilinson range only. The function computes with the
algorithm (not!) described in section 4 of Tate Resolutions on Products of
Projective Spaces (see http://arxiv.org/abs/1411.5724 ) computes part of a
suitable chosen corner complex of the Tate resolution T(F).

+-----------------------------------------------------------------------------+
|i1 : n={1,1};                                                                |
+-----------------------------------------------------------------------------+
|i2 : (S,E) = productOfProjectiveSpaces n;                                    |
+-----------------------------------------------------------------------------+
|i3 : T1 = (dual freeResolution(trim (ideal vars E)^2, LengthLimit => 5))[1]; |
+-----------------------------------------------------------------------------+
|i4 : a=-{2,2};                                                               |
+-----------------------------------------------------------------------------+
|i5 : T2=(T1**E^{a})[sum a];                                                  |
+-----------------------------------------------------------------------------+
|i6 : W=beilinsonWindow T2                                                    |
|                                                                             |
|      15      16      4                                                      |
|o6 = E   <-- E   <-- E  <-- 0                                                |
|                                                                             |
|     0       1       2      3                                                |
|                                                                             |
|o6 : Complex                                                                 |
+-----------------------------------------------------------------------------+
|i7 : cohomologyMatrix(W,-2*n,2*n)                                            |
|                                                                             |
|o7 = | 0 0 0  0 0 |                                                          |
|     | 0 0 0  0 0 |                                                          |
|     | 0 8 15 0 0 |                                                          |
|     | 0 4 8  0 0 |                                                          |
|     | 0 0 0  0 0 |                                                          |
|                                                                             |
|                      5               5                                      |
|o7 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                       |
+-----------------------------------------------------------------------------+
|i8 : T=tateExtension W                                                       |
|                                                                             |
|      1462      1189      954      754      586      447      334      244   |
|o8 = E     <-- E     <-- E    <-- E    <-- E    <-- E    <-- E    <-- E      |
|                                                                             |
|     -9        -8        -7       -6       -5       -4       -3       -2     |
|                                                                             |
|o8 : Complex                                                                 |
|-----------------------------------------------------------------------------|
|     174      121      82      54      35      20      10      7             |
|<-- E    <-- E    <-- E   <-- E   <-- E   <-- E   <-- E   <-- E              |
|                                                                             |
|    -1       0        1       2       3       4       5       6              |
+-----------------------------------------------------------------------------+
|i9 : cohomologyMatrix(T,-3*n,4*n)                                            |
|                                                                             |
|o9 = | 14h 5  24 43 62 81  100 119 |                                         |
|     | 12h 4  20 36 52 68  84  100 |                                         |
|     | 10h 3  16 29 42 55  68  81  |                                         |
|     | 8h  2  12 22 32 42  52  62  |                                         |
|     | 6h  1  8  15 22 29  36  43  |                                         |
|     | 4h  0  4  8  12 16  20  24  |                                         |
|     | 2h  h  0  1  2  3   4   5   |                                         |
|     | 0   2h 4h 6h 8h 10h 12h 14h |                                         |
|                                                                             |
|                      8               8                                      |
|o9 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                       |
+-----------------------------------------------------------------------------+
|i10 : cohomologyMatrix(beilinsonWindow T,-n,n)                               |
|                                                                             |
|o10 = | 0 0  0 |                                                             |
|      | 8 15 0 |                                                             |
|      | 4 8  0 |                                                             |
|                                                                             |
|                       3               3                                     |
|o10 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i11 : cohomologyMatrix(T,-5*n,4*n) -- the view including the corner          |
|                                                                             |
|o11 = | 0 33h 14h 5  24 43  62  81  100 119 |                                |
|      | 0 28h 12h 4  20 36  52  68  84  100 |                                |
|      | 0 23h 10h 3  16 29  42  55  68  81  |                                |
|      | 0 18h 8h  2  12 22  32  42  52  62  |                                |
|      | 0 13h 6h  1  8  15  22  29  36  43  |                                |
|      | 0 8h  4h  0  4  8   12  16  20  24  |                                |
|      | 0 3h  2h  h  0  1   2   3   4   5   |                                |
|      | 0 2h2 0   2h 4h 6h  8h  10h 12h 14h |                                |
|      | 0 7h2 2h2 3h 8h 13h 18h 23h 28h 33h |                                |
|      | 0 0   0   0  0  0   0   0   0   0   |                                |
|                                                                             |
|                       10               10                                   |
|o11 : Matrix (ZZ[h, k])   <-- (ZZ[h, k])                                     |
+-----------------------------------------------------------------------------+

Caveat
======

Note that the Beilinson window of tateExtension of the beilinson window W is
not equal but just isomorphic to the original W.

The implicit bounds in the computation are only a guess and certainly not
optimal. This should be improved.

See also
========

  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution
  * beilinsonWindow -- extract the subquotient complex
    which contributes to the Beilinson window

Ways to use tateExtension:
==========================

  * "tateExtension(Complex)"

For the programmer
==================

The object tateExtension, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5589:0.

tateResolution -- compute the Tate resolution
*********************************************

  * Usage:
        T = tateResolution(M,low,high)
        phi = tateResolution(A,low,high)
  * Inputs:
      * M, a module (Macaulay2Doc), multi-graded module
        representing a sheaf F
      * low, a list (Macaulay2Doc), a multidegree
      * high, a list (Macaulay2Doc), a multidegree
      * A, a matrix (Macaulay2Doc), a homomorphism of
        multi-graded modules from M to N
  * Outputs:
      * T, a complex (Complexes), a bounded free complex over
        the exterior algebra
      * phi, a map of complexes (Complexes), an induced map
        from T(M) to T(N) over the exterior algebra

Description
===========

The call

tateResolution(M,low,high)

forms a free subquotient complex the Tate resolution of the sheaf F represented
by M in a range that covers all generators corresponding to cohomology groups
of twists F(a) of F  in the range low <= a <= high, see Tate Resolutions on
Products of Projective Spaces (see http://arxiv.org/abs/1411.5724 ).

+--------------------------------------------+
|i1 : (S,E) = productOfProjectiveSpaces{1,1} |
|                                            |
|o1 = (S, E)                                 |
|                                            |
|o1 : Sequence                               |
+--------------------------------------------+
|i2 : low = {-3,-3};high = {3,3};            |
+--------------------------------------------+
|i4 : T=tateResolution( S^{{1,1}},low, high);|
+--------------------------------------------+
|i5 : cohomologyMatrix(T,low,high)           |
|                                            |
|o5 = | 5h 0 5 10 15 20 25 |                 |
|     | 4h 0 4 8  12 16 20 |                 |
|     | 3h 0 3 6  9  12 15 |                 |
|     | 2h 0 2 4  6  8  10 |                 |
|     | h  0 1 2  3  4  5  |                 |
|     | 0  0 0 0  0  0  0  |                 |
|     | h2 0 h 2h 3h 4h 5h |                 |
|                                            |
|                      7               7     |
|o5 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])      |
+--------------------------------------------+

The complex contains some trailing terms and superfluous terms in a wider
range, which can be removed using trivial homological truncation.

+-----------------------------------------------------------------------------+
|i6 : cohomologyMatrix(T,2*low,2*high)                                        |
|                                                                             |
|o6 = | 0   0   0   0   0 0  0  0   0   0   0   0   0 |                       |
|     | 0   0   0   0   0 0  0  0   0   0   42k 0   0 |                       |
|     | 0   0   0   0   0 0  0  0   0   0   36k 42k 0 |                       |
|     | 20h 15h 10h 5h  0 5  10 15  20  25  0   0   0 |                       |
|     | 16h 12h 8h  4h  0 4  8  12  16  20  0   0   0 |                       |
|     | 12h 9h  6h  3h  0 3  6  9   12  15  0   0   0 |                       |
|     | 8h  6h  4h  2h  0 2  4  6   8   10  0   0   0 |                       |
|     | 4h  3h  2h  h   0 1  2  3   4   5   0   0   0 |                       |
|     | 0   0   0   0   0 0  0  0   0   0   0   0   0 |                       |
|     | 0   3h2 2h2 h2  0 h  2h 3h  4h  5h  0   0   0 |                       |
|     | 0   0   4h2 2h2 0 2h 4h 6h  8h  10h 0   0   0 |                       |
|     | 0   0   0   3h2 0 3h 6h 9h  12h 15h 0   0   0 |                       |
|     | 0   0   0   0   0 4h 8h 12h 16h 20h 0   0   0 |                       |
|                                                                             |
|                      13               13                                    |
|o6 : Matrix (ZZ[h, k])   <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+
|i7 : betti T                                                                 |
|                                                                             |
|            -8 -7 -6 -5 -4 -3 -2 -1  0  1  2   3   4   5   6                 |
|o7 = total: 84 36 25 40 46 44 35 30 38 56 81 110 141 174 210                 |
|        -1: 84 36  .  .  .  .  .  .  .  .  .   .   .   .   .                 |
|         0:  .  . 25 40 46 44 35 20 10  4  1   .   .   .   .                 |
|         1:  .  .  .  .  .  .  . 10 28 52 80 110 140 170 200                 |
|         2:  .  .  .  .  .  .  .  .  .  .  .   .   1   4  10                 |
|                                                                             |
|o7 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i8 : T'=trivialHomologicalTruncation(T, -sum high,-sum low)                  |
|                                                                             |
|             25      40      46      44      35      30      38      56      |
|o8 = 0  <-- E   <-- E   <-- E   <-- E   <-- E   <-- E   <-- E   <-- E   <--  |
|                                                                             |
|     -7     -6      -5      -4      -3      -2      -1      0       1        |
|                                                                             |
|o8 : Complex                                                                 |
|-----------------------------------------------------------------------------|
| 81      110      141      174      210                                      |
|E   <-- E    <-- E    <-- E    <-- E    <-- 0                                |
|                                                                             |
|2       3        4        5        6        7                                |
+-----------------------------------------------------------------------------+
|i9 : betti T'                                                                |
|                                                                             |
|            -6 -5 -4 -3 -2 -1  0  1  2   3   4   5   6                       |
|o9 = total: 25 40 46 44 35 30 38 56 81 110 141 174 210                       |
|         0: 25 40 46 44 35 20 10  4  1   .   .   .   .                       |
|         1:  .  .  .  .  . 10 28 52 80 110 140 170 200                       |
|         2:  .  .  .  .  .  .  .  .  .   .   1   4  10                       |
|                                                                             |
|o9 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i10 : cohomologyMatrix(T',2*low,2*high)                                      |
|                                                                             |
|o10 = | 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 |                          |
|      | 20h 15h 10h 5h  0 5  10 15  20  25  0 0 0 |                          |
|      | 16h 12h 8h  4h  0 4  8  12  16  20  0 0 0 |                          |
|      | 12h 9h  6h  3h  0 3  6  9   12  15  0 0 0 |                          |
|      | 8h  6h  4h  2h  0 2  4  6   8   10  0 0 0 |                          |
|      | 4h  3h  2h  h   0 1  2  3   4   5   0 0 0 |                          |
|      | 0   0   0   0   0 0  0  0   0   0   0 0 0 |                          |
|      | 0   3h2 2h2 h2  0 h  2h 3h  4h  5h  0 0 0 |                          |
|      | 0   0   4h2 2h2 0 2h 4h 6h  8h  10h 0 0 0 |                          |
|      | 0   0   0   3h2 0 3h 6h 9h  12h 15h 0 0 0 |                          |
|      | 0   0   0   0   0 4h 8h 12h 16h 20h 0 0 0 |                          |
|                                                                             |
|                       13               13                                   |
|o10 : Matrix (ZZ[h, k])   <-- (ZZ[h, k])                                     |
+-----------------------------------------------------------------------------+

The call

tateResolution(A,low,high)

where A is a matrix representing the multi-graded module homomorphism from M to
N computes the induced map between two free subquotients of Tate resolutions of
M and N in the given range.

+-------------------------------------------+
|i11 : (S,E)=productOfProjectiveSpaces {2,1}|
|                                           |
|o11 = (S, E)                               |
|                                           |
|o11 : Sequence                             |
+-------------------------------------------+
|i12 : low=-{2,1}; high={2,1};              |
+-------------------------------------------+
|i14 : A=map(S^1, S^{1:{-1,0}}, {{S_0}})    |
|                                           |
|o14 = | x_(0,0) |                          |
|                                           |
|              1      1                     |
|o14 : Matrix S  <-- S                      |
+-------------------------------------------+
|i15 : M=source A; N=target A;              |
+-------------------------------------------+
|i17 : TA = tateResolution(A, low, high);   |
+-------------------------------------------+
|i18 : TM = tateResolution(M, low, high);   |
+-------------------------------------------+
|i19 : TN = tateResolution(N, low, high);   |
+-------------------------------------------+
|i20 : (source TA == TM, target TA == TN)   |
|                                           |
|o20 = (true, true)                         |
|                                           |
|o20 : Sequence                             |
+-------------------------------------------+

See also
========

  * upperCorner -- compute the upper corner
  * lowerCorner -- compute the lower corner
  * trivialHomologicalTruncation -- return
    the trivial truncation of a chain complex
  * cohomologyMatrix -- cohomology groups of a sheaf
    on P^{n_1}xP^{n_2}, or of (part) of a Tate resolution

Ways to use tateResolution:
===========================

  * "tateResolution(Matrix,List,List)"
  * "tateResolution(Module,List,List)"

For the programmer
==================

The object tateResolution, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:5372:0.

trivialHomologicalTruncation -- return the trivial truncation of a chain complex
********************************************************************************

  * Usage:
        trivialHomologicalTruncation(Complex,d,e)
  * Inputs:
      * C, a complex (Complexes),
      * d, an integer (Macaulay2Doc),
      * e, an integer (Macaulay2Doc), homological indices
  * Outputs:
      * a complex (Complexes),

Description
===========

Given a chain complex

... <- C_{k-1} <- C_k <- C_{k+1} <- ...

return the trivial truncation

0 <- C_d <- C_{d+1} <- ... < C_e <- 0

+----------------------------------------------------------------------+
|i1 : E=ZZ/101[e_0,e_1,SkewCommutative=>true];                         |
+----------------------------------------------------------------------+
|i2 : F=freeResolution(ideal vars E, LengthLimit => 5);                |
+----------------------------------------------------------------------+
|i3 : C=dual freeResolution (coker transpose F.dd_3,LengthLimit=>8)[-3]|
|                                                                      |
|      5      4      3      2      1      1      2      3      4       |
|o3 = E  <-- E  <-- E  <-- E  <-- E  <-- E  <-- E  <-- E  <-- E        |
|                                                                      |
|     -5     -4     -3     -2     -1     0      1      2      3        |
|                                                                      |
|o3 : Complex                                                          |
+----------------------------------------------------------------------+
|i4 : C1=trivialHomologicalTruncation(C,-2,2)                          |
|                                                                      |
|             2      1      1      2      3                            |
|o4 = 0  <-- E  <-- E  <-- E  <-- E  <-- E  <-- 0                      |
|                                                                      |
|     -3     -2     -1     0      1      2      3                      |
|                                                                      |
|o4 : Complex                                                          |
+----------------------------------------------------------------------+
|i5 : C2=trivialHomologicalTruncation(C1,-3,3)                         |
|                                                                      |
|                    2      1      1      2      3                     |
|o5 = 0  <-- 0  <-- E  <-- E  <-- E  <-- E  <-- E  <-- 0 <-- 0         |
|                                                                      |
|     -4     -3     -2     -1     0      1      2      3     4         |
|                                                                      |
|o5 : Complex                                                          |
+----------------------------------------------------------------------+
|i6 : C3=trivialHomologicalTruncation(C2,2,2)                          |
|                                                                      |
|            3                                                         |
|o6 = 0 <-- E                                                          |
|                                                                      |
|     1     2                                                          |
|                                                                      |
|o6 : Complex                                                          |
+----------------------------------------------------------------------+

Ways to use trivialHomologicalTruncation:
=========================================

  * "trivialHomologicalTruncation(Complex,ZZ,ZZ)"

For the programmer
==================

The object trivialHomologicalTruncation, is
a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4859:0.

upperCorner -- compute the upper corner
***************************************

  * Usage:
        m=upperCorner(F,d)
  * Inputs:
      * F, a complex (Complexes), over the exterior algebra
      * d, a list (Macaulay2Doc), a (multi)-degree
  * Outputs:
      * a matrix (Macaulay2Doc), a submatrix of the differential
        $F_k -> F_{k-1}$

Description
===========

Let $k = -|d|$ be the total degree and $G \subset F_k$ the summand spanned by
the generators of $F_k$ in degree d, $H \subset F_{k-1}$ the summand spanned by
generators of degree d' with $0 \le d'-d \le n$. The function returns the
corresponding submatrix $m: G -> H$ of the differential.

So the source will be generated in a single degree, and the target will be
generated in multiple degrees.  The names comes from the fact that when we
resolve this map, this map creates the "upper corner" in the corner complex.

+-----------------------------------------------------------------------------+
|i1 : n={1,2};                                                                |
+-----------------------------------------------------------------------------+
|i2 : (S,E) = productOfProjectiveSpaces n                                     |
|                                                                             |
|o2 = (S, E)                                                                  |
|                                                                             |
|o2 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i3 : F=dual freeResolution((ker transpose vars E)**E^{{ 2,3}},LengthLimit=>4)|
|                                                                             |
|      70      35      15      5      1                                       |
|o3 = E   <-- E   <-- E   <-- E  <-- E                                        |
|                                                                             |
|     -4      -3      -2      -1     0                                        |
|                                                                             |
|o3 : Complex                                                                 |
+-----------------------------------------------------------------------------+
|i4 : cohomologyMatrix(F,-{3,3},{4,4})                                        |
|                                                                             |
|o4 = | 0 0 0 15 0  0  0  0 |                                                 |
|     | 0 0 0 10 20 0  0  0 |                                                 |
|     | 0 0 0 6  12 18 0  0 |                                                 |
|     | 0 0 0 3  6  9  12 0 |                                                 |
|     | 0 0 0 1  2  3  4  5 |                                                 |
|     | 0 0 0 0  0  0  0  0 |                                                 |
|     | 0 0 0 0  0  0  0  0 |                                                 |
|     | 0 0 0 0  0  0  0  0 |                                                 |
|                                                                             |
|                      8               8                                      |
|o4 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                       |
+-----------------------------------------------------------------------------+
|i5 : betti F                                                                 |
|                                                                             |
|            -4 -3 -2 -1 0                                                    |
|o5 = total: 70 35 15  5 1                                                    |
|         0: 70 35 15  5 1                                                    |
|                                                                             |
|o5 : BettiTally                                                              |
+-----------------------------------------------------------------------------+
|i6 : tallyDegrees F                                                          |
|                                                                             |
|o6 = (Tally{{-1, -3} => 20}, Tally{{-1, -2} => 12}, Tally{{-1, -1} => 6},    |
|            {-2, -2} => 18         {-2, -1} => 9          {-2, 0} => 3       |
|            {-3, -1} => 12         {-3, 0} => 4           {0, -2} => 6       |
|            {-4, 0} => 5           {0, -3} => 10                             |
|            {0, -4} => 15                                                    |
|     ------------------------------------------------------------------------|
|     Tally{{-1, 0} => 2}, Tally{{0, 0} => 1})                                |
|           {0, -1} => 3                                                      |
|                                                                             |
|o6 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i7 : deg={2,1}                                                               |
|                                                                             |
|o7 = {2, 1}                                                                  |
|                                                                             |
|o7 : List                                                                    |
+-----------------------------------------------------------------------------+
|i8 : m=upperCorner(F,deg);                                                   |
|                                                                             |
|             30      9                                                       |
|o8 : Matrix E   <-- E                                                        |
+-----------------------------------------------------------------------------+
|i9 : tally degrees target m, tally degrees source m                          |
|                                                                             |
|o9 = (Tally{{-2, -2} => 18}, Tally{{-2, -1} => 9})                           |
|            {-3, -1} => 12                                                   |
|                                                                             |
|o9 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i10 : Fm=(freeResolution(coker m,LengthLimit=>4))[sum deg+1]                 |
|                                                                             |
|       30      9      2      3      8                                        |
|o10 = E   <-- E  <-- E  <-- E  <-- E                                         |
|                                                                             |
|      -4      -3     -2     -1     0                                         |
|                                                                             |
|o10 : Complex                                                                |
+-----------------------------------------------------------------------------+
|i11 : betti Fm                                                               |
|                                                                             |
|             -4 -3 -2 -1 0                                                   |
|o11 = total: 30  9  2  3 8                                                   |
|          0: 30  9  .  . .                                                   |
|          1:  .  .  2  1 .                                                   |
|          2:  .  .  .  . 1                                                   |
|          3:  .  .  .  2 7                                                   |
|                                                                             |
|o11 : BettiTally                                                             |
+-----------------------------------------------------------------------------+
|i12 : cohomologyMatrix(Fm,-{3,3},{4,4})                                      |
|                                                                             |
|o12 = | 0 0  0 0  0   0  0  0 |                                              |
|      | 0 0  0 0  0   0  0  0 |                                              |
|      | 0 0  0 0  0   18 0  0 |                                              |
|      | 0 0  0 0  0   9  12 0 |                                              |
|      | 0 h2 0 h  2h  0  0  0 |                                              |
|      | 0 0  0 0  0   0  0  0 |                                              |
|      | 0 0  0 0  0   0  0  0 |                                              |
|      | 0 0  0 h3 2h3 0  0  0 |                                              |
|                                                                             |
|                       8               8                                     |
|o12 : Matrix (ZZ[h, k])  <-- (ZZ[h, k])                                      |
+-----------------------------------------------------------------------------+

Ways to use upperCorner:
========================

  * "upperCorner(Complex,List)"

For the programmer
==================

The object upperCorner, is a method function (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in TateOnProducts.m2:4530:0.