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 $\QQ$. In fact, the following conditions on a normal toric variety $X$ are equivalent:
For more information, see Proposition 4.2.7 in Cox-Little-Schenck's Toric Varieties.
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) |