Ticket #13714 (closed defect: fixed)
multi_polynomial.lift(...) affects libsingular internal state; makes ideal.complete_primary_decomposition() fail
| Reported by: | Bouillaguet | Owned by: | malb |
|---|---|---|---|
| Priority: | major | Milestone: | sage-5.7 |
| Component: | commutative algebra | Keywords: | libsingular |
| Cc: | malb, mstreng | Work issues: | |
| Report Upstream: | N/A | Reviewers: | Martin Albrecht, Marco Streng |
| Authors: | Charles Bouillaguet | Merged in: | sage-5.7.beta4 |
| Dependencies: | Stopgaps: |
Description (last modified by Bouillaguet) (diff)
On sage 5.5:
sage: R.<x1,x2> = QQ[] sage: I = R.ideal(x2**2 + x1 - 2, x1**2 - 1) sage: R.one().lift(I) Traceback (most recent call last): ... ValueError: polynomial is not in the ideal
And then the bug:
sage: I.complete_primary_decomposition() // ** char_series returns 0 x 0 matrix from 3 input polys (0) I[1,1]=x2^2+x1-2 I[1,2]=x1^2-1
and hangs forever (on sage 5.3 it just SEGFAULTed).
The key in this case is the failing call to lift, i.e., evaluating f.lift(I) while f is not in I. What happens in this case has been changed by #13671 (but the problem in this ticket is independent). It was found while fixing #13671 that when computing f.lift(I), then if f is not in I an error is raised by singular, by setting a global variable. Before #13671, this variable was not reset, and subsequent calls to lift would return junk. After #13671, the global variable is reset and lift works correctly. However, it was apparently not the end of the story.
Attachments
Change History
comment:2 Changed 4 months ago by Bouillaguet
- Status changed from new to needs_review
- Authors set to Charles Bouillaguet
The patch fixes the bug. Thanks Hans !
comment:4 Changed 4 months ago by Bouillaguet
It's nothing but a mistake (bad MQ management queue). I updated the patch
comment:5 Changed 4 months ago by mstreng
why the duplicate "cdef int errorreported" in /sage/libs/singular/singular-cdefs.pxi?

