# [om] A Proposal for extending OpenMath with structure sharing

Bruce Miller bruce.miller at nist.gov
Thu Apr 4 19:29:55 CEST 2002

```It seems a couple of issues have become conflated here.

1) Richard may be right that there is only one
official definition of "interval", namely

a) X=[a,b] : all x such that a<=x<=b  (for closed)

But, "interval arithmetic" can mean a couple of different
things. In a straightforward "Arithmetic on Intevals",
I can't understand why X-X => 0; What should "identity"
mean in such an arithmetic?

OTOH, many (most?) people using interval arithmetic,
eg. for error analysis, are interested in using
an interval to represent
"An unknown x that is in the interval X".
It's impossible to compute the tightest bounds on a
result without knowing the history or correlations of
the arguments.  So such systems overestimate the bounds,
but may use some simple rules like
x-x => 0 or x/x => 1,
where "identity" does mean something.  Those rules would
seem inappropriate for the first kind of interval arithmetic,
however.

In summary, I would say that -- eventually -- OM's interval
CD should make clear which model is intended, or provide
CDs for both concepts (or alternatively, different CD's
for different arithmetics on intervals, or ....
Some clarification, somewhere).  The current cd just
says "interval", and I'm suspecting we're not all thinking
the same thing.

2) Since it avoided the interval issues, at first I
liked Steve's example of semantic vs syntactic using
random(). That is, when random() is shared, does
random() - random() => 0
or
random() - random() => someother random()

But it brought in the `evaluation' issue in a
sneaky way!

The binary encoding allows sharing only for symbols,
variables and strings, apparently side-stepping the
semantic vs syntactic issue we're dealing with.

Or does it?  While it might not be my prefered approach,
one could define a symbol "random" in a cd to imply
"generate a random number", without necessarily `applying'
it. Thus, we've already got an ambiguity if the symbol
myrandom:random is shared in a binary encoding of
myrandom:random - myrandom:random

So, at least, the Spec needs to be clarified on this issue,
as well.  Presumably this is syntactic sharing only?

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

```