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

## Synopsis

• Function: normalToricVariety
• Usage:
normalToricVariety VertMat
• Inputs:
• VertMat, , of integers; each column is the lattice vertex of the polytope
• Optional inputs:
• CoefficientRing => a ring, default value QQ, that specifies the coefficient ring of the total coordinate ring
• MinimalGenerators => , default value false, that specifies whether to compute minimal generators
• Variable => , default value x, that specifies the base name for the indexed variables in the total coordinate ring
• WeilToClass => , default value null, that specifies the map from the group of torus-invariant Weil divisors to the class group
• Outputs:
• , the normal toric variety determined by the polytope

## Description

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