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

toricBlowup(List,NormalToricVariety,List) -- makes the toricBlowup of a normal toric variety along a torus orbit closure

Synopsis

Description

Roughly speaking, the toricBlowup replaces a subspace of a given space with all the directions pointing out of that subspace. The metaphor is inflation of a balloon rather than an explosion. A toricBlowup is the universal way to turn a subvariety into a Cartier divisor.

The toricBlowup of a normal toric variety along a torus orbit closure is also a normal toric variety. The fan associated to the toricBlowup is star subdivision or stellar subdivision of the fan of the original toric variety. More precisely, we throw out the star of the cone corresponding to s and join a vector v lying the relative interior to the boundary of the star. When the vector v is not specified, the ray corresponding to the sum of all rays in the cone corresponding to s is used.

The simplest example is toricBlowup of the origin in the affine plane. Note that the new ray has the largest index.

i1 : AA2 = affineSpace 2;
i2 : rays AA2

o2 = {{1, 0}, {0, 1}}

o2 : List
i3 : max AA2

o3 = {{0, 1}}

o3 : List
i4 : Bl0 = toricBlowup ({0,1}, AA2);
i5 : rays Bl0

o5 = {{1, 0}, {0, 1}, {1, 1}}

o5 : List
i6 : max Bl0

o6 = {{0, 2}, {1, 2}}

o6 : List

Here are a few different toricBlowups of a non-simplicial affine toric variety

i7 : C = normalToricVariety ({{1,0,0},{1,1,0},{1,0,1},{1,1,1}}, {{0,1,2,3}});
i8 : assert not isSimplicial C
i9 : Bl1 = toricBlowup ({0,1,2,3}, C);
i10 : rays Bl1

o10 = {{1, 0, 0}, {1, 1, 0}, {1, 0, 1}, {1, 1, 1}, {2, 1, 1}}

o10 : List
i11 : max Bl1

o11 = {{0, 1, 4}, {0, 2, 4}, {1, 3, 4}, {2, 3, 4}}

o11 : List
i12 : assert isSimplicial Bl1
i13 : Bl2 = toricBlowup ({0,1}, C);
i14 : rays Bl2

o14 = {{1, 0, 0}, {1, 1, 0}, {1, 0, 1}, {1, 1, 1}, {2, 1, 0}}

o14 : List
i15 : max Bl2

o15 = {{0, 2, 4}, {1, 3, 4}, {2, 3, 4}}

o15 : List
i16 : assert isSimplicial Bl2
i17 : assert (rays Bl1 =!= rays Bl2 and max Bl1 =!= max Bl2)
i18 : Bl3 = toricBlowup ({0,1,2,3}, C, {5,3,4});
i19 : rays Bl3

o19 = {{1, 0, 0}, {1, 1, 0}, {1, 0, 1}, {1, 1, 1}, {5, 3, 4}}

o19 : List
i20 : max Bl3

o20 = {{0, 1, 4}, {0, 2, 4}, {1, 3, 4}, {2, 3, 4}}

o20 : List
i21 : assert isSimplicial Bl3
i22 : Bl4 = toricBlowup ({0}, C);
i23 : rays Bl4

o23 = {{1, 0, 0}, {1, 1, 0}, {1, 0, 1}, {1, 1, 1}}

o23 : List
i24 : max Bl4

o24 = {{0, 1, 3}, {0, 2, 3}}

o24 : List
i25 : assert isSimplicial Bl4

The third collection of examples illustrate some toricBlowups of a non-simplicial projective toric variety.

i26 : X = normalToricVariety (id_(ZZ^3) | (-id_(ZZ^3)));
i27 : rays X

o27 = {{1, 1, 1}, {-1, 1, 1}, {1, -1, 1}, {-1, -1, 1}, {1, 1, -1}, {-1, 1,
      -----------------------------------------------------------------------
      -1}, {1, -1, -1}, {-1, -1, -1}}

o27 : List
i28 : max X

o28 = {{0, 1, 2, 3}, {0, 1, 4, 5}, {0, 2, 4, 6}, {1, 3, 5, 7}, {2, 3, 6, 7},
      -----------------------------------------------------------------------
      {4, 5, 6, 7}}

o28 : List
i29 : assert (not isSimplicial X and isProjective X)
i30 : orbits (X,1)

o30 = {{0, 1}, {0, 2}, {0, 4}, {1, 3}, {1, 5}, {2, 3}, {2, 6}, {3, 7}, {4,
      -----------------------------------------------------------------------
      5}, {4, 6}, {5, 7}, {6, 7}}

o30 : List
i31 : Bl5 = toricBlowup ({0,2}, X);
i32 : Bl6 = toricBlowup ({6,7}, Bl5);
i33 : Bl7 = toricBlowup ({1,5}, Bl6);
i34 : rays Bl7

o34 = {{1, 1, 1}, {-1, 1, 1}, {1, -1, 1}, {-1, -1, 1}, {1, 1, -1}, {-1, 1,
      -----------------------------------------------------------------------
      -1}, {1, -1, -1}, {-1, -1, -1}, {1, 0, 1}, {0, -1, -1}, {-1, 1, 0}}

o34 : List
i35 : max Bl7

o35 = {{0, 1, 8}, {0, 1, 10}, {0, 4, 8}, {0, 4, 10}, {1, 3, 8}, {1, 3, 10},
      -----------------------------------------------------------------------
      {2, 3, 8}, {2, 3, 9}, {2, 6, 8}, {2, 6, 9}, {3, 7, 9}, {3, 7, 10}, {4,
      -----------------------------------------------------------------------
      5, 9}, {4, 5, 10}, {4, 6, 8}, {4, 6, 9}, {5, 7, 9}, {5, 7, 10}}

o35 : List
i36 : assert (isSimplicial Bl7 and isProjective Bl7)
i37 : Bl8 = toricBlowup ({0}, X);
i38 : Bl9 = toricBlowup ({7}, Bl8);
i39 : assert (rays Bl9 === rays X)
i40 : assert (isSimplicial Bl9 and isProjective Bl9)

Caveat

The method assumes that the list v corresponds to a primitive vector. In other words, the greatest common divisor of its entries is one. The method also assumes that v lies in the relative interior of the cone corresponding to s. If either of these conditions fail, then the output will not necessarily be a well-defined normal toric variety.

See also