# directImageComplex(Module) -- Complex representing the direct image

## Synopsis

• Function: directImageComplex
• Usage:
F = directImageComplex M
• Inputs:
• M, , graded over a ring of the form S = A[y_0..y_n], representing a sheaf on $\PP^n_A$, where A is a polynomial ring.
• Optional inputs:
• Regularity => an integer, default value null, the Castelnuovo-Mumford regularity of M. If not provided, this value will be computed
• Outputs:
• F, , complex of free modules over A. Homology in homological degree -i is $R^i \pi_* {\mathcal M}$, where ${\mathcal M}$ is the sheaf on $\PP^n_A$ represented by M.

## Description

The computation is done using the exterior algebra method described by Eisenbud and Schreyer, in Eisenbud, David; Schreyer, Frank-Olaf Relative Beilinson monad and direct image for families of coherent sheaves.'' Trans. Amer. Math. Soc. 360 (2008), no. 10, 5367–5396.

The computation requires knowing the Castelnuovo-Mumford regularity of M in the variables y_i. If not provided by the user, it is computed by the function. The default is Regularity => null, which means it must be computed.

The ring A must be a polynomial ring. For the moment, the module M must be homogeneous for the variables of A as well as for the variables of S (bihomogeneous).

It is proven in loc. cit. that every complex of free modules can be realized as the direct image of a vector bundle on $\PP^n_A$.

The following example can be used to study the loci in the family of extensions of a pair of vector bundles on $\PP^1$ where the extension bundle has a given splitting type: this type is calculated by the Fitting ideals of the matrices defining the direct image complexes of various twists of the bundle. See Section 5 in loc. cite. It is conjectured there that all the sums of these Fitting ideals for the universal extension of $\mathcal O_{\PP^1}^{r-1}$ by $\mathcal O_{\PP^1}(d)$ are radical, as in the example below.

First we examine the extensions of ${\mathcal O}_{\PP^1}(1)$ by ${\mathcal O}_{\PP^1}(-3)$. There is a 3-dimensional vector space $$Ext^1({\mathcal O}_{\PP^1}(1),{\mathcal O}_{\PP^1}(-3))$$ of extensions. The universal extension'' is thus a bundle on $\PP^1\times Ext$. The locus where the extension bundle splits as ${\mathcal O}_{\PP^1}(-2) \oplus {\mathcal O}_{\PP^1}$ is the locus where the map in the direct image complex drops rank, and this is the (cone over a) conic, defined by the determinant of this matrix.

 i1 : M=universalExtension({-3}, {1}) o1 = cokernel {3, 0} | x_0 x_1 x_2 | {2, 1} | y_0 0 0 | {2, 1} | y_1 y_0 0 | {2, 1} | 0 y_1 y_0 | {2, 1} | 0 0 y_1 | ZZ ZZ 5 o1 : ---[x ..x ][y ..y ]-module, quotient of (---[x ..x ][y ..y ]) 101 0 2 0 1 101 0 2 0 1 i2 : S = ring M; i3 : A = coefficientRing S; i4 : F = directImageComplex M 2 2 o4 = 0 <-- A <-- A <-- 0 -2 -1 0 1 o4 : ChainComplex i5 : F.dd_0 o5 = | x_1 x_0 | | -x_2 -x_1 | 2 2 o5 : Matrix A <--- A i6 : det (F.dd_0) 2 o6 = - x + x x 1 0 2 o6 : A

Here is a larger example, the extension of ${\mathcal O}_{\PP^1}^2$ by ${\mathcal O}_{\PP^1}(6)$

 i7 : r=3; i8 : d=6; i9 : M=universalExtension(splice {(r-1):0}, {d}) o9 = cokernel {0, 0} | x_0 x_1 x_2 x_3 x_4 | {0, 0} | x_5 x_6 x_7 x_8 x_9 | {-1, 1} | y_0 0 0 0 0 | {-1, 1} | y_1 y_0 0 0 0 | {-1, 1} | 0 y_1 y_0 0 0 | {-1, 1} | 0 0 y_1 y_0 0 | {-1, 1} | 0 0 0 y_1 y_0 | {-1, 1} | 0 0 0 0 y_1 | ZZ ZZ 8 o9 : ---[x ..x ][y ..y ]-module, quotient of (---[x ..x ][y ..y ]) 101 0 9 0 1 101 0 9 0 1 i10 : S = ring M; i11 : A = coefficientRing S; i12 : L = for i from -d to 0 list directImageComplex(S^{{i,0}}**M); i13 : netList L +-----------------------+ | 10 1 | o13 = |0 <-- A <-- A <-- 0| | | |-2 -1 0 1| +-----------------------+ | 8 2 | |0 <-- A <-- A <-- 0 | | | |-2 -1 0 1 | +-----------------------+ | 6 3 | |0 <-- A <-- A <-- 0 | | | |-2 -1 0 1 | +-----------------------+ | 4 4 | |0 <-- A <-- A <-- 0 | | | |-2 -1 0 1 | +-----------------------+ | 2 5 | |0 <-- A <-- A <-- 0 | | | |-2 -1 0 1 | +-----------------------+ | 6 | |0 <-- 0 <-- A <-- 0 | | | |-2 -1 0 1 | +-----------------------+ | 9 | |0 <-- 0 <-- A <-- 0 | | | |-2 -1 0 1 | +-----------------------+ i14 : maps = apply(L, F-> F.dd_0) o14 = {| x_0 |, | x_1 x_0 |, | x_2 -x_0 -x_1 |, | x_3 x_0 x_1 x_2 |, | x_5 | | x_6 x_5 | | x_7 -x_5 -x_6 | | x_8 x_5 x_6 x_7 | | -x_1 | | -x_2 -x_1 | | -x_3 x_1 x_2 | | -x_4 -x_1 -x_2 -x_3 | | -x_6 | | -x_7 -x_6 | | -x_8 x_6 x_7 | | -x_9 -x_6 -x_7 -x_8 | | x_2 | | x_3 x_2 | | x_4 -x_2 -x_3 | | x_7 | | x_8 x_7 | | x_9 -x_7 -x_8 | | -x_3 | | -x_4 -x_3 | | -x_8 | | -x_9 -x_8 | | x_4 | | x_9 | ----------------------------------------------------------------------- | -x_0 -x_1 -x_2 x_4 -x_3 |, 0, 0} | -x_5 -x_6 -x_7 x_9 -x_8 | o14 : List