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

normalToricVariety(Matrix) -- make a normal toric variety from a polytope

Synopsis

Description

This method makes a NormalToricVariety from the polytope with vertices corresponding to the columns of the matrix VertMat. In particular, the associated fan is the INNER normal fan of the polytope.

The first example shows how projective 2-space is obtained from a triangle.

i1 : PP2 = normalToricVariety matrix {{0,1,0},{0,0,1}};
i2 : rays PP2

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

o2 : List
i3 : max PP2

o3 = {{0, 1}, {0, 2}, {1, 2}}

o3 : List
i4 : PP2' = toricProjectiveSpace 2;
i5 : set rays PP2 === set rays PP2'

o5 = true
i6 : max PP2 === max PP2'

o6 = true

The second example makes the toric variety associated to the hypercube in affine 3-space.

i7 : X = normalToricVariety (id_(ZZ^3) | -id_(ZZ^3));
i8 : isSimplicial X

o8 = false
i9 : transpose matrix rays X

o9 = | 1 -1 1  -1 1  -1 1  -1 |
     | 1 1  -1 -1 1  1  -1 -1 |
     | 1 1  1  1  -1 -1 -1 -1 |

              3        8
o9 : Matrix ZZ  <--- ZZ
i10 : max X

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

o10 : List

The optional argument MinimalGenerators specifics whether to compute the vertices of the polytope defined as the convex hull of the columns of the matrix VertMat.

i11 : FF1 = normalToricVariety matrix {{0,1,0,2},{0,0,1,1}};
i12 : rays FF1

o12 = {{1, 0}, {0, 1}, {-1, 1}, {0, -1}}

o12 : List
i13 : max FF1

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

o13 : List
i14 : FF1' = hirzebruchSurface 1;
i15 : assert (rays FF1 === rays FF1' and max FF1 === max FF1')
i16 : VertMat = matrix {{0,0,1,1,2},{0,1,0,1,1}}

o16 = | 0 0 1 1 2 |
      | 0 1 0 1 1 |

               2        5
o16 : Matrix ZZ  <--- ZZ
i17 : notFF1 = normalToricVariety VertMat;
i18 : max notFF1

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

o18 : List
i19 : isWellDefined notFF1

o19 = false
i20 : FF1'' = normalToricVariety (VertMat, MinimalGenerators => true);
i21 : assert (rays FF1'' == rays FF1 and max FF1'' == max FF1)
i22 : assert isWellDefined FF1''

See also