Return true if and only if the affine variety associated with the cone C is singular.
Return true if and only if the affine variety associated with the cone C is nonsingular.
Return true if and only if the polyhedron P is a smooth polytope.
Return true if and only if the cone C has (the primitive points on its) rays contained in an affine hyperplane that is defined by an integral equation.
Return true if and only if the polyhedron P is reflexive; i.e. P and its dual Pv are both integral polytopes.
Return true if and only if the cone C has (the primitive points on its) rays contained in an affine hyperplane.
The Gorenstein index of the affine variety corresponding to the cone C together with the dual vector determining the equation of the hyperplane. (It is an error if C is not Q-Gorenstein.)
The Gorenstein index of the lattice polytope P; i.e. the smallest positive integer k such that kPv is an integral polytope.
Return true if and only if the singularity of the affine variety associated to the cone C is isolated.
Return true if and only if the cone C or polytope P is simplicial.
Return true if and only if the singularity of the affine variety associated to the cone C is (at worst) terminal.
Return true if and only if the singularity of the affine variety associated to the cone C is (at worst) canonical.
Return true if and only if the polyhedron P is a Fano polytope (i.e. of maximum dimension in the ambient lattice, containing the origin strictly in its interior, with primitive lattice vertices).
> L := ToricLattice(3); > v := L ! [1/5,2/5,3/5]; > LL,emb := AddVectorToLattice(v); > C := PositiveQuadrant(L); > CC := Image(emb,C); > CC; Cone CC with 3 generators: (1, 0, 0), (0, 1, 0), (3, 1, 5)We can check that this really is terminal and compute its Gorenstein index, the least positive multiple of the canonical class that is Cartier.
> IsTerminal(CC); true > GorensteinIndex(CC); 5 (1, 1, -3/5)We can compute a resolution of singularities of this cone, the analogue of a simplicial subdivision for cones, although we must treat it as a fan to do so.
> F := Fan(CC); > F; Fan F with 3 rays: (0, 1, 0), (1, 0, 0), (3, 1, 5) and one cone with indices: [ 1, 2, 3 ] > Resolution(F); Fan with 8 rays: (0, 1, 0), (1, 0, 0), (3, 1, 5), (2, 1, 2), (1, 1, 1), (3, 1, 3), (3, 1, 4), (2, 1, 3) and 11 conesNote that this is not a minimal resolution: such a resolution would only need to subdivide at the four additional rays at the (original) lattice points 1/5(1, 2, 3), 1/5(2, 4, 1), 1/5(3, 1, 4) and 1/5(4, 3, 2).