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
|