Roughly speaking, the blowup 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 blowup is the universal way to turn a subvariety into a Cartier divisor.
The blowup of a normal toric variety along a torus orbit closure is also a normal toric variety. The fan associated to the blowup 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
lying the relative interior to the boundary of the star. When the vector
is not specified, the ray corresponding to the sum of all rays in the cone corresponding to
is used.
The simplest example is blowup of the origin in the affine plane. Note that the new ray has the largest index.
i7 : C = normalToricVariety({{1,0,0},{1,1,0},{1,0,1},{1,1,1}},{{0,1,2,3}});
|
i8 : isSimplicial C
o8 = false
|
i9 : Bl1 = blowup({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 : Bl2 = blowup({0,1},C);
|
i13 : rays Bl2
o13 = {{1, 0, 0}, {1, 1, 0}, {1, 0, 1}, {1, 1, 1}, {2, 1, 0}}
o13 : List
|
i14 : max Bl2
o14 = {{0, 2, 4}, {1, 3, 4}, {2, 3, 4}}
o14 : List
|
i15 : Bl3 = blowup({0,1,2,3},C,{5,3,4});
|
i16 : rays Bl3
o16 = {{1, 0, 0}, {1, 1, 0}, {1, 0, 1}, {1, 1, 1}, {5, 3, 4}}
o16 : List
|
i17 : max Bl3
o17 = {{0, 1, 4}, {0, 2, 4}, {1, 3, 4}, {2, 3, 4}}
o17 : List
|
i18 : Bl4 = blowup({0},C);
|
i19 : isSimplicial Bl4
o19 = true
|
i20 : rays Bl4
o20 = {{1, 0, 0}, {1, 1, 0}, {1, 0, 1}, {1, 1, 1}}
o20 : List
|
i21 : max Bl4
o21 = {{0, 1, 3}, {0, 2, 3}}
o21 : List
|
The third collection of examples illustrate some blowups of a non-simplicial projective toric variety.
i22 : X = normalToricVariety (id_(ZZ^3) | (-id_(ZZ^3)));
|
i23 : rays X
o23 = {{1, 1, 1}, {-1, 1, 1}, {1, -1, 1}, {-1, -1, 1}, {1, 1, -1}, {-1, 1,
-----------------------------------------------------------------------
-1}, {1, -1, -1}, {-1, -1, -1}}
o23 : List
|
i24 : max X
o24 = {{0, 1, 2, 3}, {0, 1, 4, 5}, {0, 2, 4, 6}, {1, 3, 5, 7}, {2, 3, 6, 7},
-----------------------------------------------------------------------
{4, 5, 6, 7}}
o24 : List
|
i25 : isSimplicial X
o25 = false
|
i26 : isProjective X
o26 = true
|
i27 : orbits(X,1)
o27 = {{0, 1}, {0, 2}, {0, 4}, {1, 3}, {1, 5}, {2, 3}, {2, 6}, {3, 7}, {4,
-----------------------------------------------------------------------
5}, {4, 6}, {5, 7}, {6, 7}}
o27 : List
|
i28 : Bl5 = blowup({0,2},X);
|
i29 : Bl6 = blowup({6,7},Bl5);
|
i30 : Bl7 = blowup({1,5},Bl6);
|
i31 : rays Bl7
o31 = {{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}}
o31 : List
|
i32 : max Bl7
o32 = {{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}}
o32 : List
|
i33 : isSimplicial Bl7
o33 = true
|
i34 : isProjective Bl7
o34 = true
|
i35 : Bl8 = blowup({0},X);
|
i36 : Bl9 = blowup({7},Bl8);
|
i37 : rays Bl9 === rays X
o37 = true
|
i38 : isSimplicial Bl9
o38 = true
|
i39 : isProjective Bl9
o39 = true
|