Re: Promotion of bare decorations & comparisons
Nate, Michel, P1788
On 3 Jan 2013, at 22:08, Nathan T. Hayes wrote:
>> You can construct an equally silly example with that alternative:
>> [1,2] \subseteq floor([0,6])
>> ...
>> = [1,2] \subseteq Empty
>> = false
>>
>> Now we have a false negative.
>
> I don't agree it is a false negative.
>
> Compressing the decorated interval ([0,6],def) into the bare decoration def
> means the user has explicitly indicated anything less than dac is an error.
>
> So returning false in this example is exactly what the user expects, since
> [1,2] cannot be a subset of any defined and continuous interval range of
> floor([0,6]).
I think "Hmm" on this one. What does "any defined and continuous (dac) interval range of floor([0,6])" mean? The only meaning I can see is "since floor() isn't dac on the input [0,6], such a range doesn't exist; and if we insist on treating this nonexistent thing as a set, it must be the empty set".
I think the above is for compressed arithmetic with threshold dac. Change the example slightly:
[0,0] \subseteq floor([0,0.9])
Here, floor() IS dac on [0,0.9], so the result as a decorated interval [0,0]_dac, which becomes [0,0] as a compressed interval, so we get
[0,0] \subseteq [0,0]
= true.
But now change [0,0.9] to the large interval [0,6] and according to Nate's scheme above
[0,0] \subseteq floor([0,6])
...
= [0,0] \subseteq Empty
= false
I don't think users would expect this: that (A \subseteq f(B)) is true for some B, but becomes false when they make B larger.
Michel is right: we should emphasise that X = (a compressed interval whose value is a decoration d) is a quite separate object from D = (a decoration whose value is d). Nate, if you want arithmetic on decorations, as Motion 8 said, let them be X's, not D's. In which case they must follow the worst-case scenario rules for promotion, that Arnold stated.
John Pryce