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)) |
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).