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'' |