# map(NormalToricVariety,NormalToricVariety,ZZ) -- make a torus-equivariant map between normal toric varieties

## Synopsis

• Function: map
• Usage:
f = map(Y, X, m)
• Inputs:
• Y, , the target of the map
• X, , the source of the map
• m, an integer
• Optional inputs:
• Degree => ..., default value null, used
• DegreeLift => ..., default value null, used
• DegreeMap => ..., default value null, used
• Outputs:
• f,

## Description

Let $X$ and $Y$ be normal toric varieties whose underlying lattices are $N_X$ and $N_Y$ respectively. Every toric map $f : X \to Y$ corresponds to a unique map $g : N_X \to N_Y$ of lattices such that, for any cone $\sigma$ in the fan of $X$, there is a cone in the fan of $Y$ that contains the image $g(\sigma)$. For more information on this correspondence, see Theorem 3.3.4 in Cox-Little-Schenck's Toric Varieties. Given the target, the source, and the matrix representing lattice map, this basic constructor creates the corresponding toric map; the integer determines the lattice map in two distinct ways.

When the integer equals zero, the underlying map of lattices is represented by the zero matrix.

 i1 : X = hirzebruchSurface 2; i2 : Y = toricProjectiveSpace 1; i3 : f = map(Y, X, 0) o3 = 0 o3 : ToricMap Y <--- X i4 : assert (isWellDefined f and source f === X and target f === Y and matrix f === map(ZZ^(dim Y), ZZ^(dim X), 0))

If the integer $m$ is nonzero, then the underlying map of lattices is represented by multiplying the identity matrix by the given integer $m$. Hence, this second case requires that the dimension of the source and target be equal.

 i5 : Z = normalToricVariety ({{1,0},{-1,2},{0,-1}}, {{0,1},{0,2},{1,2}}); i6 : assert (isWellDefined Z and not isSmooth Z) i7 : g = map(Z, X, 2) o7 = | 2 0 | | 0 2 | o7 : ToricMap Z <--- X i8 : assert (isWellDefined g and source g === X and target g === Z and matrix g === 2*id_(ZZ^(dim X)))

Setting m = 1 is a easy way to construct the canoncal projection associated to a blow-up or the identity map.

 i9 : A = affineSpace 2; i10 : B = toricBlowup ({0, 1}, A); i11 : h = map(A, B, 1) o11 = | 1 0 | | 0 1 | o11 : ToricMap A <--- B i12 : assert (isWellDefined h and h == B^[]) i13 : i = map(A, A, 1) o13 = | 1 0 | | 0 1 | o13 : ToricMap A <--- A i14 : i == id_A o14 = true i15 : assert (isWellDefined i and source i === A and target i === A and matrix i === id_(ZZ^2))

## Caveat

This method does not check that the given matrix determines a map of toric varieties. In particular, it assumes that the image of each cone in the source is contained in a cone in the target. One can verify this by using isWellDefined(ToricMap).