This method makes a normal toric variety 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 plane 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 |
i7 : assert (isWellDefined PP2 and isWellDefined PP2') |
The second example makes the toric variety associated to the hypercube in $3$-space.
i8 : X = normalToricVariety (id_(ZZ^3) | -id_(ZZ^3)); |
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 |
i11 : assert (isWellDefined X and not isSimplicial X) |
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.
i12 : FF1 = normalToricVariety matrix {{0,1,0,2},{0,0,1,1}}; |
i13 : assert isWellDefined FF1 |
i14 : rays FF1 o14 = {{1, 0}, {0, 1}, {-1, 1}, {0, -1}} o14 : List |
i15 : max FF1 o15 = {{0, 1}, {0, 3}, {1, 2}, {2, 3}} o15 : List |
i16 : FF1' = hirzebruchSurface 1; |
i17 : assert (rays FF1 === rays FF1' and max FF1 === max FF1') |
i18 : VertMat = matrix {{0,0,1,1,2},{0,1,0,1,1}} o18 = | 0 0 1 1 2 | | 0 1 0 1 1 | 2 5 o18 : Matrix ZZ <--- ZZ |
i19 : notFF1 = normalToricVariety VertMat; |
i20 : max notFF1 o20 = {{0, 1}, {0, 3}, {1, 2}, {2, 3}, {3}} o20 : List |
i21 : isWellDefined notFF1 o21 = false |
i22 : FF1'' = normalToricVariety (VertMat, MinimalGenerators => true); |
i23 : assert (rays FF1'' == rays FF1 and max FF1'' == max FF1) |
i24 : assert isWellDefined FF1'' |