next | previous | forward | backward | up | top | index | toc | Macaulay2 website
FourierMotzkin :: Applications to multigraded polynomial rings

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.