Opened 2 years ago

Last modified 9 months ago

## #27508 closed defect

# Force tail reduction in polynomial quotient ring — at Initial Version

Reported by: | gh-rachelplayer | Owned by: | |
---|---|---|---|

Priority: | major | Milestone: | sage-9.1 |

Component: | commutative algebra | Keywords: | multivariate polynomial, quotient ring, singular |

Cc: | SimonKing, malb, gh-mwageringel | Merged in: | |

Authors: | Rachel Player | Reviewers: | |

Report Upstream: | N/A | Work issues: | |

Branch: | Commit: | ||

Dependencies: | Stopgaps: |

### Description

I'd like to "remove squares" in some polynomials living in a polynomial ring over `QQ`

, in 2 variables: `x`

,`y`

. I tried to implement this by modding out by the ideal `(x^2 - x, y^2 - y)`

. Depending on the ordering, the result of `.mod()`

does not always output the polynomial I am looking for.

Without specifying an ordering, everything seems fine:

sage: R1.<x,y> = PolynomialRing(QQ, 2) sage: I1 = R1.ideal(["x^2 - x", "y^2 - y"]) sage: R1("x^2 + y").mod(I1) x + y sage: R1("x + y^2").mod(I1) x + y

However, when specifying the order `lex`

the reduction of `x + y^2`

is not as expected:

sage: R2.<x,y> = PolynomialRing(QQ, 2, order="lex") sage: I2 = R2.ideal(["x^2 - x", "y^2 - y"]) sage: R2("x^2 + y").mod(I2) x + y sage: R2("x + y^2").mod(I2) x + y^2

This issue was reported in sage-support where it was pointed out that it is likely a bug in Singular, or in the Singular interface to Sage.

In particular, using the order `lex`

works when `implementation="generic"`

is also specified:

sage: R3.<x,y> = PolynomialRing(QQ, 2, order="lex", implementation="generic") sage: I3 = R3.ideal(["x^2 - x", "y^2 - y"]) sage: R3("x^2 + y").mod(I3) x + y sage: R3("x + y^2").mod(I3) x + y

For reference, I am using Sage version 8.6 on macOS Mojave 10.14.3.

**Note:**See TracTickets for help on using tickets.