pushFwd incorrect behavior on certain rings produced by flattenRing
Nobody has claimed this yet.
- Dominant language
- Macaulay2
- Stars
- 435
- Forks
- 297
- Avg merge
- 4d 20h
- Merged PRs (30d)
- 11
Description
Hi all,
I haven't figured out why exactly this is happening, but it when I produce rings by flattening them, `pushFwd` from the `PushForward` package has errors / gives the wrong result.
```
i1 : needsPackage "PushForward"
o1 = PushForward
o1 : Package
i2 : k = QQ[x]/ideal(x^3-2)
o2 = k
o2 : QuotientRing
i3 : L = k[y]/ideal(y^2-2)
o3 = L
o3 : QuotientRing
i4 : S2 = (flattenRing(L))#0
o4 = S2
o4 : QuotientRing
i5 : (myMod, myGens, myFun) = pushFwd(map(S2, coefficientRing S2))
o5 = (cokernel | 0 0 0 0 |, | 1 y yx yx2 x x2 |, myFun)
| 0 0 0 0 |
| 1 0 0 0 |
| 0 1 0 0 |
| 0 0 1 0 |
| 0 0 0 1 |
o5 : Sequence
i6 : myFun(x)
stdio:6:5:(3): error: rawFreeModule: degree rank 0, but sequence of degrees given
i8 : prune myMod
2
o8 = QQ
o8 : QQ-module, free
```
In this case, the push forward should obviously be degree 6. However, if I set the MonomialOrder to GRevLex and the degrees to 1, it's ok, and it gives the correct answer.
```
i13 : S4 = newRing(S2, MonomialOrder=>GRevLex, Degrees=>{1,1})
o13 = S4
o13 : QuotientRing
i14 : (myMod, myGens, myFun) = pushFwd(map(S4, coefficientRing S4))
6
o14 = (QQ , | 1 y yx yx2 x x2 |, myFun)
o14 : Sequence
i15 : myFun(x)
o15 = | 0 |
| 0 |
| 0 |
| 0 |
| 1 |
| 0 |
6 1
o15 : Matrix QQ <-- QQ
```
For comparison:
```
i17 : S2#FlatMonoid
o17 = monoid[y, x, Degrees => {{1}, {0}}, Heft => {2:1}, MonomialOrder => {MonomialSize => 32}]
{0} {1} {GRevLex => {1} }
{Position => Up }
{GRevLex => {1} }
o17 : GeneralOrderedMonoid
i18 : S4#FlatMonoid
o18 = monoid[y, x, Degrees => {2:1}, Heft => {1}]
o18 : GeneralOrderedMonoid
```
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the transcript using the PushForward package, focusing on pushFwd applied to the ring produced by flattenRing and comparing S2 with the GRevLex S4 case. Inspect how the generated grading and monomial order are handled; done means pushFwd returns the expected degree-6 module and matrix for S2 without regressing the working case.
Written by the indexing model from the issue text.
Assessment
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100