http://wiki.axiom-developer.org/public/TheUnknownInComputerAlgebra.pdf

Ah, by the way, I've read the paper and did not find it particularly useful. What they do is a bit too complicated in my eyes.

> \begin{spad}
> )abbrev domain PUNINT PureUnknownInteger
> PureUnknownInteger (D,BasicUnknown):Ring == Implementation where
>     D:IntegerNumberSystem
>     BasicUnknown:List Symbol
>   Implementation ==> LocalAlgebra (Polynomial D,D,D) with
>     "/" : ($,D) -> $
>     ++ a/n computes the expression whose value is a/n if it
>     ++ is actually an unknown integer
> \end{spad}

It is certainly a wrong design to implement indefinite integers as polynomials.

Why?

Suppose you have a nice algebra library and you want the system to understand indefinite objects, then you are certainly not going to add any function to existing domains or wrap one (and actually ALL) domains with a domain constructor "Indefinite". No. It should be completely transparent. The goal is to type

n: Integer;

and not

n: Indefinite(Integer);

Either the interpreter or some layer between interpreter and library code should take care about indefinite objects.

I very much believe that this requires reflection from SPAD/Aldor.

Ralf


_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to