# isSurjective(ToricMap) -- whether a toric map is surjective

## Synopsis

• Function: isSurjective
• Usage:
isSurjective f
• Inputs:
• f,
• Outputs:
• , that is true if the map is surjective

## Description

A morphism $f : X \to Y$ is surjective if $f(X) = Y$ as sets. To be surjective toric map, the dimension of $X$ must be greater than or equal to $Y$ and the image of the algebraic torus in $X$ must be equal to the algebraic torus in $Y$. Since $f$ is torus-equivariant, it follows that $f$ is surjective if and only if its image contains a point in each torus orbit in $Y$. This method checks whether all of the cones in the target fan contain a point from the relative interior of a cone in the source fan.

The canonical projections from a product to the factors are surjective.

 i1 : X = toricProjectiveSpace 2; i2 : Y = hirzebruchSurface 2; i3 : XY = X ** Y; i4 : pi0 = XY^ o4 = | 1 0 0 0 | | 0 1 0 0 | o4 : ToricMap X <--- XY i5 : isSurjective pi0 o5 = true i6 : assert (isWellDefined pi0 and isSurjective pi0) i7 : pi1 = XY^ o7 = | 0 0 1 0 | | 0 0 0 1 | o7 : ToricMap Y <--- XY i8 : isSurjective pi1 o8 = true i9 : assert (isWellDefined pi1 and isSurjective pi1)

We demonstrate that the natural inclusion from the affine plane into the projective plane is a dominant, but not surjective

 i10 : A = affineSpace 2; i11 : f = map(X, A, 1) o11 = | 1 0 | | 0 1 | o11 : ToricMap X <--- A i12 : isDominant f o12 = true i13 : isSurjective f o13 = false i14 : assert (isWellDefined f and isDominant f and not isSurjective f)

For a toric map to be surjective, the underlying map of fans need not be surjective.

 i15 : Y = (toricProjectiveSpace 1) ** (toricProjectiveSpace 1); i16 : X = normalToricVariety( {{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}}, {{0},{1},{2},{3},{4},{5},{6},{7}}); i17 : g = map(Y,X,1) o17 = | 1 0 | | 0 1 | o17 : ToricMap Y <--- X i18 : isSurjective g o18 = true i19 : isComplete X o19 = false i20 : assert (isWellDefined g and isSurjective g and not isComplete X)

To avoid repeating a computation, the package caches the result in the CacheTable of the toric map.