# isSmooth(NormalToricVariety) -- whether a normal toric variety is smooth

## Synopsis

• Usage:
isSmooth X
• Function: isSmooth
• Inputs:
• Outputs:
• , that is true if the minimal nonzero lattice points on the rays in each maximal cone in the associated fan of form part of a -basis

## Description

A normal toric variety is smooth if every cone in its fan is smooth and a cone is smooth if its minimal generators are linearly independent over . In fact, the following conditions on a normal toric variety X are equivalent:

• X is smooth,
• every torus-invariant Weil divisor on X is Cartier,
• the Picard group of X equals the class group of X,
• X has no singularities.

Many of our favourite normal toric varieties are smooth.

 `i1 : PP1 = toricProjectiveSpace 1;` `i2 : assert (isSmooth PP1 and isProjective PP1)` `i3 : FF7 = hirzebruchSurface 7;` `i4 : assert (isSmooth FF7 and isProjective FF7)` `i5 : AA3 = affineSpace 3;` `i6 : assert (isSmooth AA3 and not isComplete AA3 and # max AA3 === 1)` `i7 : X = smoothFanoToricVariety (4,120);` `i8 : assert (isSmooth X and isProjective X and isFano X)` `i9 : U = normalToricVariety ({{4,-1},{0,1}},{{0},{1}});` `i10 : assert (isSmooth U and not isComplete U)`

However, not all normal toric varieties are smooth.

 `i11 : P12234 = weightedProjectiveSpace {1,2,2,3,4};` `i12 : assert (not isSmooth P12234 and isSimplicial P12234 and isProjective P12234)` `i13 : C = normalToricVariety ({{4,-1},{0,1}},{{0,1}});` `i14 : assert (not isSmooth C and isSimplicial C and # max C === 1)` `i15 : Q = normalToricVariety ({{1,0,0},{0,1,0},{0,0,1},{1,1,-1}},{{0,1,2,3}});` `i16 : assert (not isSmooth Q and not isSimplicial Q and not isComplete Q)` `i17 : Y = normalToricVariety ( id_(ZZ^3) | - id_(ZZ^3));` `i18 : assert (not isSmooth Y and not isSimplicial Y and isProjective Y)`