Skip to content

libsingular reduces polynomials incompletely #12529

Closed
@simon-king-jena

Description

@simon-king-jena

Condensed version of a report by Oleksandr Kazymyrov on sage-support.

Define g by modding out in a multivariate polynomial ring:

sage: gens = 'y a0 a1 a2 b0 b1 b2 c1 c2 d0 d1 d2 d3 d4 d5 d6 d7'.split()
sage: R = PolynomialRing(GF(8), 17, gens)
sage: R.inject_variables(verbose=False)
sage: A, B, C = a0 + a1*y + a2*y^2, b0 + b1*y + b2*y^2, c1*y + c2*y^2
sage: D = d0 + d1*y + d2*y^2 + d3*y^3 + d4*y^4 + d5*y^5 + d6*y^6 + d7*y^7
sage: F = D.subs({y: B})
sage: G = A.subs({y: F}) + C
sage: g = G.mod(y^8 + y)

After modding out by a polynomial of degree 8 in y,
the degree of g in y should be at most 7.

Up to Sage 9.1.rc1:

sage: g.degree(y)
14

After #27508 (Force tail reduction in polynomial quotient ring),
merged in Sage 9.1.rc2:

sage: g.degree(y)
7

The problem was libsingular not doing tail reduction
when calling Singular.

This ticket adds the above example as a doctest.

CC: @malb

Component: commutative algebra

Keywords: multivariate polynomial reduction

Stopgaps: todo

Author: Samuel Lelièvre

Branch/Commit: 5b3253a

Reviewer: Kiran Kedlaya

Issue created by migration from https://trac.sagemath.org/ticket/12529

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions