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]

Reply via email to