next | previous | forward | backward | up | top | index | toc | Macaulay2 website
NormalToricVarieties :: isSurjective(ToricMap)

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

Synopsis

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^[0]

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^[1]

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.

See also