Opened 5 years ago

#20954 new defect

RuntimeError in coercion

Reported by: davidloeffler Owned by:
Priority: major Milestone: sage-7.3
Component: coercion Keywords:
Cc: Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description

The following code crashes in Sage 7.2, with a message reporting a bug in the coercion model:

sage: R.<X> = QQ[]
sage: F = X
sage: S.<a> = EquationOrder(x^2 - 3)
sage: F(X/a)
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-20-53f01a47f657> in <module>()
----> 1 F(X/a)

/usr/local/sage/sage-2/src/sage/rings/polynomial/polynomial_element.pyx in sage.rings.polynomial.polynomial_element.Polynomial.__div__ (/usr/local/sage/sage-2/src/build/cythonized/sage/rings/polynomial/polynomial_element.c:21928)()
   1986 
   1987     def __div__(self, other):
-> 1988         return PyNumber_TrueDivide(self, other)
   1989 
   1990     def __pow__(self, right, modulus):

/usr/local/sage/sage-2/src/sage/rings/polynomial/polynomial_element.pyx in sage.rings.polynomial.polynomial_element.Polynomial.__truediv__ (/usr/local/sage/sage-2/src/build/cythonized/sage/rings/polynomial/polynomial_element.c:21854)()
   1983         except (TypeError, ValueError):
   1984             pass
-> 1985         return RingElement.__div__(self, right)
   1986 
   1987     def __div__(self, other):

/usr/local/sage/sage-2/src/sage/structure/element.pyx in sage.structure.element.RingElement.__div__ (/usr/local/sage/sage-2/src/build/cythonized/sage/structure/element.c:17295)()
   1950         if have_same_parent_c(self, right):
   1951             return (<RingElement>self)._div_(<RingElement>right)
-> 1952         return coercion_model.bin_op(self, right, div)
   1953 
   1954     cpdef RingElement _div_(self, RingElement right):

/usr/local/sage/sage-2/src/sage/structure/coerce.pyx in sage.structure.coerce.CoercionModel_cache_maps.bin_op (/usr/local/sage/sage-2/src/build/cythonized/sage/structure/coerce.c:8744)()
   1018             if xp is yp:
   1019                 return op(x,y)
-> 1020             action = self.get_action(xp, yp, op, x, y)
   1021             if action is not None:
   1022                 return (<Action>action)._call_(x, y)

/usr/local/sage/sage-2/src/sage/structure/coerce.pyx in sage.structure.coerce.CoercionModel_cache_maps.get_action (/usr/local/sage/sage-2/src/build/cythonized/sage/structure/coerce.c:15573)()
   1556             pass
   1557         action = self.discover_action(R, S, op, r, s)
-> 1558         action = self.verify_action(action, R, S, op)
   1559         self._action_maps.set(R, S, op, action)
   1560         return action

/usr/local/sage/sage-2/src/sage/structure/coerce.pyx in sage.structure.coerce.CoercionModel_cache_maps.verify_action (/usr/local/sage/sage-2/src/build/cythonized/sage/structure/coerce.c:16681)()
   1608 
   1609             if action.left_domain() is not R or action.right_domain() is not S:
-> 1610                 raise RuntimeError, """There is a BUG in the coercion model:
   1611                 Action found for R %s S does not have the correct domains
   1612                 R = %s

RuntimeError: There is a BUG in the coercion model:
                Action found for R <built-in function div> S does not have the correct domains
                R = Univariate Polynomial Ring in X over Rational Field
                S = Order in Number Field in a with defining polynomial x^2 - 3
                (should be Univariate Polynomial Ring in X over Number Field in a with defining polynomial x^2 - 3, Order in Number Field in a with defining polynomial x^2 - 3)
                action = Right inverse action by Number Field in a with defining polynomial x^2 - 3 on Univariate Polynomial Ring in X over Number Field in a with defining polynomial x^2 - 3
with precomposition on right by Conversion map:
  From: Order in Number Field in a with defining polynomial x^2 - 3
  To:   Number Field in a with defining polynomial x^2 - 3 (<type 'sage.categories.action.PrecomposedAction'>)

Change History (0)

Note: See TracTickets for help on using tickets.