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

## Synopsis

• Usage:
normalToricVariety V
• Function: normalToricVariety
• Inputs:
• V, , of integers; each column is the lattice vertex of the polytope
• Optional inputs:
• CoefficientRing => a ring, default value QQ, the coefficient ring of the total coordinate ring
• MinimalGenerators => , default value false, an option which specifics whether to compute minimal generators
• Variable => , default value x, the base symbol for the indexed variables in the total coordinate ring
• WeilToClass => , default value null, allows one to specify the map from the group of torus-invariant Weil divisors to the class group
• Outputs:

## Description

This method makes a NormalToricVariety from the polytope with vertices corresponding to the columns of the matrix V. 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' = projectiveSpace 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, max X o9 = (| 1 -1 1 -1 1 -1 1 -1 |, {{0, 1, 2, 3}, {0, 1, 4, 5}, {0, 2, 4, 6}, | 1 1 -1 -1 1 1 -1 -1 | | 1 1 1 1 -1 -1 -1 -1 | ------------------------------------------------------------------------ {1, 3, 5, 7}, {2, 3, 6, 7}, {4, 5, 6, 7}}) o9 : Sequence```
The optional argument MinimalGenerators specifics whether to compute the vertices of the polytope defined as the convex hull of the columns of the matrix A.
 `i10 : FF1 = normalToricVariety matrix {{0,1,0,2},{0,0,1,1}};` ```i11 : rays FF1 o11 = {{1, 0}, {0, 1}, {-1, 1}, {0, -1}} o11 : List``` ```i12 : max FF1 o12 = {{0, 1}, {0, 3}, {1, 2}, {2, 3}} o12 : List``` `i13 : FF1' = hirzebruchSurface 1;` ```i14 : rays FF1 === rays FF1' o14 = true``` ```i15 : max FF1 === max FF1' o15 = true``` ```i16 : V = 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 V;` ```i18 : max notFF1 o18 = {{0, 1}, {0, 3}, {1, 2}, {2, 3}, {3}} o18 : List``` ```i19 : isWellDefined notFF1 o19 = false``` `i20 : FF1'' = normalToricVariety(V, MinimalGenerators => true);` ```i21 : rays FF1'' == rays FF1 o21 = true``` ```i22 : max FF1'' == max FF1 o22 = true```