-- -*- M2-comint -*- {* hash: 1368581577 *} 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); 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 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 i12 :