This topic is a follow-up on the previous one which discusses the elimination of countable choice when proving the approximate intermediate value theorem (aIVT):
For all continuous real functions f, for all a,b in R, for all e>0:
If f(a) < 0 < f(b) then there is x in R such that |f(x)| < e
One should first see the beautiful new proof of aIVT (countable-choice-free) that Matt F. gave on MathOverflow (
http://mathoverflow.net/a/255371/49). Here I hope to describe a more general way to eliminate countable choice, which works in other settings as well. I will use aIVT as a running example, and the usual bisection method for proving it. For clarity I will distinguish between equivalence classes and representatives, even though this is slightly more work.
You
will recall that the bisection method as usually described, asks one to
choose between two options at each iteration step. However, as I
described in the previous topic, if one eliminates all choice in the construction of a, b and f
(by making them recursive), and one picks a (recursive) representative a' and b' these iterative choices can be eliminated
and replaced by a completely deterministic algorithm.
This is because the definition and evaluation of all iterations can then be made recursive in a', b'.
Leaving
recursion aside, there is a more general way to eliminate choice in the
construction of a,b and f. [Actually I have been working on this for the
past 5 years and it shows how really slow my mind works in foundational
matters, that I didn't realize earlier in the previous topic how well that work
can be applied here )-: ]
And that way involves looking at f as well. (Thank you Mike Shulman for asking for `functionality')
Now
the easiest way to explain what I mean is to consider aIVT once again,
but keep in mind that the procedure works in many many other settings [I
think to have proved that in NToP (Natural Topology, a BISH-version of
intuitionistic topology) will comment and reference later].
The
most important thing is to construct R not as Cauchy-sequences (equiv.
classes if you will) but as shrinking rational intervals, using the
standard apartness # which generates the reals. This is Brouwer's way,
but I have adapted it to BISH in NToP. When we do so, we see that R
arises as a #-quotient of Baire space (B).
Now the beauty of NToP is the following: continuous functions from B to B form the machinery to construct continuous real functions, and (in the presence of a Lindelöf-type axiom which is valid in CLASS, INT and RUSS) vice versa every real function can be represented by such a "#-morphism".
Thm. (valid in CLASS, INT, RUSS):
Every continuous function f from R to R can be represented by a morphism f' from (B,#) to (B,#)
The relevant property here of such a morphism f' is that it represents f in one fell stroke, thus eliminating the need for countably many choices when iterating.
Now to prove the above theorem we need the Lindelöf-type axiom BDD (Bar Decidable Descent: "every bar on B descends from a decidable bar"), and to prove BDD in INT or RUSS we use choice axioms stronger than countable choice.
But. We don't need the above theorem. If we just limit ourselves beforehand to real functions f which are given by a representative f' which is a #-morphism from (B,#) to (B,#), then everything works like clockwork.
Because (not surprisingly), any function that you dream of can be thus represented, -unless perhaps you are dreaming in a very cleverly constructed topos-, so addition etc. (well, all the recursive functions :-)) can be thus represented, AND composition of morphisms is uniquely defined (deterministically).
So we see that, if we define a continuous real function f to be a real morphism iff it has a representation as a #-morphism, then we can use the bisection method to prove (without using countable choice):
aIVT*: For all real morphisms f, for all a,b in R, for all e>0:
If f(a) < 0 < f(b) then there is x in R such that |f(x)| < e
Proof: pick representatives a', b' in B, and f' which is a #-morphism representing f. Taking the mean of a,b (a/2+b/2) also has such a #-morphism-representative say m', and using a', b', f' and m' we can deterministically define a sequence x' in B which represents x in R for which f(x)<e.
Barring mistakes on my part (don't discount that possibility please...reluctant as I am to say so, past experience has taught me a lot of humility in that respect...), this method works for other settings as well, I believe.
Well...I'll be interested to hear from you.
Regards,
Frank