- Usage:
`makeSimplical X`

- Function: makeSimplicial
- Inputs:
`X`, a normal toric variety

- Optional inputs:
`Strategy =>`an integer, default value 0, either`0`or`1`

- Outputs:
- a normal toric variety, that is simplicial

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

*X*is simplicial;- every Weil divisor on
*X*has a positive integer multiple that is Cartier; - the Picard group of
*X*has finite index in the class group of*X*; *X*has only finite quotient singularities.

Given a normal toric variety, this method makes a simplicial toric variety with the same rays by triangulating the non-simplicial maximal cones. For the `0` strategy, the triangulation is constructed by repeated regular subdivisions using random integral weight vectors. For the `1` strategy, the triangulation is constructed by repeated pushing subdivisions (i.e. toricBlowups at a given ray).

i1 : X = normalToricVariety (id_(ZZ^3) | - id_(ZZ^3)); |

i2 : assert not isSimplicial X |

i3 : Y1 = makeSimplicial X; |

i4 : assert isSimplicial Y1 |

i5 : assert (rays Y1 === rays X) |

i6 : max Y1 o6 = {{0, 1, 3}, {0, 1, 5}, {0, 2, 3}, {0, 2, 6}, {0, 4, 5}, {0, 4, 6}, {1, ------------------------------------------------------------------------ 3, 7}, {1, 5, 7}, {2, 3, 7}, {2, 6, 7}, {4, 5, 7}, {4, 6, 7}} o6 : List |

i7 : max X o7 = {{0, 1, 2, 3}, {0, 1, 4, 5}, {0, 2, 4, 6}, {1, 3, 5, 7}, {2, 3, 6, 7}, ------------------------------------------------------------------------ {4, 5, 6, 7}} o7 : List |

i8 : Y2 = makeSimplicial(X, Strategy => 1); |

i9 : assert isSimplicial Y2 |

i10 : assert (rays Y2 === rays X) |

i11 : max Y2 o11 = {{0, 1, 3}, {0, 1, 5}, {0, 2, 3}, {0, 2, 6}, {0, 4, 5}, {0, 4, 6}, {1, ----------------------------------------------------------------------- 3, 7}, {1, 5, 7}, {2, 3, 7}, {2, 6, 7}, {4, 5, 7}, {4, 6, 7}} o11 : List |

i12 : max Y1 == max Y2 o12 = true |

If the initial toric variety is simplicial, then this method simply returns it.

i13 : PP3 = toricProjectiveSpace 3; |

i14 : assert isSimplicial PP3 |

i15 : Z = makeSimplicial PP3; |

i16 : assert (rays Z === rays PP3 and max Z === max PP3) |

- Resolution of singularities
- isSimplicial(NormalToricVariety) -- whether a normal toric variety is simplicial