[om] Reference vs. Referent: solution to an old problem

Richard Fateman fateman at cs.berkeley.edu
Tue Dec 12 17:30:05 CET 2000


I could not parse the note from Paul Libbrecht, but the point as
taken up by Manfred Riem suggests that the OpenMath CD is going
to include a specification of all algorithms, and that CAS
are free to either implement them or not.  Thus by carefully
specifying certain operations, one could exclude certain CAS
implementations entirely. Gor example a reasonable spec
for floating-point operations would either have to exclude
all arithmetic of Mathematica or all of Maple, since their
models are, I believe, incompatible.  
If the CD requires that the results of integration be
cognizant of special values (e.g. to avoid dividing by
zero or computing log(0).) then certain CAS would have
to be avoided, too.

Maybe OpenMath is going to take up the mantle of the QED
project, 
http://www-unix.mcs.anl.gov/qed/
which perhaps some of you are not aware of.
The aim of the QED project is to build a single, 
distributed, computerized repository that rigorously
 represents all important, established mathematical
knowledge.

This project is pretty much doomed.

For Openmath,
it would in any case be far more honest to approach
the problem by saying you intend to build a computer
algebra system that knows all mathematics, than
to say you will simply specify what such an ideal
system would do without facing any of the real-life
decisions.  At the risk of repetition, take the
question of what to do when someone utters 1/0.  You
could say, as mathematicians sometimes do "Oh, that
is forbidden". Computationally speaking, that is
moronic.  You cannot forbid someone from typing that.
A computational answer may be "In case someone utters
that, we cut off all connections, stop all computations,
issue an error message and dump 'core'."  This too
is a bad result.
  Since people who have better ideas than either of
these do not always agree, what is the role of OpenMath,
to state what is correct?

Here are 2 other items (again, repeating):

1. CAS even disagree on whether x+1 or 1+x is simpler.

2. For fun, assume that my indefinite integration program
always returns the same as yours, except that I add to
the result  C=(arctan(x)+arctan(1/x)).   Does my
program conform to the same openmath CD?

Note that derivative of C wrt x is 0 in any CAS. Therefore
it must be a constant, and one can always add a constant
to the result of indefinite integration, right?. But it is not.
Plot it.

Perhaps there is a role for Openmath in defining (say)
interfaces to engines that add and subtract polynomials
and rational functions (over arbitrary precision
integers, finite fields, rational numbers).  But if you
think that everything else just follows perhaps
as a proof by some kind of induction, this is unlikely.
I also think it is unreasonable to
expect that some small group of essentially
self-appointed standardizers will be able to
dictate an abstract specification to which 
programmers must comply.

If I wanted to actually do a computation, I
would undoubted choose 
the most appropriate single
ONE computer algebra system X 
for nearly all the computations.  If I decided
I needed another facility only  in some other computer
algebra system Y, I would have to study that
computer algebra system carefully, and see
if the facility was what I wanted.  Studying
the OpenMath CD would probably not be helpful,
according to what I've just read here.

RJF



Manfred Riem wrote:
> 
> Hi Paul,
> 
> > I think your cynic here... of course such generic things as
> > "eval" or "simplify" or... are too short general.
> >
> > But, also, of course, that "operators" CD would have to
> > mention the domains which, in your example would not be
> > supported, period.
> >
> > Such a CD could NEVER rely on the on-purpose-simplistically-designed
> > language a Computer algebra system can eat. This is a shell language
> > that has a lot of contexts in and this context is precisely the delicate
> > task of such a thing !!
> 
> I take your point here is to say that either a CAS should be cleaner
> in its output so that we exactly know what it outputs, or that you should
> limit yourself in using the CAS only for properly, totally defined
> functions (which could use other functions not well so defined inside
> the CAS), right?
> 
> > > Any time two CAS differ in their capabilities, you will have to choose
> for
> > > the standard the least capable.  Otherwise you must distinguish between
> them,
> > > and once you do that, you have no standard.
> 
> Not really the case. In a proper design of an distributed system it is
> feasible
> that the capabilities differ, and distinguishing between them is possible.
> See for more information, either Linda tuple spaces, TSpaces (IBM)
> or JavaSpaces (Sun). If you use totally defined functions it is not even
> really hard.
> 
> The hardest part is for the mathematician, computer scientist, etceteras to
> use the systems to their full effectiveness. They need to know which engine
> supports what. Which means they determine how a given calculation runs and
> where.
> 
> Back to the CDs, the CDs define what you would want a CAS to implement, but
> it
> is still quite acceptable to only implement a part of a CD. The CAS engine
> will
> export only the functions (OMS-ses) that it supports.
> 
> This is of course under the assumption that it does an EVAL on the
> arguments.
> Other stuff could be done with the engine also, but it should not be part
> of the OpenMath CD stuff, because it is used to steer the engine itself
> (like quitting it, resetting, adding functions, etceteras).
> 
> > > Imagine a CAS that only knows about polynomials.  How do you standardize
> > > its response to a question that requires rational, algebraic,
> logarithmic,
> > > exponential, trigonometric, etc. functions.
> 
> A very simple solution would be to refuse to do the operation, in that way
> only if a proper set of arguments is supplied to a function it will perform
> the function call.
> 
> Regards,
> 
> Manfred.
> 
> --
> om at openmath.org  -  general discussion on OpenMath
> Post public announcements to om-announce at openmath.org
> Automatic list maintenance software at majordomo at openmath.org
> Mail om-owner at openmath.org for assistance with any problems
--
om at openmath.org  -  general discussion on OpenMath
Post public announcements to om-announce at openmath.org
Automatic list maintenance software at majordomo at openmath.org
Mail om-owner at openmath.org for assistance with any problems



More information about the Om mailing list