Opened 7 years ago

Closed 6 years ago

#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 Merged in: sage-5.7.beta4
Authors: Charles Bouillaguet Reviewers: Martin Albrecht, Marco Streng
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by Bouillaguet)

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 (1)

13714_idlift_fix.patch (2.6 KB) - added by Bouillaguet 6 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 Changed 6 years ago by Bouillaguet

  • Description modified (diff)

comment:2 Changed 6 years ago by Bouillaguet

  • Authors set to Charles Bouillaguet
  • Status changed from new to needs_review

The patch fixes the bug. Thanks Hans !

comment:3 Changed 6 years ago by malb

Looks good but what's up with that matrix2.pyx bit?

comment:4 Changed 6 years ago by Bouillaguet

It's nothing but a mistake (bad MQ management queue). I updated the patch

comment:5 Changed 6 years ago by mstreng

why the duplicate "cdef int errorreported" in /sage/libs/singular/singular-cdefs.pxi?

comment:6 Changed 6 years ago by Bouillaguet

I have no idea :) I'm updating the patch right now.

Changed 6 years ago by Bouillaguet

comment:7 Changed 6 years ago by mstreng

  • Reviewers set to Martin Albrecht, Marco Streng
  • Status changed from needs_review to positive_review

looks good, fixes the problem, and all tests pass

comment:8 Changed 6 years ago by jdemeyer

  • Merged in set to sage-5.7.beta4
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.