# pullback(ToricMap,CoherentSheaf) -- make the pullback of a coherent sheaf under a toric map

## Synopsis

• Function: pullback
• Usage:
F' = pullback(f, F)
M' = pullback(f, M)
• Inputs:
• f, , where the target is smooth
• F, , on the target of f or module representing such a coherent sheaf
• Outputs:
• F', , the pullback of F under f, or the module M' representing such a sheaf

## Description

The category of coherent sheaves on a normal toric variety is equivalent to the quotient category of finitely generated modules over the total coordinate ring by the full subcategory of torsion modules with respect to the irrelevant ideal. In particular, each finitely generated module over the total coordinate ring corresponds to coherent sheaf on the normal toric variety and every coherent sheaf arises in this manner. For more information, see Subsection 5.3 in Cox-Little-Schenck.

A toric morphism $f : X \to Y$ where $Y$ is smooth induces a map $g : S \to R$ from total coordinate ring $S$ of $Y$ to the total coordinate ring $R$ of $X$. Given a coherent sheaf $F$ on $Y$ corresponding to the $S$-module $M$, the pullback of $F$ along $f$ is the coherent sheaf corresponding to the $R$-module $M ** g$. For more information, see Tomasz Mańdziuk's "Cox rings and algebraic maps", Mathematische Nachrichten 292 (2019) 389-401, arXiv:1703.04794. This method returns the sheaf (or module) corresponding to the pullback along the toric map.

As first example, we compute the pullback of the cotangent sheaf on the projective plane to the first Hirzebruch surface.

 i1 : X = hirzebruchSurface 1; i2 : Y = toricProjectiveSpace 2; i3 : f = map(Y, X, matrix{{1,0},{0,-1}}) o3 = | 1 0 | | 0 -1 | o3 : ToricMap Y <--- X i4 : Omega = cotangentSheaf Y o4 = cokernel {2} | x_2 | {2} | x_0 | {2} | -x_1 | 3 o4 : coherent sheaf on Y, quotient of OO (-2) Y i5 : F = pullback(f, Omega) o5 = cokernel {0, 2} | x_3 | {0, 2} | x_1x_2 | {0, 2} | -x_0x_1 | 3 o5 : coherent sheaf on X, quotient of OO (0, -2) X i6 : (R = ring X, S = ring Y); i7 : inducedMap f o7 = map (R, S, {x x , x x , x }) 1 2 0 1 3 o7 : RingMap R <--- S i8 : presentation module Omega o8 = {2} | x_2 | {2} | x_0 | {2} | -x_1 | 3 1 o8 : Matrix S <--- S i9 : presentation module F o9 = {0, 2} | x_3 | {0, 2} | x_1x_2 | {0, 2} | -x_0x_1 | 3 1 o9 : Matrix R <--- R i10 : assert (isWellDefined f and isHomogeneous module F)

For toric divisors, the operations of pullback and taking the associated sheaf OO commute.

 i11 : D = Y_0 + 2*Y_1 + 3*Y_2 o11 = Y + 2*Y + 3*Y 0 1 2 o11 : ToricDivisor on Y i12 : L = pullback(f, OO D) 1 o12 = OO (0, 6) X o12 : coherent sheaf on X i13 : D' = pullback(f, D) o13 = 2*X + 3*X + X + 3*X 0 1 2 3 o13 : ToricDivisor on X i14 : OO D' 1 o14 = OO (0, 6) X o14 : coherent sheaf on X i15 : assert (isWellDefined f and L === OO pullback(f, D))

## Caveat

This method assumes that the target is smooth. One may verify this by using isSmooth(NormalToricVariety).