Changes http://wiki.axiom-developer.org/382DivideIfCanUnivariatePolynomialDivisionPackageAlgorithm/diff -- The idea of polynomial lifting is that a ring homomorphism $A \rightarrow B$ makes $B$ into an $A$-algebra and hence induces an $A[X]$-algebra structure on $B[X]$ for polynomial rings. The Interpreter, like in mathematics, frequently applies this type of operations and in most cases, simplifies the input. Your example and even my last one (which does not involve polynomial lifting) can be baffling as they apparently give wrong results. However, in each case, when 'convert' was applied, it was caused by some explict (but still ambiguous) instructions of the user (the first example: ')expose', 'recip(2::ZMOD(9))', and ambiguity due to no type declarations for 'a' and 'b' ; and the last: 'd:INT' and no package call for '+'). It is not clear to me which is the better solution: to forbid 'convert' in *automatic* polynomial lifting and *automatic coercion* even after an explicit declaration in the Interpreter (it is not automatic in the compiler---the compiler usually catches ambi! guous instructions) in all cases, or to be non-ambiguous in user instructions (for example, use 'd:INT:=(c::INT)+7' or 'd:INT:=convert(c)+7' (or slightly differently, 'convert(c)+7' which produces a 'PositiveInteger')). That's why I am not sure whether this problem is a bug or a feature. The problem (especially the fragility) is real though. More power to you if you know how to hack the system into submission.
-- forwarded from http://wiki.axiom-developer.org/[EMAIL PROTECTED]
