Different results on Hilbert series in sage and Macaulay2

89 Views Asked by At

I am recently trying to compute some complicated Hilbert series. I tried sage and Macaulay2.

More precisely, I tried the following command in M2: SS = QQ[ x1, x2, x3, x7, x8, x9, x13, x14, x17, x4, x5, x6, x10, x11, x12, x15, x16, Degrees=> {4, 4, 4, 8, 4, 4, 8, 4, 8, 6, 6, 6, 6, 6, 6, 6, 6}]

hilbertSeries ideal( x2 * x2 - x1 * x8 , x2 * x3 - x1 * x9 , x2 * x6 - x1 * x12 , x3 * x3 -x1 * x14 , x3 * x5 - x1 * x16 , x1 * x11 - x2 * x5 + x3 * x6 , x3 * x8 - x2 * x9 , x3 * x9 - x2 * x14 , x3 * x10 - x2 * x15 , x1 * x15 + x3 * x11 - x2 * x16 - x3 * x4 , -x1 * x10 + x3 * x12 +x2 * x4 , -x1 * x10 - x2 * x11 + x2 * x4 + x5 * x8 , x5 x9 - x2 * x16 , -(x1 * x17/2) + x5 * x11 + x3 * x7/2 + x4 * x5/2 , x1 * x13 + x5 * x12 -x2 * x7 + x4 * x6 , x5 * x14 - x3 * x16 , x5 * x16 , x6 * x8 - x2 * x12 , -x1 * x10 + x2 * x4 + x6 * x9 , x6 * x10 + x4 * x12 , -x1 * x13 + x6 * x11 + x2 * x7 - x4 * x6 , x6 * x12 , -x1 x15 + x6 * x14 + x3 * x4 , x5 * x10 - x3 * x13 + x6 * x15 + x2 * x17 , -(x1 * x17/2) + x6 * x16 + x3 * x7/2 + x4 * x5/2 , -3x5 * x10 - x4 * x11 + x3 * x13 - 2x2 * x17 + x7 * x9 , x7 * x11 - x5 * x13 + x6 * x17 , x7 * x12 - x6 * x13 , x7 * x14 - 2* x5 * x15 - x4 * x16 - x3 * x17 , x7 * x16 - x5 * x17 , x9 * x9 - x8 * x14 , x9 * x10 - x8 * x15 , x9 * x11 + x2 * x15 - x8 * x16 - x4 * x9 , -x2 * x10 + x9 * x12 +x4 * x8 , x10 * x11 + 2* x4 * x10 + x9 * x13 - x8 * x17 , x10 * x14 - x9 * x15 , x10 * x15 , x11 * x12 + x4 * x12 + x2 * x13 - x7 * x8 , x11 * x14 - x4 * x14 + x3 * x15 - x9 * x16 , x10 * x16 + x11 * x15 - x4 * x15 , x11 * x16 - x5 * x15 - x4 * x16 , x12 * x14 - x2 * x15 + x4 * x9 , x4 * x10 + x12 * x15 , 2* x5 * x10 + x4 * x11 + x12 * x16 - x3 * x13 + x2 * x17 , -x7 * x10 + x12 * x17 + x4 * x13 , x10 * x16 + x13 * x14 + x4 * x15 - x9 * x17 , x13 * x15 - x10 * x17 , -x11 * x17 + x13 * x16 - x7 * x15 + x4 * x17 )

Then I get the Hilbert series whose expansion is $$ 1 + 6 T^4 + 8 T^6 + 18 T^8 + 30 T^{10} +...$$

I then tried the same problem in sage with the command:

from sage.rings.polynomial.hilbert import hilbert_poincare_series

names='( x1, x2, x3, x7, x8, x9, x13, x14, x17, x4, x5, x6, x10, x11, x12, x15, x16)'

Igens = ['x2 * x2 - x1 * x8' , ' x2 * x3 - x1 * x9' , ' x2 * x6 - x1 * x12' , ' x3 * x3 -x1 * x14' , ' x3 * x5 - x1 * x16' , ' x1 * x11 - x2 * x5 + x3 * x6' , ' x3 * x8 - x2 * x9' , ' x3 * x9 - x2 * x14' , ' x3 * x10 - x2 * x15' , ' x1 * x15 + x3 * x11 - x2 * x16 - x3 * x4' , ' -x1 * x10 + x3 * x12 +x2 * x4' , ' -x1 * x10 - x2 * x11 + x2 * x4 + x5 * x8' , ' x5 x9 - x2 * x16' , ' -(x1 * x17/2) + x5 * x11 + x3 * x7/2 + x4 * x5/2' , ' x1 * x13 + x5 * x12 -x2 * x7 + x4 * x6' , ' x5 * x14 - x3 * x16' , ' x5 * x16' , ' x6 * x8 - x2 * x12' , ' -x1 * x10 + x2 * x4 + x6 * x9' , ' x6 * x10 + x4 * x12' , ' -x1 * x13 + x6 * x11 + x2 * x7 - x4 * x6' , ' x6 * x12' , ' -x1 x15 + x6 * x14 + x3 * x4' , ' x5 * x10 - x3 * x13 + x6 * x15 + x2 * x17' , ' -(x1 * x17/2) + x6 * x16 + x3 * x7/2 + x4 * x5/2' , ' -3x5 * x10 - x4 * x11 + x3 * x13 - 2x2 * x17 + x7 * x9' , ' x7 * x11 - x5 * x13 + x6 * x17' , ' x7 * x12 - x6 * x13' , ' x7 * x14 - 2* x5 * x15 - x4 * x16 - x3 * x17' , ' x7 * x16 - x5 * x17' , ' x9 * x9 - x8 * x14' , ' x9 * x10 - x8 * x15' , ' x9 * x11 + x2 * x15 - x8 * x16 - x4 * x9' , ' -x2 * x10 + x9 * x12 +x4 * x8' , ' x10 * x11 + 2* x4 * x10 + x9 * x13 - x8 * x17' , ' x10 * x14 - x9 * x15' , ' x10 * x15' , ' x11 * x12 + x4 * x12 + x2 * x13 - x7 * x8' , ' x11 * x14 - x4 * x14 + x3 * x15 - x9 * x16' , ' x10 * x16 + x11 * x15 - x4 * x15' , ' x11 * x16 - x5 * x15 - x4 * x16' , ' x12 * x14 - x2 * x15 + x4 * x9' , 'x4 * x10 + x12 * x15' , ' 2* x5 * x10 + x4 * x11 + x12 * x16 - x3 * x13 + x2 * x17' , ' -x7 * x10 + x12 * x17 + x4 * x13' , ' x10 * x16 + x13 * x14 + x4 * x15 - x9 * x17' , ' x13 * x15 - x10 * x17' , ' -x11 * x17 + x13 * x16 - x7 * x15 + x4 * x17']

R = singular.ring(0,names,'dp')

I = singular.ideal(Igens)

hilbert_poincare_series(I , grading=(4, 4, 4, 8, 4, 4, 8, 4, 8, 6, 6, 6, 6, 6, 6, 6, 6))

In this case, I get the series with expansion $$1 + 6 t^4 + 8 t^6 + 18 t^8 + 34 t^{10}+...$$

I know the correct result for at $t^{10}$ should be 30, so M2 is correct. But why do I get wrong result in sgaee?

1

There are 1 best solutions below

0
On

Here's the correct way to obtain the Hilbert series in SageMath:

sage: R.<x1, x2, x3, x7, x8, x9, x13, x14, x17, x4,  x5, x6, x10, x11,  x12,  x15,  x16> = PolynomialRing(QQ)
sage: I = R.ideal([x2 * x2 - x1 * x8 ,  x2 * x3 - x1 * x9 ,  x2 * x6 - x1 * x12 ,  x3 * x3 -x1 * x14 ,  x3 * x5 - x1 * x16 ,  x1 * x11 - x2 * x5 + x3 * x6 ,  x3 * x8 - x2 * x9 ,  x3 * x9 - x2 * x14 ,  x3 * x10 - x2 * x15 ,  x1 * x15 + x3 * x11 - x2 * x16 - x3 * x4 ,  -x1 * x10 + x3 * x12 +x2 * x4 ,  -x1 * x10 - x2 * x11 + x2 * x4 + x5 * x8 ,  x5 *x9 - x2 * x16 ,  -(x1 * x17/2) + x5 * x11 + x3 * x7/2 + x4 * x5/2 ,  x1 * x13 + x5 * x12 -x2 * x7 + x4 * x6 ,  x5 * x14 - x3 * x16 ,  x5 * x16 ,  x6 * x8 - x2 * x12 ,  -x1 * x10 + x2 * x4 + x6 * x9 ,  x6 * x10 + x4 * x12 ,  -x1 * x13 + x6 * x11 + x2 * x7 - x4 * x6 ,  x6 * x12 ,  -x1 *x15 + x6 * x14 + x3 * x4 ,  x5 * x10 - x3 * x13 + x6 * x15 + x2 * x17 ,  -(x1 * x17/2) + x6 * x16 + x3 * x7/2 + x4 * x5/2 ,  -3*x5 * x10 - x4 * x11 + x3 * x13 - 2*x2 * x17 + x7 * x9 ,  x7 * x11 - x5 * x13 + x6 * x17 ,  x7 * x12 - x6 * x13 ,  x7 * x14 - 2* x5 * x15 - x4 * x16 - x3 * x17 ,  x7 * x16 - x5 * x17 ,  x9 * x9 - x8 * x14 ,  x9 * x10 - x8 * x15 ,  x9 * x11 + x2 * x15 - x8 * x16 - x4 * x9 ,  -x2 * x10 + x9 * x12 +x4 * x8 ,  x10 * x11 + 2* x4 * x10 + x9 * x13 - x8 * x17 ,  x10 * x14 - x9 * x15 ,  x10 * x15 ,  x11 * x12 + x4 * x12 + x2 * x13 - x7 * x8 ,  x11 * x14 - x4 * x14 + x3 * x15 - x9 * x16 ,  x10 * x16 + x11 * x15 - x4 * x15 ,  x11 * x16 - x5 * x15 - x4 * x16 ,  x12 * x14 - x2 * x15 + x4 * x9 , x4 * x10 + x12 * x15 ,  2* x5 * x10 + x4 * x11 + x12 * x16 - x3 * x13 + x2 * x17 ,  -x7 * x10 + x12 * x17 + x4 * x13 ,  x10 * x16 + x13 * x14 + x4 * x15 - x9 * x17 ,  x13 * x15 - x10 * x17 ,  -x11 * x17 + x13 * x16 - x7 * x15 + x4 * x17])
sage: f = I.hilbert_series(grading=(4, 4, 4, 8, 4, 4, 8, 4, 8, 6, 6, 6, 6, 6, 6, 6, 6))
sage: t = PowerSeriesRing(QQ, 't').gen()
sage: f(t)
1 + 6*t^4 + 8*t^6 + 18*t^8 + 30*t^10 + 64*t^12 + 81*t^14 + 97*t^16 + 170*t^18 + O(t^20)

You were trying to use the hilbert_poincare_series function, which takes as input a monomial ideal (and apparently doesn't do error checking on its input). Your ideal is homogeneous but not a monomial ideal:

sage: I.is_homogeneous()
True
sage: h = next(g for g in I.groebner_basis() if not g.is_monomial()); h
x17^2*x12^2 - 2*x7*x13*x12*x15
sage: h in I
True
sage: all(m in I for (_, m) in h)
False