Applications to multigraded polynomial rings -- finding Heft

A vector configuration is acyclic if it has a positive linear functional. Using fourierMotzkin we can determine if a vector configuration has a positive linear functional.

Given an acyclic vector configuration (as a list of lists of ZZ or QQ), the function findHeft finds a List representing a positive linear functional.

 i1 : findHeft := vectorConfig -> ( A := transpose matrix vectorConfig; B := (fourierMotzkin A)#0; r := rank source B; heft := first entries (matrix{toList(r:-1)} * transpose B); g := gcd heft; if g > 1 then heft = apply(heft, h -> h //g); heft);

If a polynomial ring as a multigrading determined by a vector configuration, then a positive linear functional plays the role of a Heft vector.

For example, S is the Cox homogeneous coordinate ring for second Hirzebruch surface (under an appropriate choice of basis for the Picard group).

 i2 : vectorConfig = {{1,0},{-2,1},{1,0},{0,1}} o2 = {{1, 0}, {-2, 1}, {1, 0}, {0, 1}} o2 : List i3 : hft = findHeft vectorConfig o3 = {1, 3} o3 : List i4 : S = QQ[x_1,x_2,y_1,y_2, Heft => hft, Degrees => vectorConfig]; i5 : irrelevantIdeal = intersect(ideal(x_1,x_2), ideal(y_1,y_2)) o5 = ideal (x y , x y , x y , x y ) 2 1 1 1 2 2 1 2 o5 : Ideal of S i6 : res (S^1/irrelevantIdeal) 1 4 4 1 o6 = S <-- S <-- S <-- S <-- 0 0 1 2 3 4 o6 : ChainComplex
The Betti numbers correspond to the f-vector of the polytope associated to the second Hirzebruch surface.

Similarly, R is the Cox homogeneous coordinate ring for the blowup of the projective plane at three points (under an appropriate choice of basis for the Picard group).

 i7 : vectorConfig = {{1,0,0,0},{0,1,0,0},{0,-1,1,0},{0,1,-1,1}, {1,0,-1,1},{-1,0,0,1}} o7 = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, -1, 1, 0}, {0, 1, -1, 1}, {1, 0, -1, ------------------------------------------------------------------------ 1}, {-1, 0, 0, 1}} o7 : List i8 : hft = findHeft vectorConfig o8 = {4, 4, 7, 7} o8 : List i9 : R = QQ[x_1..x_6, Heft => hft, Degrees => vectorConfig]; i10 : irrelevantIdeal = ideal(x_3*x_4*x_5*x_6,x_1*x_4*x_5*x_6,x_1*x_2*x_5*x_6, x_1*x_2*x_3*x_6,x_2*x_3*x_4*x_5,x_1*x_2*x_3*x_4) o10 = ideal (x x x x , x x x x , x x x x , x x x x , x x x x , x x x x ) 3 4 5 6 1 4 5 6 1 2 5 6 1 2 3 6 2 3 4 5 1 2 3 4 o10 : Ideal of R i11 : res (R^1/irrelevantIdeal) 1 6 6 1 o11 = R <-- R <-- R <-- R <-- 0 0 1 2 3 4 o11 : ChainComplex
Again, the Betti numbers correspond to the f-vector of the polytope associated to this toric variety.

For more information about resolutions of the irrelevant ideal of a toric variety, see subsection 4.3.6 in Ezra Miller and Bernd Sturmfels' Combinatorial commutative algebra, Graduate Texts in Mathematics 277, Springer-Verlag, New York, 2005.

For more information about vector configurations is subsections 6.2 & 6.4 in Gunter M. Ziegler's Lectures on Polytopes, Graduate Texts in Mathematics 152, Springer-Verlag, New York, 1995.