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:

Status badges


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.

Change History (0)

Note: See TracTickets for help on using tickets.