Date: Jun 3, 2013 11:11 PM
Author: Andrzej Kozlowski
Subject: Re: Applying Mathematica to practical problems

For those who have seen the innumerate past discussion of this topic: 
essentially it all amounts to the fact I mentioned below, that on the
set of all "numbers" available in Mathematica, the ordinary equality (==
or Equal) is not an identity relation; in particular, it is
non-transitive. That's all. In fact Richard made once (or rather, at
least once) an attempt to show that one could dispense with Equal and
replace it with SameQ - if I recall correctly it was not a success but I
don't want to spend more time on this matter so won't bother looking for
past posts about this.

My point about non-standard analysis was that seemingly strange
"extensions" of the concept on number are common in mathematics: the
best known example is adjoining positive and negative infinity to the
real line. Non-standard analysis is another such example. Imbedding real
and complex numbers in a wider set, which contains "non-exact" numbers
is simply another example of this approach. I have not tried to consider
this carefully, but I am pretty sure it can all be made logically
consistent. In general the arithmetic of numbers of varying precision
will be "strange", even the associative law for addition will not hold
in general. There is nothing wrong with this. The only somewhat
controversial issue is that Mathematica's extension of equality to such
entities is not an identity relation. There are technical reasons for
this and I don't think this is a problem, particularly that Mathematica
also has (of course!) the genuine identity (SameQ or ===).

Andrzej Kozlowski

On 3 Jun 2013, at 12:05, Andrzej Kozlowski <> wrote:

> On 3 Jun 2013, at 09:34, Richard Fateman <> wrote:

>> On 6/1/2013 9:23 PM, Andrzej Kozlowski wrote:
>>> This is one of many examples of "cross purpose" arguing. I was not
>>> discussing implementing non-standard analysis at all. My point was
>>> that that there is nothing logically more dubious about a finite
>>> "number" x such that x+1=1 than there is about a positive "number" x
>>> such that nx< 1 for every positive integer n, or, alternatively,
>>> finite "number" x such that x/n >1 for every positive integer n.
>>> Mathematicians often use the word "number" when referring to objects
>>> belonging to some "extension" of the real line.

>> Oh where to start. Here's one place.
>> You say it is ok to have a number x such that x+1=1. I agree.
>> I say it is NOT ok to have a number x such that x+1=x.
>> You respond
>> It is ok to have a number x such that x+1=1.
>> Can you see the difference?

> Yes, I was careless about this, but that was because it does not

really matter. It is O.K. to extend the real line to an algebraic and
topological sturcture which contains objects such x such that x+1=x.
Of course such objects do not have inverses, so you can't conclude that
0=1. Admittedly, in Mathematica the underlying logic is obscured by
the fact that it equality is not identity, so you do have
> 1`0 == 1
> True
> 1`0 == 0
> True
> but
> 1`0 == 0
> True
> All this means that equality is a non-transitive relation on this

extended set of objects (but identity is). That is also logically
perfectly sound.
>> Also is the Grobner basis program in Mathematica the fastest?
>> I suspect it is not, though I have not compared it to Faugere's
>> work, or other unnamed systems. Is it the only one using significance
>> arithmetic? I suspect it is. What would that prove? What
>> would that prove about use as a default?

> This is nonsense. Faugere does not work on numerical analysis and has

not implemented a numerical Groebner basis. Other people have worked on
approximate Grobener bases using fixed precision arithmetic but (as far
as I know) there are no working implementations available.
> Groebner bases with exact coefficients are an entirely different

subject, unrelated to this discussion.

>> Finally, I would remind AK (and others)
>> that proving some number of correct results
>> does not prove an algorithm is correct. Proving even one incorrect
>> result demonstrates a bug.

> You have never demonstrated one incorrect result proved by

> AK