next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
NormalToricVarieties :: makeSmooth(NormalToricVariety)

makeSmooth(NormalToricVariety) -- make a birational smooth toric variety

Synopsis

Description

Every normal toric variety has a resolution of singularities given by another normal toric variety. Given a normal toric variety X this method makes a new smooth toric variety Y which has a proper birational map to X. The normal toric variety Y is obtained from X by repeatedly blowing up appropriate torus orbit closures (if necessary the makeSimplicial method is also used with the specified strategy). A minimal number of blow-ups are used.

As a simple example, we can resolve a simplicial affine singularity.

i1 : U = normalToricVariety ({{4,-1},{0,1}}, {{0,1}});
i2 : assert not isSmooth U
i3 : V = makeSmooth U;
i4 : assert isSmooth V
i5 : rays V, max V

o5 = ({{4, -1}, {0, 1}, {1, 0}}, {{0, 2}, {1, 2}})

o5 : Sequence
i6 : toList (set rays V - set rays U)

o6 = {{1, 0}}

o6 : List

There is one additional rays, so only one toricBlowup was needed.

To resolve the singularities of this simplicial projective fourfold, we need eleven toricBlowups.

i7 : W = weightedProjectiveSpace {1,2,3,4,5};
i8 : assert (dim W === 4)
i9 : assert (isSimplicial W and not isSmooth W)
i10 : W' = makeSmooth W;
i11 : assert isSmooth W'
i12 : # (set rays W' - set rays W)

o12 = 11

If the initial toric variety is smooth, then this method simply returns it.

i13 : AA1 = affineSpace 1;
i14 : assert (AA1 === makeSmooth AA1)
i15 : PP2 = toricProjectiveSpace 2;
i16 : assert (PP2 === makeSmooth PP2)

In the next example, we resolve the singularities of a non-simplicial projective threefold.

i17 : X = normalToricVariety (id_(ZZ^3) | -id_(ZZ^3));
i18 : assert (not isSimplicial X and not isSmooth X)
i19 : X' = makeSmooth X;
i20 : assert isSmooth X'
i21 : # (set rays X' - set rays X)

o21 = 18

We also demonstrate this method on a complete simplicial non-projective threefold.

i22 : Z = normalToricVariety ({{-1,-1,1},{3,-1,1},{0,0,1},{1,0,1},{0,1,1},{-1,3,1},{0,0,-1}}, {{0,1,3},{0,1,6},{0,2,3},{0,2,5},{0,5,6},{1,3,4},{1,4,5},{1,5,6},{2,3,4},{2,4,5}});
i23 : assert (isSimplicial Z and not isSmooth Z)
i24 : assert (isComplete Z and not isProjective Z)
i25 : Z' = makeSmooth Z;
i26 : assert isSmooth Z'
i27 : # (set rays Z' - set rays Z)

o27 = 11

We end with a degenerate example.

i28 : Y = normalToricVariety ({{1,0,0,0},{0,1,0,0},{0,0,1,0},{1,-1,1,0},{1,0,-2,0}}, {{0,1,2,3},{0,4}});
i29 : assert (isDegenerate Y and not isSimplicial Y and not isComplete Y)
i30 : Y' = makeSmooth Y;
i31 : assert isSmooth Y'
i32 : # (set rays Y' - set rays Y)

o32 = 1

Caveat

A singular normal toric variety almost never has a unique minimal resolution. This method returns only of one of the many minimal resolutions.

See also