Re: Relational operators on intervals: bug?
- To: mathgroup at smc.vnet.net
- Subject: [mg128675] Re: Relational operators on intervals: bug?
- From: Andrzej Kozlowski <akozlowski at gmail.com>
- Date: Fri, 16 Nov 2012 01:50:55 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <k7p3j3$ca3$1@smc.vnet.net> <20121112080708.39931690E@smc.vnet.net> <k7skt2$ku3$1@smc.vnet.net> <20121114062826.C02FC69AC@smc.vnet.net> <6F6D7B27-201F-4AC9-9553-809ABA30A7CE@mimuw.edu.pl> <9488D537-DAE3-45F6-A088-38486CB999AB@math.umass.edu> <20121115085735.202336A1D@smc.vnet.net>
On 15 Nov 2012, at 09:57, Andrzej Kozlowski <akozlowski at gmail.com> wrote:
>
> On 14 Nov 2012, at 22:01, Murray Eisenberg <murray at math.umass.edu> wrote:
>
>> On Nov 14, 2012, at 5:39 AM, Andrzej Kozlowski <akozlowski at gmail.com> wrote:
>>
>>>
>>> On 14 Nov 2012, at 07:28, Richard Fateman <fateman at cs.berkeley.edu> wrote:
>>>
>>>> On 11/12/2012 9:13 PM, Murray Eisenberg wrote:
>>>>
>>>>>
>>>>> Here is the empty interval in Mathematica:
>>>>>
>>>>> Interval[{1, 0}]
>>>>>
>>>>> Indeed:
>>>>>
>>>>> Resolve[Exists[x, IntervalMemberQ[Interval[{1, 0}], x]]]
>>>>> False
>>>>>
>>>> Apparently this doesn't mean what you think it does. It gives the same
>>>> answer for Interval[{0,1}].
>>>
>>> Of course that is because
>>>
>>> IntervalMemberQ[Interval[{0, 1}], x]
>>>
>>> False
>>
>> What remains surprising to me is:
>>
>> Resolve[Exists[x, x \[Element] Reals, IntervalMemberQ[Interval[{0, 1}], x]]]
>> False
>>
>
>
> I don't find it surprising.
> All you are doing is, evaluating Exists[x,Element[x,Reals],False] which is False and then Resolve[False] which is also False.The fact that IntervalMemberQ[Interval[{0, 1}], x] immediately evaluates to False (unlike, for example, 0<x<1, which evaluates to itself) is responsible for this and shows that IntervalMemberQ is not intended to be used in symbolic expressions. Compare this with
>
> Resolve[Exists[x, x \[Element] Reals, 0 < x < 1]]
>
> True
>
> Andrzej Kozlowski
>
>
Maybe the following example will make my point clearer.
Compare:
Resolve[Exists[x, Element[x, Primes]]]
True
with
Resolve[Exists[x, PrimeQ[x]]]
False
Mathematica `predicates (functions ending with Q) always evaluate immediately to True or False and thus are generally unsuitable for use in symbolic expressions of the above kind.
Andrzej Kozlowski
- References:
- Re: Relational operators on intervals: bug?
- From: Richard Fateman <fateman@cs.berkeley.edu>
- Re: Relational operators on intervals: bug?
- From: Richard Fateman <fateman@cs.berkeley.edu>
- Re: Relational operators on intervals: bug?
- From: Andrzej Kozlowski <akozlowski@gmail.com>
- Re: Relational operators on intervals: bug?