MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: LessEqual vs Inequality, was ..Re: Replacement Rule with Sqrt in denominator

  • To: mathgroup at
  • Subject: [mg114752] Re: LessEqual vs Inequality, was ..Re: Replacement Rule with Sqrt in denominator
  • From: Richard Fateman <fateman at>
  • Date: Wed, 15 Dec 2010 07:53:00 -0500 (EST)

On 12/14/2010 3:57 AM, Andrzej Kozlowski wrote:
>   Well, you have worn me out, so basically I quit. Not that I agree with
> much. Your long post consist of a mixture of the obvious, which you seem
> to believe is a revelation and other things that reveal your own
> ignorance of Mathematica and even certain areas of algorithmic algebra.
> I will point out just one:
>> You are asserting that "Refine" can be used.  Thus Refine, in the
> computer algebra terminology, is
>> a Zero Equivalence algorithm.   (or a Logical Tautology algorithm, in
> some sense).
> Not at all.

No, just in some sense.

  Refine does not deal with logical tautologies or booleans.

  A zero-equivalence algorithm traditionally
tests to see if  f1(x,y,..) - f2(x,y,...)  is zero for all possible
values of x,y, ....

TautologyQ should be able to test to see if  f1(x,y,...) == f2(x,y, ...)
is True for all possible values of x,y, ... in the set {True,False}.

Mathematica is somehow being more sensitive to types here in not 
permitting  a==b,   but requiring the syntax Equivalent[a,b].

So TautologyQ[Equivalent[a,b]]  is a zero equivalence algorithm, in some 
sense, but for logical expressions.  Which is what I said.
[It is trivial in some sense, since one can compute a table of 2^n 
entries,  where there are n variables. But clearly this method takes
time exponential in n.]

If you were familiar with the terminology of simplification, canonical
forms, zero-equivalence algorithms, the analogy might make sense to
you too.

In answer to another item: Quantifier elimination and cylindrical 
algebraic decomposition are not usually part of the undergraduate 
curriculum in computer science or mathematics. Depending on 
specialization, they may or may not be part of graduate programs either. 
A computer scientist studying computer algebra systems would probably 
encounter these topics, but even so, might avoid them.

As for whether something is meaningless to Mathematica or not, or
whether Mathematica computes something "by accident", that is a
philosophical issue.  My view is that nothing that is computed
deterministically is "by accident".  And everything is
meaningless to Mathematica. It is just a program
that is pushing bits around.

Glad to hear I've worn you down.  I was about to quit :)

> In fact Mathematica has EquivalentQ and Tautology for this purpose:
> Equivalent[a&&  (b || c), a&&  b || a&&  c] // TautologyQ
> True
> What Refine does (Like Simplify and FullSimplify) is to perform
> simplifications of what are called first order formulas in the language
> of real fields with parameters in the real numbers. For example
> x^2>y>z+1 is such a formula and so is
> z<y-1<x^2-1. But (x^2>y>z+1) - (z<y-1<x^2-1) is not a forumla but a
> meaningless construct, a kind of accidental consequence of the way
> Mathematica language is constructed. It does not make sense to write
> Simplify[x^2>y>z+1 - z<y-1<x^2-1]; even when this sort of thing seems to
> work sometimes, it is by accident (it will work when the two expressions
> that you are subtracting evaluate to the same thing but not otherwise
> since Mathematica will not assign any meaning to the difference. On the
> other hand
> Refine[x^2>  y>  z, z - 1<  y - 1<  x^2 - 1]&&
>   Refine[z - 1<  y - 1<  x^2 - 1, x^2>  y>  z]
> True
> but it is certainly not a "logical tautology" algorithm. It belongs to
> the same "field" as the Tarski-Seidneberg Theorem, Quantifier
> Elimination, Cylindirical ALgebraic Decomposition etc. I am not sure if
> this is "computer science" but there are advantages to an education that
> includes such things which apparently you have not benefitted from.

  • Prev by Date: Re: How to create a notebook outside of Mathematica?
  • Next by Date: Re: Idiomatic use of Reduce in a physics problem
  • Previous by thread: Re: LessEqual vs Inequality, was ..Re: Replacement Rule with Sqrt in denominator
  • Next by thread: Re: On the foundation of Mathematica, was Re: Foo /: