Let X and Y be normal toric varieties whose underlying lattices are NX and NY respectively. Every toric map f : X →Y corresponds to a unique map g : NX →NY of lattices such that, for any cone σ in the fan of X, there is a cone in the fan of Y that contains the image g(σ). 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).