[om] A Proposal for extending OpenMath with structure sharing

Bruce Miller bruce.miller at nist.gov
Fri Apr 5 01:17:35 CEST 2002

Richard Fateman wrote:
> This notion of identity is tied to referential
> transparency, a well understood issue among programming
> language experts (this is a much smaller set than
> "expert programmers" and probably not a subset...),
>  especially those who think about
> functional programming.
> See, for example,
> http://burks.brighton.ac.uk/burks/foldoc/50/97.htm
> for a definition I found on-line with google.
> Essentially, if you say x=y,  then for any
> function f,  f(x) = f(y).
> Also, f(x)=f(x).
> In this case f(random(100)) is not equal to f(random(100)).
> Also, if x-x = 0, this is not true for x=[-1,1].

I guess I'm not in the above mentioned class, since I'm not
quite getting the point.  Clearly random lacks referential
transparency.  In a pure `arithmetic on intervals',
x-x (for x=[-1,1]) gives [-2,2] and would have referential
transparency.  For the other `interval-like-arithmetic'
(see my previous message), where x-x = 0, you
would not have referential transparency.  Intuitively,
this shouldn't be surprising; the system is attempting
to infer the history of the computation, not working
purely with the value.  Have I understood you correctly
so far?

> functional programming and lambda-binding provide
> a language for addressing and solving these problems.

I would think that lambda binding, which is already in
OM, would be sufficient for semantic sharing -- but what
do I know?
Are you suggesting that OM should restrict itself to
objects with referential transparency?  Or that if we
dont, we end up with all the complications of procedural
programming languages?

> It might be possible to find other solutions, even better
> solutions.  But I suggest that any recommendations first
> address (a) How could this be solved by lambda binding?
> (b) If it cannot be solved by (a), then another better solution
> can be proposed.

If I've understood enough of what is going on here, it seems that
one big issue is how to allow syntactic sharing without inadvertently
implying semantic sharing.

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