A pair of lists
(Rho,Sigma) correspond to a well-defined normal toric variety if the following conditions hold:
- the union of the elements of Sigma equals the set of indices of elements of Rho
- no element of Sigma is properly contained in another element of Sigma
- all elements of Rho have the same length
- all elements of Rho are lists of integers
- the rays indexed by an element of Sigma generate a strongly convex cone
- the rays indexed by an element of Sigma are the unique minimal lattice points for the cone they generate
- the intersection of the cones associated to two elements of Sigma is a face of each cone.
The first examples illustrate that small projective spaces are well-defined.
for d from 1 to 6 list isWellDefined projectiveSpace d |
The second examples show that a randomly selected Kleinschmidt toric variety and a weighted projective space are also well-defined.
setRandomSeed(currentTime()); |
a = sort apply(3, i -> random(7)) |
isWellDefined kleinschmidt(4,a) |
q = apply(5, j -> random(1,9)); |
while not all(subsets(q,#q-1), s -> gcd s === 1) do (
q = apply(5, j -> random(1,9))); |
q |
isWellDefined weightedProjectiveSpace q |
The next eight examples illustrate various ways that two lists can fail to define a normal toric variety. By making the current debugging level greater than one, one gets some addition information about the nature of the failure.
Sigma = max projectiveSpace 2; |
X1 = normalToricVariety({{-1,-1},{1,0},{0,1},{-1,0}},Sigma); |
isWellDefined X1 |
debugLevel = 1; |
isWellDefined X1 |
Sigma' = {{0,1},{0,3},{1,2},{2,3},{3}}; |
X2 = normalToricVariety({{-1,0},{0,-1},{1,-1},{0,1}},Sigma'); |
isWellDefined X2 |
X3 = normalToricVariety({{-1,-1},{1,0},{0,1,1}},Sigma); |
isWellDefined X3 |
X4 = normalToricVariety({{-1,-1/1},{1,0},{0,1}},Sigma); |
isWellDefined X4 |
X5 = normalToricVariety({{1,0},{0,1},{-1,0}},{{0,1,2}}); |
isWellDefined X5 |
X6 = normalToricVariety({{1,0},{0,1},{1,1}},{{0,1,2}}); |
isWellDefined X6 |
X7 = normalToricVariety({{1,0,0},{0,1,0},{0,0,2}},{{0,1,2}}); |
isWellDefined X7 |
X8 = normalToricVariety({{1,0},{0,1},{1,1}},{{0,1},{1,2}}); |
isWellDefined X8 |