[FOM] a simple constructive example when AC is not true

Kreinovich, Vladik vladik at utep.edu
Wed May 2 22:53:53 EDT 2018


You are not missing anything, this is exactly my point.

We say that a number x is computable if there is an algorithm (procedure) that, given a natural number n, returns a rational number r_n for which |r_n - x| <=2^{-n}.  This is a standard definition in books on constructive mathematics, Bishop, Bridges, Kushner, anything.

To effectively check whether x > 0 or x < 1,  we apply this algorithm to n = 3 and get a rational number r_3 for which |r_3 - x| <= 1/8. Rational numbers we can efficiently compare with each other, so either r_3 < ½ or r_3 >= ½. If r_2 < ½, we take v = 0, the previous inequality implies that x < ½ + 1/8 and thus, that x < 1.

If r_3 > ½, this implies that x > ½ - 1/8 > 0 and thus, that x > 0; in this case, we take v = 1.

So, we have an algorithmic procedure that, given a computable real number x, computes a natural number v which is equal either to 0 or to 1, such that if v = 1 then x > 0 and if v = 0 then x < 1.

This is exactly what I said: that we can effectively decide whether x < 1 or whether x > 0, i.e., in the constructive sense of "or", we have x < 1 \/ x > 0. Constructive "or" Ax (B(x) \/ C(x)) means that we have an algorithm that, given x, returns either 0 or 1, in the first case we have B(x) in the second case we have C(x).

However, you are absolutely right, in my simple example, we cannot have a computable function that, given x, returns the corresponding v - and AC would means that such a choice function exists.

Literally, Axiom of Choice means that if Ax Ey P(x,y) then we can select one y for each x, i.e., we would have a function f(x) such that Ax P(x,y(x)). This is true in algorithmically understood constructive mathematics when x goes over natural numbers but not true when x goes over real numbers.

You are also absolutely true that we do not need to assume that x is computable, all we need is to have a procedure that, given n, return r_n, this procedure does not have to be an algorithm, it can be a measurement process. In this case, we can repeat the above argument and conclude that we can still algorithmically decide whether  x > 0 or whether x < 1. Here we talk about algorithms that use a procedure that transforms n to r_n as an oracle.


From: fom-bounces at cs.nyu.edu [mailto:fom-bounces at cs.nyu.edu] On Behalf Of Dennis E. Hamilton
Sent: Wednesday, May 02, 2018 10:55 AM
To: 'Foundations of Mathematics' <fom at cs.nyu.edu>
Subject: Re: [FOM] a simple constructive example when AC is not true



From: fom-bounces at cs.nyu.edu<mailto:fom-bounces at cs.nyu.edu> [mailto:fom-bounces at cs.nyu.edu] On Behalf Of Kreinovich, Vladik
Sent: Tuesday, May 1, 2018 13:41
Subject: [FOM] a simple constructive example when AC is not true

In purely constructive approach, when existence is algorithmic and functions are computable, by computing a computable real number x with accuracy 0.1, we can efficiently check whether x > 0 or x < 1.
[orcmid]

To confirm my understanding of this setup, I need to be more specific.

Suppose that, for computable real, x, there is a computation that approximates x by xa/10 where xa is an integer.  It is assured that xa/10 is not greater than x and that x is less than (xa+1)/10.  This is by assurance of x being a computable real and by construction of the algorithm for its approximation.

One can generalize this formulation to consider a computable function for  xa =  xapprox(n) that produces integers such that xa/(10^n) is not greater than x and x is less than (xa+1)/(10^n).

It is trivially the case that (xa > 0 or xa < 1), and likewise for xa/(10^n) and for x.  No efficiency is required.  Perhaps the better question is to know whether x is in the closed interval [0,1] in which case it may be necessary to get to an xapprox(n), for sufficiently large n, that settles the question.

Hence my confusion.

I am unclear how this, with needed repairs to my understanding about (x > 0 or x < 1), still tells us anything about AC with respect to the reals, since xapprox(n) is not a real-valued function.  At best, it produces segments of a Cauchy sequence of pairs of rationals, {xa[i]/(10^i), (xa[i]+1)/(10^i) }.   Note that xapprox(n) is not a function n reals and is not continuous in the real-analysis sense.

What am I missing?

-        Dennis


-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/fom/attachments/20180503/61e95c81/attachment-0001.html>


More information about the FOM mailing list