in the former case it raises a NotImplementedError  even if inversion is 
possible:

sage: P.<x,y> = QQ[]
sage: Q = P.quo([1-x*y])
sage: Q.inject_variables()
Defining xbar, ybar
sage: ybar.is_unit()
Traceback (most recent call last):
...
NotImplementedError:

but:

sage: ~ybar
xbar

This is marked as a TODO in the docstring:

   Return True if self is a unit in the quotient ring.

   TODO: This is not fully implemented, as illustrated in the example
   below.  So far, self is determined to be unit only if its
   representation in the cover ring R is also a unit.

In the latter case the NotImplementedError is raised even if the preimage 
in the cover is a unit. 

sage: Z16x.<x> = Integers(16)[]
sage: S.<y> =  Z16x.quotient(x^2 + x + 1)
sage: S(3).is_unit()
Traceback (most recent call last):
...
NotImplementedError: The base ring (=Ring of integers modulo 16) is not a 
field


Here accordingly, inversion is not possible in such cases.

If there is no special reason why this hasn't been done, I will open a 
ticket to fill that in!

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/6cb24adb-9ea4-49d4-a7d2-cc866ca55216%40googlegroups.com.

Reply via email to