# isProper(ToricMap) -- whether a toric map is proper

## Synopsis

• Function: isProper
• Usage:
isProper f
• Inputs:
• f, ,
• Outputs:
• , that is true if the map is proper

## Description

A morphism of varieties is proper if it is universally closed. For a toric map $f : X \to Y$ corresponding to the map $g : N_X \to N_Y$ of lattices, this is equivalent to the preimage of the support of the target fan under $g$ being equal to the support of the source fan. For more information about this equivalence, see Theorem 3.4.11 in Cox-Little-Schenck's Toric Varieties.

We illustrate this method on the projection from the second Hirzebruch surface to the projective line.

 i1 : X = hirzebruchSurface 2; i2 : Y = toricProjectiveSpace 1; i3 : f = map(Y, X, matrix {{1,0}}) o3 = | 1 0 | o3 : ToricMap Y <--- X i4 : isProper f o4 = true i5 : assert (isWellDefined f and source f === X and target f === Y and isProper f)

The second example shows that the projection from the blow-up of the origin in the affine plane to affine plane is proper.

 i6 : A = affineSpace 2; i7 : B = toricBlowup({0,1}, A); i8 : g = B^[] o8 = | 1 0 | | 0 1 | o8 : ToricMap A <--- B i9 : isProper g o9 = true i10 : assert(isWellDefined g and g == map(A, B, 1) and isProper g)

The natural inclusion of the affine plane into the projective plane is not proper.

 i11 : A = affineSpace 2; i12 : P = toricProjectiveSpace 2; i13 : f = map(P, A, 1) o13 = | 1 0 | | 0 1 | o13 : ToricMap P <--- A i14 : isProper f o14 = false i15 : isDominant f o15 = true i16 : assert (isWellDefined f and not isProper f and isDominant f)

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