Re: Reasons (not) to vote Motion 27: NO
On 08/19/2011 04:08 PM, Vincent Lefevre wrote:
On 2011-08-19 14:10:38 +0200, Arnold Neumaier wrote:
On 08/19/2011 12:17 AM, Vincent Lefevre wrote:
On 2011-08-18 17:30:21 +0200, Arnold Neumaier wrote:
One cannot give any useful guarantees for free expressions because
one cannot control the input decorations. They can carry decoration
information from ancient times that are completely irrelevant for the
range calculations.
On the contrary, AFAIK, this is the goal of decorations: to propagate
information from the input to the output.
If you apply the domain operator to the input (as a single vector),
everything is alright. But if you have multiple inputs with unknown past,
there is not ''the input''.
Well, what I mean is that the computation can be modelized by a DAG,
and each node has its own input vector and output vector.
Decorations are a concept whose meaning is associated to the whole
computation and its input and output, not to the single node in the dag,
which only acts as an execution engine.
If one
considers:
[A]
z = sqrt(x)
r = z + y
Here the sqrt node has input x only (not the box (x,y)), and the + node
has input (z,y). Here x and y may already have initial decorations, e.g.
because they can come from output of other nodes.
IMHO, one should focus on properties that depend only on the explicit
inputs. What I mean here is that on the example, what the decorations
can say about z should not depend on y. Or if one wants to make z
depend on y, this should be done explicitly; I think this is the goal
of domain(), e.g.
[B]
(x',y') = domain(x,y)
z = sqrt(x')
r = z + y'
But, depending on what the user wants, it should be his decision to
choose [A] or [B]. Differentiating ein and emp works with [B], but
not with [A].
domain selects the set of variables that are regarded as variable.
Which set this is, is up to the user. If several sets of variables are
declared as domains, it is up to the user to give this a correct meaning.
BTW, I suppose that if the (only) function f with 1 argument such that
Domain(f) is empty is implemented by sqrt(-1/x^2), then one cannot
obtain the ill decoration (except if the code knows that Domain(f) is
empty and forces the decoration to ill, or the implementation does an
optimization like supporting open intervals internally), even though
this would be a correct decoration. Said otherwise, the decorations are
properties associated with functions, not with their implementation.
So, if a programmer writes code based on the fact that all intervals
are closed (like assuming that 0 is in the interval returned by the
expression sqrt(-1/x^2) when x is unbounded), it would be a mistake.
I don't understand. since ill \subseteq def, getting in this case 0_def
(which it does according to Motion 26) is valid, and cannot lead to a
false conclusion -- just as getting 0 in undecorated interval arithmetic
doesn't allow to conclude that 0 is a value.