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

## Synopsis

• Function: orbits
• Usage:
orbits X
• Inputs:
• X, ,
• Outputs:
• , whose keys are the dimensions of the torus orbits in X and whose values are lists of lists of integers indexing the torus orbits

## 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 rojective 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.