next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
NormalToricVarieties :: isWellDefined(NormalToricVariety)

isWellDefined(NormalToricVariety) -- whether a toric variety is well-defined

Synopsis

Description

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.

i1 : for d from 1 to 6 list isWellDefined projectiveSpace d

o1 = {true, true, true, true, true, true}

o1 : List
The second examples show that a randomly selected Kleinschmidt toric variety and a weighted projective space are also well-defined.
i2 : setRandomSeed(currentTime());
i3 : a = sort apply(3, i -> random(7))

o3 = {0, 0, 4}

o3 : List
i4 : isWellDefined kleinschmidt(4,a)

o4 = true
i5 : q = apply(5, j -> random(1,9));
i6 : while not all(subsets(q,#q-1), s -> gcd s === 1) do (
            q = apply(5, j -> random(1,9)));
i7 : q

o7 = {9, 8, 4, 9, 2}

o7 : List
i8 : isWellDefined weightedProjectiveSpace q

o8 = false
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.
i9 : Sigma = max projectiveSpace 2;
i10 : X1 = normalToricVariety({{-1,-1},{1,0},{0,1},{-1,0}},Sigma);
i11 : isWellDefined X1

o11 = false
i12 : debugLevel = 1;
i13 : isWellDefined X1             
-- some ray does not appear in maximal cone

o13 = false
i14 : Sigma' = {{0,1},{0,3},{1,2},{2,3},{3}};
i15 : X2 = normalToricVariety({{-1,0},{0,-1},{1,-1},{0,1}},Sigma');
i16 : isWellDefined X2
-- some cone is not maximal

o16 = false
i17 : X3 = normalToricVariety({{-1,-1},{1,0},{0,1,1}},Sigma);
i18 : isWellDefined X3
-- not all rays have the same length

o18 = false
i19 : X4 = normalToricVariety({{-1,-1/1},{1,0},{0,1}},Sigma);
i20 : isWellDefined X4
-- not all rays are lists of integers

o20 = false
i21 : X5 = normalToricVariety({{1,0},{0,1},{-1,0}},{{0,1,2}});
i22 : isWellDefined X5
-- not all maximal cones are strongly convex

o22 = false
i23 : X6 = normalToricVariety({{1,0},{0,1},{1,1}},{{0,1,2}});
i24 : isWellDefined X6
-- the rays are not the primitive generators

o24 = false
i25 : X7 = normalToricVariety({{1,0,0},{0,1,0},{0,0,2}},{{0,1,2}});
i26 : isWellDefined X7
-- the rays are not the primitive generators

o26 = false
i27 : X8 = normalToricVariety({{1,0},{0,1},{1,1}},{{0,1},{1,2}});
i28 : isWellDefined X8
-- intersection of cones is not a cone

o28 = false

See also