PCF is a reasonable model of computation, there is absolutely no doubt about that. It is an extension of the simply typed $\lambda$-calculus with natural numbers and general recursion. Modern functional programming languages (notably Haskell) are directly based on ideas developed through PCF. It is Turing complete in the sense that it is equivalent to Turing machines (Turing machines can simlate PCF and vice versa). Yet, when it comes to higher-type computation, Turing machines and PCF differ.

Type II computation has infinite inputs and outputs. A Turing machine has an infinite tape. These facts should be understood not as “we are doing actual infinite things” but that the resources, inputs and outputs are potentially unlimited. Type II computability models certain situations better than Type I. For instance, imagine a physics experiment which produces an unending sequence of 0’s and 1’s (for instance by listening to the cosmic radiation). A machine which processes this sort of input is better modeled by Type II (i.e., the infnite input is written on an infinite tape) than Type I (the input tape contains the Gödel code of a Turing machine that calculates the stream of 0’s and 1’s). This is why people are interested in Type II: not to discuss “truly infinite” data but to discuss “potentiall unbounded data which arrives as a sequence of bits”.

All of this does not matter because I can easily give examples of models of computation which are equivalent to Turing machines (can be simulated by and can simluate Turing machines) but differ in higher-type computation.

I think this has been as much of an explanation I can give in these comments. I refer you to the excellent book Higher-Order Computability by John Longley and Dag Normann. As a point of reference, I consider them to be **the experts** on the topic.

Surprisingly, the result is not inconsistent with pointwise continuity.

]]>My 1+1=2 analogy wasn’t very good. Here’s a better one: a description of how to trisect an angle with a marked straightedge (correct and interesting), followed by “this should be a lesson for the ‘experts’ who ‘know’ that trisecting angles is impossible. That’s true if one just uses a compass and unmarked straightedge. However, there are other ways of doing constructions.” The problem isn’t in the construction. The problem is that you seem to think the experts don’t know about it.

In your post, you said that m and timeout are not computable in PCF, and implied that this should be a lesson to “experts” who think that “all reasonable models of computation are equivalent to Turing machines”. So I pointed out that they are computable by Turing machines in the specific sense of computability that’s relevant to the Church-Turing thesis, which is what experts actually believe if they say they believe “all reasonable models of computation are equivalent to Turing machines”.

It’s not clear to me what you mean by type II computation. I thought type II computations had inputs and outputs which in general have no finite description, making them more general than type I computations. Unless someone shows how to actually perform such computations in the real world, they aren’t relevant to the Church-Turing thesis. But you say that type II Turing machines are just another programming language, and possibly equivalent to PCF+timeout+catch, implying that they are simulatable by type I Turing machines. Either way, they aren’t a counterexample to the Church-Turing thesis, and that’s all that these experts actually believe.

]]>`timeout`

are computable by Turing machines. I am guessing that you think (although you did not say so explicitly) that this is a general phenomenon, i.e., that the model you suggest is somehow “the most computable”. This however is not the case!
It just so happens that $m$ and `timeout`

are computable in the Turing machine model, but other slightly different functionals are not! For instance, I could ask a very similar question: *“Are all functions from Cantor space $2^\mathbb{N}$ to natural numbers $\mathbb{N}$ uniformly continuous?”* The answer again depends on the model of computation, and for the Turing machine model it is **negative**. In fact, there is a Turing-computable function from $2^\mathbb{N}$ to $\mathbb{N}$ which is *computably* not uniformly continuous. But if we use some other representation, for instance Type II computability or domain theory, then the answer is positive. The various representations give **incomparable** models of computation at higher types. None of them is “the best”, they are just different.