Macaulay2 » Documentation
Packages » NormalToricVarieties :: orbits(NormalToricVariety)
next | previous | forward | backward | up | index | toc

orbits(NormalToricVariety) -- make a hashtable indexing the torus orbits (a.k.a. cones in the fan)

Synopsis

Description

A normal toric variety is a disjoint union of its orbits under the action of its algebraic torus. These orbits are in bijection with the cones in the associated fan. Each cone is determined by the rays it contains. In this package, the rays are ordered and indexed by nonnegative integers: $0, 1, \dots,n$. Using this indexing, an orbit or cone corresponds to a sublist of $\{0,\dots,n\}$; the entries index the rays that generate the cone.

The projective plane has three fixed points and three fixed curves (under the action of its torus), and projective $3$-space has four fixed points, six fixed curves, and four divisors. More generally, the orbits of projective $(n-1)$-space are enumerated by the $n$-th row of Pascal's triangle.

i1 : O2 = orbits toricProjectiveSpace 2

o1 = HashTable{0 => {{0, 1}, {0, 2}, {1, 2}}}
               1 => {{0}, {1}, {2}}
               2 => {{}}

o1 : HashTable
i2 : (#O2#0, #O2#1, #O2#2)

o2 = (3, 3, 1)

o2 : Sequence
i3 : O3 = orbits toricProjectiveSpace 3

o3 = HashTable{0 => {{0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}}    }
               1 => {{0, 1}, {0, 2}, {0, 3}, {1, 2}, {1, 3}, {2, 3}}
               2 => {{0}, {1}, {2}, {3}}
               3 => {{}}

o3 : HashTable
i4 : apply (4, k -> #O3#k)

o4 = {4, 6, 4, 1}

o4 : List
i5 : apply (5, k -> # (orbits toricProjectiveSpace 4)#k)

o5 = {5, 10, 10, 5, 1}

o5 : List
i6 : apply (6, k -> # (orbits toricProjectiveSpace 5)#k)

o6 = {6, 15, 20, 15, 6, 1}

o6 : List

Here is a non-simplicial example.

i7 : X = normalToricVariety (id_(ZZ^3) | -id_(ZZ^3));
i8 : assert not isSimplicial X
i9 : OX = orbits X

o9 = HashTable{0 => {{0, 1, 2, 3}, {0, 1, 4, 5}, {0, 2, 4, 6}, {1, 3, 5, 7}, {2, 3, 6, 7}, {4, 5, 6, 7}}            }
               1 => {{0, 1}, {0, 2}, {0, 4}, {1, 3}, {1, 5}, {2, 3}, {2, 6}, {3, 7}, {4, 5}, {4, 6}, {5, 7}, {6, 7}}
               2 => {{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}}
               3 => {{}}

o9 : HashTable
i10 : apply (1+dim X, k -> #OX#k)

o10 = {6, 12, 8, 1}

o10 : List

The following degenerate example has no fixed points.

i11 : U = normalToricVariety ({{4,-1,0},{0,1,0}},{{0,1}});
i12 : assert isDegenerate U
i13 : OU = orbits U

o13 = HashTable{0 => {}        }
                1 => {{0, 1}}
                2 => {{0}, {1}}
                3 => {{}}

o13 : HashTable
i14 : apply (4, k -> #OU#k)

o14 = {0, 1, 2, 1}

o14 : List
i15 : assert (#OU#0 == 0)

To avoid repeating a computation, the package caches the result in the CacheTable of the normal toric variety.

See also

Ways to use this method: