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

makeSmooth -- 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). 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 : isSmooth U

o2 = false
i3 : V = makeSmooth U;
i4 : isSmooth V

o4 = true
i5 : rays V, max V

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

o5 : Sequence
i6 : set rays V - set rays U

o6 = set {{1, 0}}

o6 : Set
There is one additional rays, so only one blowup was needed.

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

i7 : W = weightedProjectiveSpace {1,2,3,4,5};
i8 : dim W

o8 = 4
i9 : isSimplicial W

o9 = true
i10 : isSmooth W

o10 = false
i11 : W' = makeSmooth W;
i12 : isSmooth W'

o12 = true
i13 : R = set rays W' - set rays W

o13 = set {{-1, -1, -2, -2}, {-1, -1, -2, -3}, {-1, -2, -2, -3}, {-1, -2, -3,
      -----------------------------------------------------------------------
      -4}, {-2, -3, -4, -6}, {0, -1, -1, -1}, {0, -1, -1, -2}, {0, 0, -1,
      -----------------------------------------------------------------------
      -1}, {0, 0, 0, -1}}

o13 : Set
i14 : #R

o14 = 9
If the initial toric variety is smooth, then this method simply returns it.
i15 : AA1 = affineSpace 1;
i16 : AA1 === makeSmooth AA1    

o16 = true
i17 : PP2 = projectiveSpace 2;
i18 : PP2 === makeSmooth PP2

o18 = true
In the next example, we resolve the singularities of a non-simplicial projective threefold.
i19 : X = normalToricVariety(id_(ZZ^3) | -id_(ZZ^3));
i20 : isSimplicial X

o20 = false
i21 : isSmooth X

o21 = false
i22 : X' = makeSmooth X;
i23 : isSmooth X'

o23 = true
i24 : R = set rays X' - set rays X    

o24 = set {{-1, 0, 1}, {0, -1, 1}, {0, 1, -1}, {0, 1, 1}, {1, 0, 1}}

o24 : Set
i25 : #R  

o25 = 5
We also demonstrate this method on a complete simplicial non-projective threefold.
i26 : Rho = {{-1,-1,1},{3,-1,1},{0,0,1},{1,0,1},{0,1,1},{-1,3,1},{0,0,-1}};
i27 : Sigma = {{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}};
i28 : Z = normalToricVariety(Rho,Sigma);
i29 : isSimplicial Z

o29 = true
i30 : isSmooth Z

o30 = false
i31 : isComplete Z

o31 = true
i32 : isProjective Z

o32 = true
i33 : Z' = makeSmooth Z;
i34 : isSmooth Z'

o34 = true
i35 : R = set rays Z' - set rays Z

o35 = set {{-1, 0, 1}, {-1, 1, 1}, {-1, 2, 1}, {0, -1, 1}, {0, 2, 1}, {1, -1,
      -----------------------------------------------------------------------
      1}, {1, 0, 0}, {1, 1, 1}, {2, -1, 1}, {2, 0, 1}}

o35 : Set
i36 : #R

o36 = 10
We end with a degenerate example.
i37 : 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}});
i38 : isDegenerate Y

o38 = true
i39 : Y' = makeSmooth Y;
i40 : isSmooth Y'

o40 = true

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

Ways to use makeSmooth :