[Date Index]
[Thread Index]
[Author Index]
Re: LessEqual vs Inequality, was ..Re: Replacement Rule with Sqrt in denominator
*To*: mathgroup at smc.vnet.net
*Subject*: [mg114717] Re: LessEqual vs Inequality, was ..Re: Replacement Rule with Sqrt in denominator
*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>
*Date*: Tue, 14 Dec 2010 06:54:26 -0500 (EST)
*References*: <ie2971$mqh$1@smc.vnet.net> <4D050013.8050105@cs.berkeley.edu> <928BCB32-AEF9-4D13-87E0-BDDACF1BF878@mimuw.edu.pl> <4D055126.6080209@cs.berkeley.edu> <ie4mt7$9a7$1@smc.vnet.net> <4D0645BE.6000205@cs.berkeley.edu>
On 13 Dec 2010, at 17:11, Richard Fateman wrote:
> On 12/13/2010 12:52 AM, Andrzej Kozlowski wrote:
>> On 12 Dec 2010, at 23:48, Richard Fateman wrote:
>>
>>>>>
>>>> Do you mean a user should not be allowed to enter Less[2,x,3] but
>> always required to use the form Inequality[2,Less,x,Less,3]?
>>> I did not propose to tie the user's hands in this way.
>>>> Or should Less[2,x,3] always evaluate to
>> Inequality[2,Less,x,Less,3]?
>>> That would be my solution,. Is my solution. Indeed, Less[x,y] is
>> simplified to Inequality[x,Less,y]
>>>> (In that case you would still have the same problem if, for some
>> reason, you prevented evaluation).
>>> If I prevented simplification/evaluation, I would presumably not
>> expect much of anything to work.
>>> I can' t think of a reason.
>>
>> First in Mathematica, there are often functions that have attributes
>> HoldAll or Hold First etc, which means that the act on unevaluated
>> arguments. So if an argument was written as Less[x,y] it would not be
>> converted to Inequality[x,Less,y] before pattern matching was applied =
to
>> it (most Mathematica "functions" are just local pattern matching =
rules).
>
> Um, I think this is irrelevant. Consider the "function" in =
Mathematica
> Divide. It exists in Mathematica.
>
> Divide[a,b] is immediately transformed to Times[a,Power[b,-1].
>
> Divide[a,b] /. Times-> Foo results in Foo[a,Power[b,-1]].
>
> Divide has attributes Protected, Listable, NumericFunction.
>
> It's not that different from Less, in some senses:
> (a). Divide can always be rewritten as Times[Power ..] or as Rational.
> (a') Less can always be rewritten as Inequality[ ..], at least if
> Mathematica didn't insist on rewriting in the opposite direction,
> namely making Inequality[a,Less,b] into Less[a,b].
> (b). Divide does not have attributes Hold, HoldFirst, etc etc
> (b') Neither does Less.
>
> So now we have set the stage for DanL and friends.
> 1. Remove Less. and always replace it with Inequality ...
> 2. Same for Greater, etc etc.
> 3. (suggestion) Rename Inequality with Comparison.
> 4. modify the rest of the programs, like Compile, Display, as =
necessary.
> 5. Change the documentation.
>
>
> There may still be work to do for dealing with the elements in
> Mathematica that do not obey the "law of trichotomy", which states
> that a<b, a==b, or a>b. But this is not true for objects that are
> not comparable. Like Complex numbers, various undefined objects,
> Indeterminate, NaN.
>
>
Yes, this seems plausible, but of course it would require a fundamental
re-write of Mathematica for a very minor gain (though I admit that there
would be some gain). But I would much rather Wolfram employed its
resources on developing many new functions and algorithms that I
actually use and that are important to me, so I would strenuously object
to any idea of diverting these resources to anything of this kind. As I
have pointed out to you many times, I consider these sort of things that
seem to excite you so much as essentially of very little practical
interest to the "working mathematician". I would certainly not pay any
money to get this sort of improvement and I doubt many users would.
>
> Note that LogicalExpand does not distinguish between Less[x,y,z] and
Inequality[x,Less,y,Less, z].
What do you mean by note? I pointed this out to you, LogicalExpand
reduces both to the same canonical form.
I am curious if you really believe your own words when you write stuff
like this and whether I really like to imagine you discovered it all by
yourself or knew it anyway.
>
> FullSimplify [Less[x,y,z]-Inequality[x,Less,y,Less,z] ]
> does not reduce to zero, as it should. So Mathematica, dare
> I say, exhibits a bug.
No, these expressions are not equal but logically equivalent. The way to
show that is
In[103]:= Refine[Less[x, y, z], Inequality[x, Less, y, Less, z]]
Out[103]= True
In[104]:= Refine[Inequality[x, Less, y, Less, z], Less[x, y, z]]
Out[104]= True
or by using LogicalExpand (as you noticed below)
>
> Oh, LogicalExpand[Inequality[x,Less,y,Less,z]] is x<y&&y<z
> as is LogicalExpand[x<y<z].
>
>
> Actually, you appear to be wrong, since
> LogicalExpand[x<y<z] and LogicalExpand[z>y>x] are different.
Again,
In[107]:= Refine[x < y < z, z > y > x]
Out[107]= True
In[108]:= Refine[z > y > x, x < y < z]
Out[108]= True
Actually, it would be good to have a function that checked both
implications at once (Refine performs the job of ImpliesQ in older
versions of Mathematica).
>
> You appear to be proposing some
> kind of alternative to disjunctive normal form (or conjunctive normal
> form), both of which are quite well studied. Re-grouping of logical
> terms for logic synthesis is also quite well studied, (see circuit
> minimization). The general circuit minimization problem is believed to
be intractable. Apparently there are advantages to a computer science
> education :)
I am certainly not proposing this, as should have been quite clear from
what I wrote. I had assumed, I admit mistakenly, that that was what you
were proposing as it did not come to my mind that you were instead
proposing a massive re-write of Mathematica that would, in effect,
eliminate Greater, Less etc. Thank you for confirming that the approach
I thought you had proposed is intractable, as I had expected.
I agree that there are some advantages to a computer science education -
I do actually teach mathematics, and Mathematica, to some excellent
computer science students (among the best in the world). But I think
there are even more advantages to a mathematics education. For one, one
is less inclined to keep eternally circling the same basic issues rather
than getting to some interesting problems.
Andrzej Kozlowski
Prev by Date:
**Re: Replacement Rule with Sqrt in denominator. Also Bug in Series**
Next by Date:
**Re: LessEqual vs Inequality, was ..Re: Replacement Rule with Sqrt in denominator**
Previous by thread:
**Re: LessEqual vs Inequality, was ..Re: Replacement Rule with Sqrt in denominator**
Next by thread:
**Re: LessEqual vs Inequality, was ..Re: Replacement Rule with Sqrt in denominator**
| |