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.