[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Axiom-developer] [Q] How to classify radicalSolve(z^(1/1)=1) ->"The
RE: [Axiom-developer] [Q] How to classify radicalSolve(z^(1/1)=1) ->"There are..." ?
Sat, 12 Feb 2005 17:18:03 -0500
On Saturday, February 12, 2005 2:46 PM Vladimir Bondarenko wrote:
> Should the behaviour (C) be interpreted as a bug or as a feature?
> (C) -> radicalSolve(z^(1/1)=1)
> There are 4 exposed and 0 unexposed library operations named
> radicalSolve having 1 argument(s) but none was determined to be
> applicable. Use HyperDoc Browse, or issue
> )display op radicalSolve
> to learn more about the available operations. Perhaps
> package-calling the operation or using coercions on the
> arguments will allow you to apply the operation.
> Cannot find a definition or applicable library operation named
> radicalSolve with argument type(s)
> Equation Expression Integer
> Perhaps you should use "@" to indicate the required return
> type, or "$" to specify which version of the function you
If you do what Axiom tells you to do
)display op radicalSolve
You will see that radicalSolve expects something of type
'Equation Fraction Polynomial <something>' as input. But
z^(1/1)=1 is of type 'Equation Expression Integer', presumably
because 1/1 is of type 'Fraction Integer'.
If you can grok that the value of 1/1 is the unit (denoted by 1)
of the domain Fraction Integer, then the idea that z^(1/1) is
not a polynomial is not so hard and then the fact that radicalSolve
complains might be considered a "feature".
If you want you can write an explicit conversion
(C) -> radicalSolve((z^(1/1)=1)::Equation Polynomial Integer)
One might argue that the interpreter could perform such a
conversion automatically but as far as I know at present it only
performs coercions that it knows to be correct based on types, not
values. Converting 'Fraction Integer' to 'Integer' is not possible
in general but converting <something> to Fraction <something>
is often possible.