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)