Macaulay2 / Macaulay2/M2

Odd behavior of gb / poincare

Open
#732 5 comments 0 reactions 1 assignee Claimed by @mikestillman View on GitHub
Engine Gröbner bases
Dominant language
Macaulay2
Stars
435
Forks
297
Avg merge
4d 20h
Merged PRs (30d)
11

Description

Let's run the following program:

```
i1 : R=QQ[a..k]

o1 = R

o1 : PolynomialRing

i2 : I=trim ideal(a*b+c*d,a*e+b*f+c*g+d*h);

o2 : Ideal of R

i3 : M=cokernel gens I

o3 = cokernel | ae+bf+cg+dh ab+cd |

o3 : R-module, quotient of R^1

i4 : poincare M

o4 = 1 - 2T^2 + T^4

o4 : ZZ[T]

i5 : M.cache.poincare

o5 = 1 - 2T^2 + T^4

o5 : ZZ[T]

i6 : dim I

o6 = 9
```

Basically, I compute the poincare polynomial of some ideal. really internally that's the poincare polynomial of the module M which is the quotient module. and I check that M has correctly cached that poincare polynomial for future use. So far, so good.
Now I restart M2 and do the following (slightly weird) thing:

```
i1 : R=QQ[a..k]

o1 = R

o1 : PolynomialRing

i2 : I=trim ideal(a*b+c*d,a*e+b*f+c*g+d*h);

o2 : Ideal of R

i3 : M=cokernel gens I

o3 = cokernel | ae+bf+cg+dh ab+cd |

o3 : R-module, quotient of R^1

i4 : use degreesRing R

o4 = ZZ[T]

o4 : PolynomialRing

i5 : M.cache.poincare=1-2*T^2+T^4;

i6 : dim I

o6 = 10
```

I just tried to be helpful and gave the poincare polynomial to M so M2 doesn't have to compute it. surprise: the dim of I (or M) comes out wrong.
what happened? to see the problem let's check what the Groebner basis was.
in the first case one gets

```
i8 : leadTerm gb presentation M

o8 = | ae ab cde |
```

which is fine, whereas in the second one gets

```
i6 : leadTerm gb presentation M

o6 = | ae ab |
```

which is incorrect. how did it get there? I'd have to go through the gb code and figure out how it uses the information on the poincare polynomial. but one thing is sure, something is fishy...

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.