#13883: Fix an assertion in polybori
-------------------------------------------------------+--------------------
       Reporter:  SimonKing                            |         Owner:  malb   
 
           Type:  defect                               |        Status:  new    
 
       Priority:  major                                |     Milestone:  
sage-5.6
      Component:  commutative algebra                  |    Resolution:         
 
       Keywords:  polybori FGLMStrategy debug          |   Work issues:         
 
Report Upstream:  Reported upstream. No feedback yet.  |     Reviewers:         
 
        Authors:                                       |     Merged in:         
 
   Dependencies:                                       |      Stopgaps:         
 
-------------------------------------------------------+--------------------

Comment (by SimonKing):

 We want that old_ring is in degneglex ordering. Shouldn't the following
 work
 {{{
 sage: from polybori import *
 sage: target_ring = BooleanPolynomialRing(names=['x','y','z'])
 sage: source_ring.<x,y,z> = BooleanPolynomialRing(order="DegNegLex")
 sage: ideal = BooleanPolynomialVector([x+z, y+z])
 sage: z > y > x
 True
 sage: FGLMStrategy(source_ring, target_ring, ideal)
 }}}

 However, it still crashes!

 Replying to [comment:6 jpflori]:
 > But the following which looks a little better seems to work:
 > {{{
 > sage: sage: from polybori import *
 > sage: sage: B.<x,y,z> = BooleanPolynomialRing(order='lex')
 > sage: C = B.clone(ordering=dp_asc)
 > sage: sage: ideal = BooleanPolynomialVector([x+z, y+z])
 > sage: sage: sage: FGLMStrategy(B, C, ideal)
 > <sage.rings.polynomial.pbori.FGLMStrategy object at 0x7379ab0>
 > }}}

 I can confirm that this works. However, big surprise:


 ''The following very similar attempt still crashes'':
 {{{
 sage: from polybori import *
 sage: target_ring = BooleanPolynomialRing(3,names=['x','y','z'])
 sage: source_ring = target_ring.clone(ordering=dp_asc)
 sage: x,y,z = source_ring.gens()
 sage: z > y > x
 True
 sage: ideal = BooleanPolynomialVector([x+z, y+z])
 sage: FGLMStrategy(source_ring, target_ring, ideal)
 python: groebner/include/polybori/groebner/PolyEntryVector.h:74: virtual
 void polybori::groebner::PolyEntryVector::append(const
 polybori::groebner::PolyEntry&): Assertion `m_indices.checked(back().lead)
 == (size_type)-1' failed.
 }}}

 So, Alexander, it seems that a misuse of `._change_ordering` is ''not''
 the problem. There is a bug, that ought to be fixed.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13883#comment:7>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to