Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

(fwd) Re: Motion 42: NO



It seems that it was intended for the list...

----- Forwarded message from Richard Fateman <fateman@xxxxxxxxxxxxxxxxx> -----

Date: Sun, 10 Feb 2013 19:45:15 -0800
From: Richard Fateman <fateman@xxxxxxxxxxxxxxxxx>
To: Vincent Lefevre <vincent@xxxxxxxxxx>, fateman@xxxxxxxxxxxxxxx
Subject: Re: Motion 42: NO

>> I & Arnold (possibly others) have done a correctness check, which is necessary technical mumbo-jumbo on the border between math and computer science, summarised at the end of this email. Its conclusions:
>> - Constants are zero-argument functions.
OK
>> - NaN is the unique zero-argument real function with empty domain.
If a function has zero arguments, it seems to me that it does not have a
domain.  I do not know
if there is a distinction between a zero-argument function that has no domain
and
a zero-argument function that has an empty domain.  It seems to me that a
function f that
has an empty domain must be a function of one argument, say x, but that for no
possible
value of x is f defined.

I am happy with NaN being a constant, though as a practical matter NaN's can
carry
"payloads" and so (for example) there are something like 2^52 double NaNs.
>> - NaN's natural (=tightest) bare interval extension is the interval constant (zero-argument interval function) whose value is Empty; the corresponding decorated interval extension is the decorated interval constant whose value is (Empty,ill).
Here I am confused.  If the decoration is ILL, does it make sense to have any
value at all?  In the
programs I have written, if I produce an interval that is [NaN,NaN] must the
decoration be ILL, or
is it perhaps [NaN,NaN] decorated with EMP?

>> (This depends on the decoration scheme of course.) It is reasonable to give this the name NaI.
I am happy with the notion that any interval representation that includes a
NaN as an upper or lower bound
is NaI.  One reason is that for IEEE 754 floats, all comparisons with NaN are
false, e.g. NaN =NaN is false,
NaN>NaN is false  etc.  So just about anything you want to do with a NaN is
not determined.  I suppose
one could argue that sin ( [NaN,NaN] = [-1,1]    assuming that is a "real"
NaN.   I don't know if this is
currently part of the scheme.


>> - A bare or decorated interval constructor constructs a bare or decorated interval constant, i.e. one of these zero-argument functions.
> But this doesn't take into account the case where ill is attached to
> an input variable, when instantiated.
It seems to me that an input variable is a constant, or a pair of constants,
and a constant being
a function from Entire to a constant is defined and continuous. Operations on
this interval can
punch holes in it or entirely invalidate it, but I have to strain to think of
a reason to start ab initio with NaI .
(by analogy with NaN,  I DO have a possible reason, which I've used--  fill an
"uninitialized" array A [1..100]  with NaNs whose payloads are the strings
A[1], ....,A[100].   If
there is ever a reference to an uninitialized entry of A, it will propagate
the payload through
arithmetic.  I do not know if this is the sort of usage being considered, or
if there is something
else that people have in mind, or if this need somehow falls out of
mathematical necessity.

I apologize if all this has been hashed out in the past discussions.  I am a
newcomer to
this mailing list.

Regards
Richard Fateman


> 
> Or you need to say what happens at the leaves of the computation tree.
> 


----- End forwarded message -----

-- 
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)