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

## Synopsis

• Function: toricBlowup
• Usage:
toricBlowup (s, X, v)
• Inputs:
• s, a list, of integers indexing a proper torus orbit
• X, ,
• v, a list, of integers giving a vector in the relative interior of the cone corresponding to s (optional)
• Outputs:
• , obtained by blowing up X along the torus orbit indexed by s

## 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.