[om] A &S vs. operational., ranting on OM goals.

Richard Fateman fateman at cs.berkeley.edu
Mon May 20 19:24:46 CEST 2002



David Carlisle wrote:

>>It is not
>>  so useful if have two computer algebra systems at your disposal
>>and they do different things with cosine.
>>
> 
> The point is that refering to (a particular edition of) A&S  ties down
> such details as branch cuts etc.


Actually, a human must read and interpret A&S.
It is always possible to type a command into a computer algebra system.
That's what an operational definition does for you.
The same goes for the CDs.  I quote from the definition of "root".

"Care should be taken as to the precise meaning of this operator, in 
particular which root is represented, however it is here to represent 
the general notion of taking n'th roots. As inferred by the signature 
relevant to this symbol, the function represented by this symbol is the 
single valued function, the specific root returned is the one indicated 
by the first CMP. Note also that the converse of the second CMP is not 
valid in general.
"
1.  Who is to exercise care? The human reader? A program?
I think it is impossible for a program to exercise more
or less care, so it must be for a human.

2. Root is defined over only elements of C, the complex numbers.
Thus x^(1/2) appears to be unspecified in the OM world.

3. Looking at the CMP, it suggested that I look at ln and also log..
I find that CMP for log reads
  a^b = c implies log_a c = b

Which is false because e^(2*pi*i)=1, but log_e(1) is 0.

but we digress.



 So if you are implementing a phrasebook
> to a system that has different choices then you know you have to make
> the appropriate transfomation. The author of the phrasebook mapping to
> the CA system needs to be aware of that, the author of the OM object
> need not be.


It seems to me that the author of the OM object must be keenly
aware of all the phrasebooks in order to make sure that the object
is mapped to the intended utterance. For example, the author
would need to know that log(x) is single/multi valued for some systems, 
and must
be stated as an infinite set, perhaps using Z as   log(x)+2*Z*pi*i ??
or something with "suchthat".



> 

Except for rather trivial
material, the only plausible way to ACCURATELY
  convey information to 2 computer
algebra systems is to write it out for each of them, or
(sometimes) to write a translator from one to the other.
To start with a vague specification and translate
to each of them is much harder all around.


> 
>>1. How precise and how accurate should any numerical operations
>>be?  If they are unspecified, one system may say "cos(1/3)" and
>>mean something rather different from another, say "cos(0.333333334)"
>>
> 
> This is unspecified, if you have an OM application that is a front end
> to TeX It doesn't make sense. If it's a numerical library it will
> probably get evaluated as a double. If it's a symbolic package it may
> get stored as an exact expression cos(1/3). But the fact that a numeric
> library will evaluate an expression to some finite precision does not
> mean that the openmath object itself is imprecise, it just means that
> the application is taking some reasonable approximation to the abstract
> object before working on it. this is always the case.


Your version of "reasonable" may differ from mine. While anything
can be extended to anything else, It's quite clear that an OM front
end to TeX would either be trivial,
  e.g. pass this string on to TeX,
merely demoware
  e.g. works for a+b^c/(d+e) as long as the expression doesn't go
to the next line;
or impossibly complex
e.g.  take any mathematics, any notation, diagrams etc, and generate
the "right" TeX.



> 
> 
>> When I say Cos[x]  I mean exactly what
>>Mathematica means. 
>>
> 
> In what way (other than choice of reference) is that different from
> fixing on an arbitrary book. You are just fixing on an arbitrary CA
> system. 


Books are not operational. Assuming you have a program, you can run Cos[x].
If you don't have a program or a computer and have no way of getting
access, then a book+human_reader may be the remaining choice.


> 
> 
>>Encoding an object could be
>><begin>
>><annotation-Mathematica> "Cos[x]" </annotation>
>><annotation-Maple> cos(x)</annotation>
>><annotation-TeX> \cos x   ...
>><\begin>
>>
>>This is more useful.
>>
> 
> Maybe you just want to do something different because that doesn't look
> useful to me, it looks essentially unusable for any of the uses I have
> in mind for OM or MathML.


I looked at the uses for OM and MathML on the OM pages.
3 are mentioned.

Multiple integrator. If all you need is to transmit x^n*sin(x)
to several systems, the task is rather easy.  If you try to
compare the RESULTS e.g. of Mathematica's definite integration,
you are in trouble.

Transmitting math documents (between humans).  Um, while not
a perfectly solved problem, I would guess MathML does this OK.
Actually, TeX does it better in practice.

Math databases. I think I know a little about this.

   The proof of
the pudding is in the eating.  There is a claim that OM would be easier
to use for pattern matching. Proof?  Compared to what?
  Show me the pattern matcher that is better than Mathematica's non-OM
matcher?  Or better at searching than Tilu?

If there is something that OM does better than (choose your favorite
CAS's representation)?  Show me the program using OM and it can
be written to use the CAS's representation.
The advantage the CAS has is that it actually has an operational
model.  (To repeat this point the 3rd time in this message).

 The whole point is that you should be able to
> refer to mathematical concepts in a platform neutral way. Someone else
> may at some other time map those concepts to some system that I know
> nothing about. The idea that I should lump in one place the definition
> in every conceivable system appears totally unworkable to me.


No, you don't need the definition in every conceivable system.
Just the accurate definition in ONE system.   There are already
translators from Maple,Mathematica, Macsyma, MuPad, ... into
TeX.  There are translators between Maple and MuPad, Maple and Macsyma,
Mathematica into Macsyma.  These translators do not cover the full
system languages and commands, but I would not be surprised to
see that they provide far more coverage than OM and phrasebooks.

Thus the annotation in Maple would be enough to provide
annotation in MuPad  and probably other systems as well.  And the
translation program would be done by someone familiar with Maple and MuPad
both.

RJF

--
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