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

Re: Draft decoration system for discussion



On 2012-12-11 20:36:58 +0000, John Pryce wrote:
> A threshold is stated to be necessarily >= trv (in the 3rd paragraph
> of this subclause). So the first point doesn't apply.

OK, I forgot that.

> As for the second, recall compressed interval operations are
> equivalent to converting each operand to a (possibly "arbitrary")
> decorated interval; doing the decorated interval operation, say phi;
> and converting back.
> Suppose we take my view that such a phi, if returning Empty, only
> ever decorates it with ill or emp. Since this is necessarily < t, on
> conversion back to compressed it becomes a decoration, not an
> interval. If any constructor of compressed intervals (e.g. the
> compressedInterval() function) behaves the same way, then a
> compressed xx can *never* be (i) an interval and (ii) empty. So your
> second point doesn't apply either.

I disagree. I don't think (Empty, trv) has been forbidden, though it
should normally not be produced. Note that there's nothing incorrect
with (Empty, trv); it's just suboptimal. But (Empty, dac) is incorrect
and mustn't be produced from (Empty, trv). See the example below.

> On the other hand, if one takes your view that a decorated interval
> operation may return (Empty, trv), and if the threshold t is trv,
> then an empty xx can exist. Then normalInterval(xx) returns (Empty,
> trv). But an empty xx can't happen if t>trv, so normalInterval(xx) =
> (Empty,dac) could never happen.

You assume here that the threshold t is the same before and after
Empty has been produced. What I have in mind is that:

1. xx = Empty can be produced with t = trv in some program block.
2. Empty survives across the program block.
3. A new program block sets t = dac.
4. In this program block, normalInterval(xx) is called.

I don't think §8.8.8 forbids that yet.

> IMO this is another argument in favour of an operation always
> decorating an Empty result with either ill or emp (my "Level 2
> requirement").

So, trv would have to be changed to something else, e.g.
nem (= non empty), with a different definition:

  x intersect Dom(f) is non-empty

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