If $\alpha$ is the degree of the variable d, then M is supported in degrees that are multiples of $\alpha$. The part of M sitting in degree $d \cdot \alpha$ matches X_{-d}. If $\alpha = -1$, then we have X_d = M_d for all d.
i1 : R = QQ[x, y, z]; M = coker vars R; C = res M -- a Koszul complex 1 3 3 1 o3 = R <-- R <-- R <-- R <-- 0 0 1 2 3 4 o3 : ChainComplex |
i4 : Q = R[d, Degrees => {-1}] / ideal(d^2); m = chainModule(Q, C) o5 = cokernel {3, 3} | d 0 0 0 0 0 0 0 | {2, 2} | -z d 0 0 0 0 0 0 | {2, 2} | y 0 d 0 0 0 0 0 | {2, 2} | -x 0 0 d 0 0 0 0 | {1, 1} | 0 y z 0 d 0 0 0 | {1, 1} | 0 -x 0 z 0 d 0 0 | {1, 1} | 0 0 -x -y 0 0 d 0 | {0, 0} | 0 0 0 0 -x -y -z d | 8 o5 : Q-module, quotient of Q |
i6 : (F, f) = flattenRing Q; |
i7 : matrix table(10, 10, (i, j) -> hilbertFunction({j,i}, f ** m)) o7 = | 1 0 0 0 0 0 0 0 0 0 | | 3 3 0 0 0 0 0 0 0 0 | | 6 9 3 0 0 0 0 0 0 0 | | 10 18 9 1 0 0 0 0 0 0 | | 15 30 18 3 0 0 0 0 0 0 | | 21 45 30 6 0 0 0 0 0 0 | | 28 63 45 10 0 0 0 0 0 0 | | 36 84 63 15 0 0 0 0 0 0 | | 45 108 84 21 0 0 0 0 0 0 | | 55 135 108 28 0 0 0 0 0 0 | 10 10 o7 : Matrix ZZ <--- ZZ |
i8 : matrix table(10, 10, (i, j) -> hilbertFunction(i, C_j)) o8 = | 1 0 0 0 0 0 0 0 0 0 | | 3 3 0 0 0 0 0 0 0 0 | | 6 9 3 0 0 0 0 0 0 0 | | 10 18 9 1 0 0 0 0 0 0 | | 15 30 18 3 0 0 0 0 0 0 | | 21 45 30 6 0 0 0 0 0 0 | | 28 63 45 10 0 0 0 0 0 0 | | 36 84 63 15 0 0 0 0 0 0 | | 45 108 84 21 0 0 0 0 0 0 | | 55 135 108 28 0 0 0 0 0 0 | 10 10 o8 : Matrix ZZ <--- ZZ |
The object chainModule is a method function.