From all this we conclude thatpartial recursivefunctionsare semicomputable.
However, the stronger part of Church’s thesis is the converse: semicomputable functions are partial recursive. (The definition of computability in terms of semicomputability is simply taken from §1 without any changes.) As has been said, this result is an experimental fact. The experimental evidence for it is divided into several classes, which we consider in (b)–(d) below.
(b) In the literature we find a huge collection of recursive descriptions of various computable and semicomputable functions. See, for example, R´ozsa P´eter, Recursive Functions(Academic Press, New York, 1967). We shall give part of this list in the next section. We also find certain techniques for composing recursive descriptions that are applicable to entire classes of (semi)computable functions. Every time an author has tried to find a partial recursive description of a (semi)computable function, he has met with success.
(c) Turing proposed a mathematical characterization of an abstract com- puter, and gave strong arguments to the effect that this computer is universal, i.e., it can (semi)compute any (semi)computable function. His arguments came from a detailed analysis of the characteristic features of determinate computa- tional processes. (We again recall that we have not at all concerned ourselves with formalizing computational processes, but only with the results of such pro- cesses.) It turned out that the class of functions that are semicomputable by Turing machines exactly coincides with the class of partial recursive functions.
(d) Church, Post, Markov, Kolmogorov, Uspenskiˇı, and others have pro- posed other deterministic schemes for processing information of a general (not necessarily number-theoretic) character. In all cases it has turned out that if the sets of input and output are numbered in a suitable “effective” way, these meth- ods lead to a class of maps from Z+ to Z+ that coincides with some subclass of the partial recursive functions.
For further discussion of Church’s thesis, we refer the reader to the literature;
see, in particular, S. Kleene, Introduction to Metamathematics(Van Nostrand, New York–Toronto, 1952).
(b) sumn : (Z+)n→Z+, x1, . . . , xn →n
i=1xi, n3.
Suppose that we already know that sumn−1 is recursive. We can obtain sumn by juxtaposition and composition as follows:
sumn = sum2◦(sumn−1◦(prn1, . . . ,prnn−1),prnn).
Another version is to use recursion on xn, starting from the initial condition suc◦sumn−1and applying the recursive step
n−1 i=1
xi+k+ 1 = suc(sumn(x1, . . . , xn−1, k)).
This choice of recursive descriptions, even of “natural” ones, will become even more numerous as the functions become more complicated.
3.3. (a) prod2: (Z+)2→Z+, x1, x2 →x1x2.
Use recursion on x2, starting from the initial condition x1 and applying the recursive step
x1(k+ 1) =x1k+x1= sum2(x1k, x1).
(b) prodn: (Z+)n→Z+, x1, . . . , xn →x1, . . . , xn, n3.
prodn= prod2◦(prodn−1◦(prn1, . . . ,prnn−1),prnn).
3.4. (a) Z+→Z+, x→x−˙ 1 =
x−1, ifx2;
1, ifx= 1.
Use recursion with the functions
f : (Z+)0→Z+,· →1;
g= pr21: (Z+)2→Z+, x1, x2 →x1. (b) (Z+)2→Z+:
x1, x2 →x1−˙ x2=
x1−x2, ifx1> x2; 1, ifx1x2.
This “truncated difference” is obtained by applying recursion to the functions f(x1) =x1−˙1;
g(x1, x2, x3) =x3−˙1.
3.5. F : (Z+)n → Z+, where F is any polynomial in x1, . . . , xn with integer coefficients that takes values only in Z+.
If all the coefficients in F are nonnegative, then F is a sum of products of the functions prni : x1, . . . , xn → xi. Otherwise, we write F =F+−F−, where F+ and F− have nonnegative coefficients, and at all points of (Z+)n the nontruncated difference coincides with the truncated difference F+−˙ F− because of the assumption concerningF.
We shall often use the recursiveness of the function (x1 −x2)2 + 1, or h = (f −g)2+ 1, where f and g are recursive. This technique allows us to identify the set on which f =g with the “level set ofhat 1,” i.e., the set on whichh= 1.
3.6. “Step functions”: for eacha, b, x0∈Z+, the function defined by sa,bx0(x) =
a, forxx0, b, forx > x0.
If x0 = 1, we obtain this function by recursion with initial valueaand all the succeeding valuesb. In the general case we set
sa,bx
0(x) =sa,b1 (x+ 1 ˙−x0).
3.7. rem(x, y) = the remainder in[1, x] (since we cannot use zero!) when y is divided by x.
We have
rem(x,1) = 1, rem(x, y+ 1) =
1, if rem(x, y) =x;
suc◦rem(x, y), if rem(x, y)=x.
We now apply a somewhat artificial technique. We consider the step function s=s2,11 , i.e.,s(1) = 2 ands(x) = 1 ifx2, and we set
φ(x, y) =s
(rem(x, y)−x)2+ 1 . Obviously,
rem(x, y)=x⇔φ(x, y) = 1, rem(x, y) =x⇔φ(x, y) = 2, so that
rem(x, y+ 1) = 2 suc(rem(x, y)) ˙−φ(x, y) suc(rem(x, y)).
This gives a recursive definition of rem.
We next describe this technique in a more general form.
3.8. Supposehis defined by “recursion with conditions,” i.e., h(x1, . . . , xn,1) =f(x1, . . . , xn);h(x1, . . . , xn, k+ 1)
=gi(x1, . . . , xn, k, h(x1, . . . , xn, k)),
if the condition Ci(x1, . . . , xn, k, h) holds, i = 1, . . . , m, where the exhaustive and mutually exclusive conditions Ci are given in the form
Ci is fulfilled⇔φi
x1, . . . , xn, k, h(x1, . . . , xn, k)
= 1,
with φi an everywhere defined recursive function that takes only the values 1 and 2. Then we can write the recursive step as follows:
h(x1, . . . , xn, k+ 1) = 2 m i=1
gi
x1, . . . , xn, k, h(x1, . . . , xnk)
−˙ m i=1
(giφi)
x1, . . . , xn, k, h(x1, . . . , xn, k) . This device allows us to show that the following functions, which will be needed later, are primitive recursive:
3.9. qt(x, y) =
the integral part ofy/x, ify/x1;
1, ify/x <1.
We have
qt(x,1) = 1;
qt(x, y+ 1) =
⎧⎪
⎨
⎪⎩
qt(x, y), if rem(x, y+ 1)=x;
qt(x, y) + 1, if rem(x, y+ 1) =xandy+ 1=x;
1, ify+ 1 =x.
We reduce the conditions to the standard form 3.8 using the functions
˜ s
(rem(x, y+ 1)−x)2+ 1 , s
(rem(x, y+ 1)−x)2+ 1
·s˜
(x−y−1)2+ 1 , s
(x−y−1)2+ 1 , where s=s1,1 2and ˜s=s2,1 1.
3.10. rad(x) = the integral part of√ x.
We have
rad(1) = 1, rad(x+ 1) =
rad(x), if qt(rad(x) + 1, x+ 1)< rad(x) + 1;
rad(x) + 1, if qt(rad(x) + 1, x+ 1) = rad(x) + 1.
The reduction of these conditions to the standard form 3.8 will be left to the reader.
3.11. (a) min(x, y):
min(x,1) = 1, min(x, y+ 1) =
min(x, y), ifxy;
min(x, y) + 1, ifx > y.
(b) max(x, y) : analogous.
3.12.If f(x1, . . . , xn)is recursive, then Sf =
xn
k=1
f(x1, . . . , xn−1, k) and P f=
xn
4
k=1
f(x1, . . . , xn−1, k) are recursive
In fact,
Sf(x1, . . . , xn−1, xn+ 1) =Sf(x1, . . . , xn) +f(x1, . . . , xn+ 1), P f(x1, . . . , xn−1, xn+ 1) =P f(x1, . . . , xn)·f(x1, . . . , xn+ 1).
3.13. If f(x1, . . . , xn) is recursive, then so are the functions obtained from f by:
(a) any permutation of the arguments;
(b) adding any number of “dummy” arguments;
(c) identifying the elements of any subset of the arguments(f(x, x) instead of f(x, y),and so on).
In fact, all of these functions can be obtained fromf and the various prmi using composition and juxtaposition.
3.14.A mapf : (Z+)m→(Z+)n is recursive if and only if all of its components prni ◦f are recursive.
This is obvious.
In conclusion, we note that all the specific functions described above are primitive recursive, and that all the above general operations, when applied to primitive recursive functions, yield primitive recursive functions. Starting in the next section, we shall make essential use of the µ-operator, which was defined in 2.3(d).