On the Structure of Turing Universe: The Non-Linear Ordering of Turing Degrees Yazan Boshmaf November 22, 2010 Abstract Turing Universe: the final frontier. These are the voyages of five mathematicians. Their ongoing mission: to explore strange new computability problems, to seek out new degrees of unsolvability and new structures, to boldly go where no man has gone before. - Adapted from Star Trek This paper is a study of the Turing Universe, which is a collection of all Turing Degrees. In respect, Turing Degrees are levels of computability naturally arising from the set of natural numbers. We show that there exist incomparable pairs of Turing Degrees as to prove the non-linearity of the Turing Universe. This study focuses on the works of five great mathematicians who had the greatest impact on Computability Theory: Gödel, Church, Turing, Kleene, and Post. Department of Electrical and Computer Engineering, University of British Columbia, Vancouver, Canada. (e-mail: boshmaf@ece.ubc.ca) 1
Contents 1 Introduction 3 2 Computable Functions 5 2.1 Informal Description....................... 5 2.2 Formal Definitions........................ 6 2.2.1 Recursive Functions.................... 6 2.2.2 Turing Machines..................... 10 2.2.3 Equivalence of Models.................. 11 3 Coding and The Universal Turing Machine 12 3.1 Gödel Numbering for Turing Machines............. 12 3.2 The Universal Turing Machine.................. 14 4 Enumerability and Computability 15 5 Comparing Computability 18 5.1 Many-One Reducibility...................... 18 5.2 The Non-Computable Universe and m-degrees......... 19 6 Computing with Oracles 21 6.1 Oracle Turing Machines..................... 22 6.2 Relativized Computable Functions................ 23 6.3 The Turing Universe....................... 23 6.4 Enumerating with Oracles and Jump Operators........ 26 7 The Structure of Turing Universe 28 7.1 Oracles as Strings......................... 28 7.2 Non-Linearity of Turing Universe................ 29 8 Conclusion 35 9 References 35 2
1 Introduction The goal of this paper is to prove the non-linearity of the Turing universe. The proofs we present are intuitive and simplistic compared to the original ones, and use basic results in computability theory. Let us give some background on Turing universe and its structure. For any two sets A, B N, we say A is Turing reducible to B (written A T B) if the characteristic function of A, χ A, is computable by an oracle Turing machine, ˆT, using an oracle B. An oracle Turing machine is a normal Turing machine with an extended power to query an external information source (called an oracle) concerning set memberships. We call A and B Turing equivalent (written A T B) if they are reducible to each other. The T operator defines an equivalence relation whose class is called a Turing degree or a degree of unsovability. That is, for any set A N a = degree(a) := {X N X T A} is the degree of all sets that are Turing equivalent to A. The Turing universe D is a collection of all Turing degrees. The Turing universe is defined as a partial order that is induced by the operator T over all sets of natural numbers. That is, for any two sets A, B N a b A T B where a and b are the Turing degrees of the sets A and B, respectively. There is an interesting substructure of D that contains the degrees of all sets whose elements can be effectively listed. These sets are called computably enumerable (c.e.) sets and can be viewed as unbounded search problems. For a set A N, we say A is c.e. in B if we can computably enumerate the elements of A using an oracle B. We say the degree a is c.e. in b if some A a is c.e. in B b. Finally, we write E for the collection of all c.e. Turing degrees. The goal of this paper is to prove that D and E are not linearly ordered (the latter case is known as Post s Problem), that is, there exists a pair of Turing degrees that are incomparable. The goal is to prove the following theorem: 3
Theorem (Kleene-Post, Friedberg-Muchnik): There exist (c.e.) Turing degrees a and b such that a T b and b T a. We will now summarize the proofs and the rest of the paper. We construct two sets A and B such that A T B and B T A, where a = degree(a) and b = degree(b). The construction involves satisfying two relations which we call requirements. The requirements for constructing the sets A and B are: R 2i : χ A Φ B i R 2i+1 : χ B Φ A i where i N is the construction stage, and Φ S i is the {0,1}-valued output of the i th oracle Turing machine, ˆTi, using the oracle S. In the case of D, we construct A and B as a sequence of binary strings representing their characteristic functions according to some strategy, as shown by Kleene and Post. Satisfying the requirements for E, on the other hand, is more difficult as we cannot use oracles. We use set approximating sequences and define strategies that utilize priorities as a rule for selecting a candidate element for inclusion in either A or B. This method is known as the priority method and was proposed independently by Friedberg and Muchnik. We review all major results in computability theory that are needed to develop the aforementioned methods. So what?, we hear you say. First, we argue that defining a hierarchical structure for complex problems is very important to reveal the dynamic relationships between different levels of abstraction 1. Moreover, putting such a hierarchical structure in a descriptive framework allows us to investigate each level with its local constraint. In respect, this is the underlying power of Turing universe. We can now get a deeper understanding of Gödel s Incompleteness Theorem and potentially leap over the unproved (and perhaps the unprovable) assumptions of incomputability, on which it is based. Second, if we look at computable and incomputable sets as having some computational information content (such as their mathematical description), then the existence of incomparable sets leads us to the fact that these sets hold different kinds of information content; a first result towards understanding the nature 1 This is not surprisingly new. In science, the study of quantum mechanics, atoms, molecules, cells, organism, and so on, revealed many interesting properties between such different levels of abstraction. 4
of computability in complex environments, and its relationship to basic science and the empirical observation through algorithmic processes. What a rich and interesting topic! We wish to thank the following people: Bader AlAhmad for his exquisite discussions and interest in the subject matter, Prof. Joel Friedman for introducing us to the beautiful world of theoretical computer science, and for his unparalleled (and addictive) teaching style, the authors of the references for providing the means for this study to materialize, and last but not least, we thank the folks at ICICS Reading Room for the unlimited supply of chocolate bars and candy. 2 Computable Functions What is a computable function? How can we formalize it in a rigorous mathematical model? In this section, we give an informal intuition on how a function can be computed. Then, we formalize the discussion and present two basic models of computation. Finally, we show that all of the accepted models define the same class of computable functions. 2.1 Informal Description An algorithm for a function 2 f : N N is a finite set of instructions which, given an input x N, yields an output y = f(x) in a finite number of steps. Intuitively, such an algorithm must specify how to obtain each step of its calculations from previous steps and its input x. Informally, we say f is a computable function if there is an algorithm that calculates the output f(x) for each input x N. Note that this algorithm halts if f(x) is defined for all x N. Otherwise, it will loop forever, that is, it will not halt. It should be noted that the algorithm of any computable function could be calculated by any modern computer, if one ignores the restrictions on the amount of computing time and storage capacity. 2 In this study, we fix a domain for computable functions which is the set of natural numbers. This is the most basic set we can choose that is capable of expressing a full range of mathematical practice. This, however, can be extended to include rational number by proper enumeration or encoding. 5
2.2 Formal Definitions We discuss two formal models of computation. There is, however, a consensus that these and other models give rise to exactly the same class of functions. It is safe to say that all results presented in this study are independent of the chosen formal model of computation. 2.2.1 Recursive Functions The natural way to devise an algorithm is by stating some logical assertions about how something could be done in a finite number of steps. Accordingly, the language of logic seems very suitable to express such algorithms, and in particular, the logical induction. Charged with this intuition, the great mathematician, Gödel, defined what is called primitive recursive functions as follows. Definition 1 (Primitive Recursive Functions): The class of primitive recursive functions includes all functions that are either initial functions or constructed from initial functions using substitution and primitive recursion rules, as follows: (1) The following initial functions are primitive recursive: (a) The zero function defined by: 0(n) = 0, n N, (b) The successor function defined by: n + = n + 1, n N, (c) The projection functions defined by: U k i ( m) = m i, for each k 1, and i = 1,..., k, (where we write m = m 1,..., m k ). (2) If g, h, h 0,..., h l are primitive recursive then so is f obtained from these preceding functions, by one of the following rules: (a) The substitution rule given by: f( m) = g(h 0 ( m),..., h l ( m)), (b) The primitive recursion rule given by: f( m, 0) = g( m), f( m, n + 1) = h( m, n, f( m, n)). 6
Example 1: The function f(x, y) = x + y is primitive recursive. This is clear once we apply the rules in Definition 1 as follows: f(m, 0) = U 1 1 (m) = m, f(m, n + 1) = (f(m, n)) + = (U 3 3 (m, n, f(m, n)) + = (m + n) + 1. So far, based on our definition of primitive recursive functions, we intuitively insist that there exist some algorithms that compute such functions. This, however, is not enough as the class of primitive recursive functions does not include all computable functions. The general argument is that there exist some recursive functions that are not primitive but are computable. This can be shown by a simple diagonalization of all primitive recursive functions (which are total functions), and then one can define a recursive function that is not primitive. This function turns out to be partial. This demands that we extend the class to include all partial recursive functions. But first, let us define what we mean by total and partial functions. Definition 2 (Total and Partial Functions): We say that a function f : A B is total if f(x) is defined (written f(x) ) for every x A. Otherwise, if f(x) is undefined (written f(x) ) for some x A, we say that f is partial. Now, let us extend the class of primitive recursive functions to include all partial recursive functions as follows. Definition 3 (Partial Recursive Functions): A function f is partial recursive (written p.r.) if f can be defined using initial functions and a finite number of applications of the rules in Definition 1, in addition to one other rule called the minimalization rule, defined by: If g( n, m) is p.r., then so is f( n) = µm[g( n, m) = 0], where µm[p (m)] means the minimal value of m such that P (m) is true. Moreover, we call a p.r. function, f, recursive if it is total. The µ-operator can be viewed as a search operation where the algorithm that computes f( n) computes g( n, 0), g( n, 1), g( n, 2)... and stops whenever g( n, m 0 ) = 0 at which m = m 0. This computation can never halt as well. Again, we still insist that all (partial) recursive functions are computable based on the intuitive idea of logical induction. Luckily, Church was working 7
on his, yet equivalent, λ-calculus and conjectured the following which we accept as true as many experts in the field did. Thesis 1 (Church): The following are equivalent for any function f: (1) f is recursive f is total and effectively computable. (2) f is p.r. f is effectively computable. What is meant by f being effectively computable is that there exists some description of an algorithm, in some language, which can be used to compute any value f(x) in a finite number of steps for which f(x). Based on Thesis 1, we can extend our discussion of computability to include sets and relations. This is done by defining a characteristic function for each set or relation, and then call such a set or relation computable if their corresponding characteristic functions are computable, as follows. Definition 4 (Recursive Relations and Sets): Let S be any set, and R be any relation. We define their computability as follows. (1) First, define the characteristic { function of S and R by: 1, if x S, χ S (x) = 0, if x S, { 1, if R( x) is true, χ R ( x) = 0, if R( x) is false, (2) We say S or R are recursive, if χ S (x) or χ R ( x) are recursive as well. Example 2: The relation < is recursive (or efficiently computable). We show this by showing that n < m is primitive recursive. Let γ(m) be the predecessor function defined by: { m 1, if m > 0, γ(m) = 0, if m = 0, 8
This function is primitive recursive as γ(0) = 0(n) and γ(m + 1) = U1 2 (m, γ(m)). Now, let diff(m, n) be the recursive difference function defined as follows: { m n, if m n, diff(m, n) = 0, if m < n, The function f is primitive recursive as diff(m, 0) = U1 1 (m) = m and diff(m, n+1) = γ(u3 3 (m, n, diff(m, n))). Finally, let ztest(m) be the zerotest function defined as follows: { 0, if m = 0, ztest(m) = 1, if m 0, It is clear that this function is also primitive recursive as ztest(0) = 0(n) and ztest(m + 1) = (U 2 2 (m, ztest(m))) +. Now, we have χ < (n, m) = ztest(diff(m, n)) = ztest diff(m, n), and hence, the relation n < m is primitive recursive. Here is another useful result that simplifies our use of the µ-operator. Proposition 1 (Minimalization and Recursive Relations): If R( m, n) is a recursive relation, then f defined by f( m) = µn[r( m, n)] := the least n such that R( m, n) holds, is partial recursive as well. Proof: Notice that the χ R ( m, n) = diff(1, χ R ( m)), which is primitive recursive. Now, by Definition 3, f( m) = µn[χ R ( m, n)], and hence, f( m) is primitive recursive. Finally, we propose the following useful recursive function that we will use in the upcoming sections to effectively list pairs of natural numbers. Proposition 2 (The Recursive Pairing Function): There exists a bijective recursive pairing function.,. : N N N. Proof: We use Thesis 1. First, we construct and array of all pairs of natural 9
numbers. After that, we list the pairs in the array algorithmically in a carefully selected order such that we do not go in a direction that is infinite before listing other previous pairs. This defines the required function. Alternatively, we can define x, y = 2 x 3 y, which is primitive recursive 3, injective, and well-defined. Hence,.,. is recursive. 2.2.2 Turing Machines Turing machines, named after their inventor Alan Turing, are by far the strongest model of computation because they are a true measure of how difficult it is to carry out a particular type of computation. Hence, they became the standard model in the study of computational complexity. We will consider the classical Turing machine in this study, which has many equivalent variants (see Sipser s book for a proper treatment). The hardware of a Turing machine consists of a tape, divided into cells, which is infinitely extendable in both directions, and a read/write head. When talking about a Turing machine, T, we actually mean its program. Turing programs are the internal states of T (Turing refers to them as the human states of mind ). We describe T as follows: 1. The tape symbols, called the tape alphabet, are the symbols that are allowed to be written on the tape, where each tape cell contains exactly one symbol. We refer to the tape symbols as the set Σ = {0, 1}, where 0 represents an empty (or blank) cell. 2. An infinite list of internal states, represented by the set Ω = {q 0, q 1,... }. At the start of any given computation, T always starts in one state, q 0. 3. The action symbols, represented by the set Γ = {0, 1, L, R}, where 1 means write 1, 0 means write 0 or erase current cell, L means move head one cell to the left, and R means move head one cell to the right. 4. The Turing program, P = {Q 1,..., Q n }, is formed from a set of instructions, called quadruples. Any quadruple Q k is in the form q i SAq j, which means if T is currently at state q i Ω reading tape symbol S Σ, then perform action A Γ and go to the new state q i Ω. 3 By showing that both exp(x) = c x and mult(x, y) = xy are primitive recursive for some constant c, then it follows that x, y = 2 x 3 y is primitive recursive as well. 10
Definition 5 (Turing Machines Input Convention): To input n N to a Turing machine, T, place n + 1 consecutive 1 s on the tape and then set the reading head in q 0 reading the leftmost 1. Definition 6 (Turing Machines Output Convention): If a Turing machine, T, halts its computation on input n N (i.e., there are applicable quadruple in T ), output the number ϕ T (n) of 1 s left-printed on the tape. Note that we input n + 1 consecutive 1 s for uniformity all computations, even those with input 0, start with the head reading the leftmost 1. Definition 7 (Turing Computable Functions): A function f(n) is Turing computable if f(n) = ϕ T (n) for all n N on some Turing machine T. Example 3: The successor function is Turing computable. Let T have a Turing program P = (the empty program). Then ϕ T (n) = n+1 for all n N. Example 4: The zero function is Turing computable. Let T have the following Turing program P : q 0 10q 1 := quadruple for deleting 1 s, q 1 0Rq 0 := quadruple for moving right, Hence, ϕ T (n) = 0 = 0(n) for all n N. Definition 8 (Extended Turing Machines Input/Output): We associate with a Turing machine, T, a partial function ϕ (k) T of k variables, by making ϕ (k) T ( n) the output when T is run on the input n = n 1,..., n k. We input n as 1 0... 1 n1 +1 0 1 0... 1 n2 +1 0... 0 1 0... 1 nk +1, and setting the reading head is state q 0 reading the leftmost 1. 2.2.3 Equivalence of Models We have finished outlining the two classical models of computation. As promised, we will combine all the definitions of computable functions into a single thesis. Fortunately, this is the work of Church and Turing. 11
Thesis 2 (Turing): Every function for which there is an intuitively effective process for computing its values can be shown to be Turing computable. This thesis had immediate support by the research community, which supported Church s thesis. In belated recognition of Turing s contribution, people usually refer to Church s famous thesis as Church-Turing thesis. Thesis 3 (Church-Turing): The following are equivalent for a function f: (1) f is effectively computable. (2) f is recursive or partial recursive (p.r.). (3) f is Turing computable. And finally, we use Thesis 3 to define a unified definition for computable functions as follows. Definition 9 (Computable Functions): A function f is computable if it is either recursive, partial recursive, effectively computable, or Turing computable. 3 Coding and The Universal Turing Machine Given a Turing machine T and a computable function f over N, how can T be converted into a number e N, such that all Turing programs could be effectively listed? What does it mean to feed e to T and compute f(e)? In respect, we first discuss Gödel numbering for Turing machines and then show the existence of a Turing machine that takes its own description (and others) as an input. 3.1 Gödel Numbering for Turing Machines We use Gödel-style coding to get an effective listing of all Turing machines. Given a set of all Turing programs P, there is an encoding Enc : P N such that with some little adjustment we can get a decoding Dec : N P by a computable inverse the Enc 1. This will enable us to enumerate any program in P with a non-negative integer, and hence, call up other Turing programs by their index just as a modern computer system does. 12
Before we do so, let us consider the set S = {x x N is a prime}. It can be shown that S is primitive recursive. Let p 0, p 1,... be a list of all prime numbers in an increasing order, then any x N can be uniquely represented by the following: x = p x 0 0 p x 1 1 p x 1 1... p xn n..., for finitely many x i 0. Now, it can be shown that the function (x) i := the exponent x i of the prime p i, is a primitive recursive function of x. This function is very useful because for any countable set of non-negative integers {a 0, a 1,... }, there is a code number, a = p a 0 0 p a 1 1..., such that a i = (a) i is computed primitively recursively from a. This is usually referred to as multiplicative encoding. Now given such an encoding, we apply it to Turing machines and start by encoding the tape symbols, action symbols, and internal states. Let Enc(L) = 2 (the 0 th prime number p 0 ) Enc(R) = 3 (the 1 st prime number p 1 ) Enc(q i ) = p 2+(2i) (the (2 + 2i) th prime number) Enc(S i ) = p 2+(2i+1) We can then encode any quadruple Q. For Q = q i SAq i, let Enc(Q) = 2 Enc(q 1) 3 Enc(S) 5 Enc(A) 7 Enc(q j) And finally, for any Turing program P = {Q 0,..., Q n }, let Enc(P ) = 2 Enc(Q 0) 3 Enc(Q 1) p Enc(Qn) n be a Gödel number e N for P. We can now define the following. Definition 10 (The Turing Machine Code): The e th Turing machine P e is defined by { P, if Dec(e) = some Turing program P, P e =, otherwise (the empty program), and we say P e has an index e. 13
Now, we can simplify our notation ϕ (k) T in Definition 8 by using the index of T as follows. Definition 11 (The Indexed Turing Machine): For a Turing machine T with index e N, let ϕ (k) T := the k-place partial function computed by P e. We call ϕ T = ϕ (1) T the e th partial computable (p.c.) function. Now, it is clear that the list ϕ 0, ϕ 1,... is an enumeration or effective listing of all Turing machines (or programs). This gives us the following theorem. Theorem 1 (The Enumeration Theorem): The ϕ z (x) is a p.c. function of x, z N such that for each e N, ϕ e is the e th (unary) p.c. function. Proof: We only need to describe how to compute ϕ z (x): (1) Find P z by computing Dec(z). (2) Run P z on input x and wait until P z halts. (3) At this point, set the output to ϕ z (x). The rest of the theorem follows from Definitions 10 and 11. 3.2 The Universal Turing Machine What was special about Turing s 1936 paper is not the description of the Turing machine itself as a model of computation (as some equivalent models were proposed independently at the same time such as Post machines), but the existence and the description of a universal Turing machine the basis of the stored program concept. Theorem 2 (The Universal Turing Machine): There exists a Turing machine, U, which when given the input (e, x), simulates the e th Turing machine on the input x N. That is, ϕ 2 U (e, x) = ϕ e(x). We call U the universal Turing machine. Proof: Using Theorem 1 and Thesis 2, choose U which computes ϕ z (x). Finally, it is useful to consider whether ϕ e (x) or ϕ e (x) = y is a computable relation of e, x, y N. 14
Definition 12 (Computable Approximation): We write ϕ e,s (x) = y to state that for x, y, e < s, the output y of ϕ e (x) is computed in less than s computational steps of P e. The bound on the number of computational steps is the one which ensures computability by truncating infinite searches. Corollary 1: The following statements are true: (1) ϕ e,s (x) and ϕ e,s (x) = y are computable relations 4 of s, e, x, y N. (2) ϕ e (x) ( s)[ϕ e,s (x) ]. (3) ϕ e (x) = y ( s)[ϕ e,s (x) = y]. 4 Enumerability and Computability What does it mean to effectively list or enumerate elements of a set? How does that affect its computability? We now present a new standpoint of computable sets by rigorously stating how one can list their elements, and show how computability and enumeration relate to each other. We start with the following definition of computably enumerable (c.e.) sets. Definition 13 (Computably Enumerable Sets): A set A N is computably enumerable (written c.e.) if there is an effective process for enumerating (listing) all the elements of A. In other words, A is c.e. if A =, or there is a computable function f such that A = {f(0), f(1),... } = range(f). In Proposition 2, we showed that there is a recursive pairing function,.,. : N N N, that maps any pair of natural numbers to a unique natural number. Now for a computable set A N N, it is easy to see that the function.,. is computable and effectively enumerates A. This is quite interesting as it shows us the relationship between computable sets and computably enumerable sets. Theorem 3 (Computable Sets and Enumeration): If A N is computable, then A is computably enumerable. 4 Pun is consciously intended. 15
Proof: Given A is computable, then we can effectively decide whether x A or not for any given x N. Hence, we can effectively enumerate A by asking, in turn, is x A?, and each time we get a yes, we enumerate (or list) x into A. We know that if a Turing program P e with an index e halts on input x with an output ϕ e (x), this means that ϕ e (x) and x domain(ϕ e ). What can be said about the set W e of all x N such that P e (x) halts? Definition 14 (The Halting Problem): Let W e = domain(ϕ e ) for each e N, then we say that P e has the halting set W e. We also say that the halting problem for the e th Turing machine is said to be solvable is W e is a computable set. Using Definition 12, we can write a computable approximation to the halting set W e, using those for the p.c. function ϕ e as follows. Definition 15 (Computable Approximation of The Halting Set): We write W e,s = domain(ϕ e,s ) for each e, s N. Corollary 2 (The Normal Form of C.E. Sets): The following are equivalent for a set A N: (1) A is c.e. (2) A = domain(ϕ e ) for the e th computable function ϕ e. (3) A = {x ϕ e (x) } (4) A = W e for some e N. (so that W e = the e th c.e. set) Moreover, we can use computable approximation of sets to define approximation sequences that are useful in the coming sections. Definition 16 (C.E. Approximating Sequences): For a c.e. set X = W e, we write X s = W e,s and call the sequence {X s } s 0 a standard c.e. approximating sequence. Moreover, we say that the sequence X 0 X 1... X s... is a c.e. approximating sequence of X where X = s 0 Xs. 16
Now, we are ready to construct a c.e. counterpart of the universal Turing machine as follows. Theorem 4 (The Enumeration of C.E. Sets): There is a c.e. set K 0 such that for each e N, we have the e th c.e. set W e = {x x, e K 0 }. Proof: Define K 0 = { x, e x W e }. Then, x, e K 0 x W e ( s)[x W e,s ] ( s)[ϕ e,s (x) ], from which we conclude that K 0 is c.e. by Corollary 2. Now, we show that there exists a c.e. set that is incomputable and prove that the halting problem is incomputable as a corollary. Theorem 5 (Incomputable C.E. Sets): There exists a computably enumerable set which is incomputable. Proof: We define a set K which is c.e. but not computable as follows. Let K = {x x W x } It is clear that K is c.e. (see the proof of Theorem 4) since x K x W x ( s)[x W x,s ]. Now, we show that K is incomputable by contradiction. Assume K is computable. This means that its characteristic function χ K (x) in computable. Then we can construct the follwing function { ϕ x (x) + 1, if x K, f(x) =, if x K, which is incomputable as f(x) ϕ x (x) for all x N (by diagonalization). This is a contradiction. Hence, K is c.e. but incomputable. Corollary 3 (Unsolvability of The Halting Problem): There exists a Turing machine with unsolvable halting problem. Moreover, The halting problem of the universal Turing machine, U, is unsolvable. 17
Proof: Since K is c.e. but incomputable, then there exists a halting set W e = K for some e N. Hence, the halting problem for the corresponding Turing program, P e, is unsolvable. Now, for a universal Turing machine U, let (x, e) be its input. This means that ϕ 2 U (e, x) = ϕ e(x). Hence, the halting problem for U is unsolvable. 5 Comparing Computability How incomputable phenomena arise and interrelate? Are there different sorts of incomputable sets? How do we mathematically model situations involving interactions between incomputable phenomena? In respect, we explore the concept of computational reduction, called many-one reducibility, and present a glimpse of the structure of incomputable (and computable) sets along with their basic interaction. 5.1 Many-One Reducibility We start by the natural way of comparing two computable (and incomputable) sets of numbers. Definition 17 (Many-One Reducibility): For two sets A and B, we say A is many-one reducible or m-reducible to B (written A m B) if, and only if, there is a computable function f such that for all x N x A f(x) B It is easy to show that the ordering m is both reflexive and transitive. Moreover, this ordering has an intuition that says if A m B then A is at least as computable as B. This intuition is formalized as follows. Theorem 6 (Computability and m-reducibility): The following statements are true: (1) If A m B and B is computable, then A is computable. (2) If A m B and B is c.e., then A is c.e. Proof: Say A m B via a computable function f, then: 18
(1) B is computable, then χ A = χ B f, which is computable. Hence, it follows that A is computable. (2) B is c.e., then for all x B ( y)[r(x, y)] for some computable R(x, y). This means that for all x A ( y)[r(f(x), y)]. Hence, A is computably enumerable. 5.2 The Non-Computable Universe and m-degrees It is natural to gather collections of sets which cannot be distinguished from each other using only m-reducibility. We will see, however, that m- reducibility is not general enough to model the algorithmic content of computationally complex environments. Definition 18 (Many-One Equivalence): We say A is many-one equivalent to B (written A m B) if A m B and B m A. It is easy to show that the operator m is an equivalence relation (that is, it is reflexive, symmetric, and transitive). This means that all interesting properties about the order of m-reducibility can be discovered by focusing on the structure it induces on the equivalence classes under m. Definition 19 (m-degrees): An equivalence class under m is called an m-degree or many-one degree. We write (1) a m = degree m (A) = {X N A m X}, (2) D m = {a m a m is an m-degree} = the set of all m-degrees, and (3) a m b m if, and only if, A m B for some A a m, B b m. It should be noted that we exclude and N as members of m-degrees. A deeper look at over D m shows that the ordering is a partial ordering on D m (that is, it is reflexive, transitive, and anti-symmetric). Now, it is natural to ask: does D m have a least or greatest element? We establish an answer in what follows. But before doing so, let us prove a useful lemma that will come in handy later on. 19
Lemma 1: Let A N be computable. Then for each non-empty set B N, we have A m B. Proof: Given a computable set A, then χ A is computable. To show that A m B, we want to define a computable function f such that χ A = χ B f. To achieve this, choose any elements y B and z B such that χ B (y) = 1 and χ B (z) = 0. Now define the reduction f by { y, if χ A (x) = 1, f(x) = z, if χ A (x) = 0, It is clear that f is computable as χ A is computable. Hence, A m B. Theorem 7 (The 0 m Degree): D m has a least element, 0 m, that consists of all computable sets (other than and N). Proof: We start by defining: 0 m = {A N A is computable and A, N} Let A, B 0 m, then by Lemma 1, A m B and B m A. This means that 0 m is certainly contained in some m-degree. Now, if A m B and B 0 m, then A m B, and hence by Theorem 6, A is computable. Since A, N, then A 0 m. This means that 0 m degree m (B). We conclude that 0 m by itself is an m-degree. Now, we show that 0 m is the least element in D m. Given any m-degree a m = degree m (A), then B m A for each B a m by Lemma 1. But then, by the definition of on D m, we have 0 m a m. So far, we have seen that D m has a least element 0 m. We claim that there is no greatest element of D m, and delay the proof to a later section when we introduce Turing reducability. Claim 1: D m has no greatest element. There are important substructures of D m which do have a greatest element. Such substructures are the c.e. m-degrees, as defined below. 20
Definition 20 (Computably Enumerable m-degrees): We say a m is computably enumerable if there exists a c.e. set A a m. We write E m for the set of all c.e. m-degrees. Theorem 8 (The 0 m Degree): E m has a greatest c.e. m-degree, 0 m = degree m (K 0 ), such that 0 m > 0 m and a m 0 m for all c.e. a m. Proof: First, we show that for any A N that is c.e. A m K 0. We have already seen that K 0 is c.e., so for each x N x A x W x x, x K 0 So, A m K 0 via x x, x, which is computable as x, x is computable. We also know that K is incomputable, and hence by Theorem 6, K 0 is incomputable. Now, the task is to translate this fact about reducibility into a degreetheoretic one. This is achieved as follows. a m is c.e. A c.e. a m A a m with A m K 0 And hence, a m degree m (K 0 ) = 0 m. Finally, it should be noted that all apparent variety of unsolvable problems found by Church, Turing, and others are to be found exclusively in 0 m (they all are reducible from an incomputable set called the creative set, which is in 0 m). Moreover, the m-reducibility seems inadequate to base our model of the incomputable universe. The m-reducibility is not general enough to model the algorithmic content of computationally complex environments. For instance, a basic intuition is that if a set A can be computed, then so is its complement A. However, it can be shown that in general, A m A (by letting A = K, then K m K since otherwise, K would be computable). This demands that we extend this model with something that is more natural of the real-world. This is were the notion of oracle Turing machine comes in handy. 6 Computing with Oracles What is a natural and more general model to explore the world of incomputability? How does this model structure the inherent difficultly of computation? How can we safely go beyond Gödel s Incompleteness Theorem and 21
make judgments on theories and algorithms? In answering these questions, we get a deeper meaning of Gödel s theorem and enhance our understanding of the computable and incomputable universe. We start the discussion with the more powerful reducibility of Turing. After that, we build the degree universe based on Turing s model. Finally, we present essential results related to the structure of this universe. 6.1 Oracle Turing Machines Oracle Turing machines contain a new sort of quadruples that enables them to use information form the real-world. Such usage is provided by an oracle, or by an information source that is external to the machine context. The intuition behind oracle Turing machines is as follows: Let A, B N be two sets of numbers. We want A to be computable from B (that is, A is computable relative to B). This can be achieved, in one way, by answering the question is x A? using an algorithm whose computation from input x uses finitely many pieces of information about the membership of numbers in B it answers queries such as is y 0 B?, is y 1 B?,..., is y k B?. We introduce an oracle B to the usual Turing machine, T, by a new quadruple ˆQ = q i S k q j q l, which is called the query quadruple. This new Turing machine is now called an oracle Turing machine, ˆT, and it works as follows: ˆT computes as usual on input n, except that when it applies ˆQ (that is, ˆT is in state qi reading symbol S k ), it counts the number of 1 s on the tape (say n), asks the oracle B is n B?, and if the answer is yes, it goes into state q j. Otherwise, it goes into state q l. Definition 20 (Relative Turing Computability): A function ψ (possibly partial) is B-Turing computable if ψ is computable by an oracle Turing machine ˆT with oracle B. Similarly, a set A is B-Turing computable (written A T B), or Turing reducible to B, if χ A is B-Turing computable. It should be noted that Turing reducibility is a generalization of m- reducibility. This means A m B = A T B. Moreover, the Turing reducibility T is reflexive, transitive, and can be extended to relations and functions. 22
6.2 Relativized Computable Functions We now relativize the theory of computable functions and c.e. sets to any given oracle based on Turing reducibility. Definition 21 (Relativized Church-Turing Thesis): All formalizations of A computable from B which are sufficiently reasonable and sufficiently general are equivalent to the intuitive one above, and so can be written as A T B. We will call any ψ which is Turing computable from oracle B either B- computable (if it is total) or B-partial computable (B-p.c.) otherwise. Definition 22 (The Oracle Turing Machine Code): The e th oracle Turing machine ˆP e is defined by { ˆP, if Dec(e) = some oracle Turing program ˆP, ˆP e =, otherwise. (the empty program) Note that we think of ˆP e as having arguments n (the input, which could be n) and B (the oracle). So, in a sense, ˆP e computes a functional 5 Φ instead of ψ. This is reflected in the following definition. Definition 23 (Partial Computable Functionals): We write Φ for the functional corresponding to the e th oracle Turing machine ˆP e, were Φ B e (n) = ztest(the output of ˆP e on input n and oracle B). Note that Φ B e is 0-1 valued function (possibly partial) which equals 0 if the output of ˆP e on input n and oracle B is 0, and equals 1 otherwise (see Example 2 for the definition of the primitive recursive function ztest). 6.3 The Turing Universe Turing reducibility that is considered over all sets of numbers is called Turing universe. We formalize this idea below. 5 Such a functional is a mapping whose arguments are functions or sets but not numbers. Such a functional is also known as Lachlan functional. 23
Definition 24 (Turing Equivalence): For two sets of numbers A and B, we say A is Turing equivalent to B (written A T B) if A T B and B T A. Definition 25 (Degrees of Unsolvability): For a set A N, we define the degree of unsolvablity or the Turing degree of A as degree(a) := {X N X T A}. Definition 26 (Turing Universe): The Turing universe D is the collection of all Turing degrees. The Turing universe is defined on the ordering that is induced by T on D by degree(a) degree(b) A T B. A natural question is: what is the size of Turing universe? We prove the following theorem about basic cardinal properties of D. Theorem 9 (Basic Cardinal Properties of D): For a set A N, we write a = degree(a). The following statements are true: (1) a = ℵ 0 for every Turing degree a. (2) {b b a} ℵ 0 for every Turing degrees a and b. (3) D > ℵ 0. Proof: We prove each property separately as follows. (1) This property means that each Turing degree is countably infinite: Let a = degree(a) be some Turing degree. Then, a = {X X T A} {X X T A} {Φ A i Φ A i is total} {Φ A i i 0} So a is a subset of countable set, and so is countable. To see that a is also infinite, we write A i = { A {i}, if i A, A {i}, otherwise. 24
Then for each i j, we have A i (i) A j (i) = A(i). Hence, A i A j. Now, it is easy to see that each A i T A. So, a contains A 0, A 1,..., which is infinite and distinct. (2) This property means that the set of degrees that is smaller than a given degree is countable: Write D( a) = {b b a}, and let A a. Then, D( a) = {degree(x) X T A} = {Φ A i Φ A i is total} {Φ A i i 0}. So, D( a) is countable. (3) This property means that the Turing universe is uncountable: Given that any Turing degree a has a cardinality ℵ 0 = N, then D = 2 N > ℵ 0. Hence, D is uncountable (note that R = 2 N, and R is uncountable by Cantor s Theorem). This completes the proof. Similar to many-one reducibility, D has a least element but no greatest element. We prove this in the following. Corollary 4: D has no greatest element. Proof: We prove this by contradiction. Assume that D has a greatest element. Then, there exists a D such that b a for all b D. Let A a. The set of all A-computable sets is countable. Therefore, the set of Turing degrees less than A is also countable. However, the set of Turing degrees less than A is D. By Theorem 9 (property 3), we get a contradiction. Hence, there is no greatest element in D. Note that the proof of Claim 1 in Section 5.2 follows from Corollary 4 as A m B = A T B. Lemma 2: Let A N be computable. Then for each non-empty set B N, we have A T B. Proof: In order to show that A T B, we need to show that there exists a computable function f which uses B as an oracle. Since A is computable, χ A is a computable function. Then, we can let B be an oracle for f = χ A, but compute χ A the exact same way. Thus, A T B. 25
Theorem 10 (The 0 Degree): D has a least element, 0 = degree( ), that consists of all computable sets (other than and N). Proof: Let X be a computable set and A N. Then by Lemma 2, X T A. Since X 0, then 0 degree(a) for all A N. 6.4 Enumerating with Oracles and Jump Operators Relativizing what we have found out about computably enumerable sets is surprisingly revealing. This is a first indication on the deep intimate relationship between Turing degrees and their structural interrelationship. Definition 27 (Turing Recducability and C.E. Sets): For a set A N, we say that A is computably enumerable in B (written B-c.e.) if we can computably enumerate the elements of A using the oracle B. We also say that the degree a is computable enumerable in b if some A a is c.e. in B b. Finally, a degree a is computably enumerable if it contains a c.e. set. We write E for the set of all c.e. Turing degree. Proposition 3: For a set A N, A is B-c.e. if, and only if, A is the domain of an B-p.c. function. That is, we can write We B = domain(φ B e ) for each e N such that {We B } e N is a listing of all B-c.e. sets. Proof: We start with the forward direction. Assume that A is B-c.e. Then, we can define the semi-characteristic function of A as follows: { 1, if n A, S A (n) =, if n A. It is easy to see that S A is B-partial computable. To compute S A (n), just enumerate the elements of A using the help of B by setting S A (n) to 1 if we observe n enumerated into A. This means that domain(s A ) = B. Now, for the reverse direction, let A be the domain of B-p.c. function ψ. Then, we can enumerate the elements of A with the help of B by successively going through the computations ψ(0), ψ(1),..., and enumerating into A any n for which we observe the computation of ψ(n) terminates. 26
It is now the time to use the concealed power of these relativizations. We now define a jump operator by relativizing the definition of K 0 (see the proof of Theorem 4 for the definition of K 0 ). The jump operator has many useful applications; it can be used to draw a link between first-order arithmetic and degrees of unsolvability. We use it here, however, to answer the natural question of: does D? = E for all c.e. degrees? Definition 28 (The Jump Operator): Let the jump B of a set B be B := { x, y x W B y } = K B 0. Moreover, let the (n + 1) th jump of B be B (n+1) := (B (n) ). The jump operator on sets have many interesting properties. some of them here as a definition. We list Definition 29 (Jump Properties on Sets): For any two sets of numbers A and B, the following are true: (1) B is B-c.e. (2) A is B-c.e. A T B and B T B. (3) B T B. (4) If A T B, then A T B. Property (4) above gives us a special kind of jumps. It allow us to perform jumps on Turing degrees, which is sometimes referred to as Turing jumps. Definition 30 (Turing Jumps): For a set B, the Turing jump b of b = degree(b) is given by: b := degree(b ). Moreover, the (n + 1) th jump b (n+1) of Turing degree b is given by: b (n+1) := (b (n) ) = degree(b (n+1) ). Now, based on Definitions 29 and 30, we get the following property of the Turing jump. Definition 31 (Turing Jumps Properties): The following order is valid: 27
b < b < b < < b (n) <... where b (n+1) is c.e. in b (n) for each n 0. Finally, by letting b = 0 = degree( ), we get the ascending sequence 0 < 0 < 0 <..., which shows that D E for all c.e. degrees. 7 The Structure of Turing Universe The hierarchical structure reveals the dynamic relationships between different levels of abstraction. In science, for instance, the study of quantum mechanics, atoms, molecules, cells, organisms, and so on, revealed many interesting properties between these different levels. Putting such a structured hierarchy in a descriptive framework allows the investigation of each level with its local constraint, and possibly, discover a unified theory that covers all such levels. In this section, we start with the early work of Kleene and Post and show some basic results about the structure of D. After that, we extend out discussion and consider the structure of E and introduce the priority method; the highly celebrated technique in degree theory. 7.1 Oracles as Strings One way to represent characteristic functions is through strings of 0 s and 1 s. This allows us to look at the string as an oracle with finite information about memberships that is enough to answer queries. Definition 32 (Strings): A string σ is a finite sequence of 0 s and 1 s. The string σ is 0-indexed, that is, the 1 st element of σ has an index 0, the 2 nd element has an index 1, and so on. We write σ(x) = 0 or 1 if the (x + 1) th element is 0 or 1, respectively. Finally, the length of the string σ (written σ ) is the number of elements in σ, that is, the least x such that σ(x). Example 5: Let σ = 101100. Then, σ has a length σ = 6, where it starts with σ(0) = 1 and ends with σ(5) = 0. Definition 33 (Properties and Operations of Strings): We define the following properties and operations on any two strings σ and τ: 28
(1) Concatenation: The concatenation of σ and τ (written σ τ) consists of σ s elements followed by τ s elements. (2) Extension: τ is an extension of σ (written σ τ) if for all x < σ, we have σ(x) τ(x) σ(x). In other words, σ is a substring of τ. (3) Beginning: σ is the beginning of a set A (written σ A) if σ is an initial segment of χ A. (4) Compatibility: σ is compatible with τ if they are extensions of each other, that is, σ τ and τ σ. Otherwise, we say σ and τ are incompatible (written σ τ). If σ τ, we write y(σ, τ) = µy[σ(y) τ(y)]. (5) Special strings/sets: The string is the empty string and the set S is the set of all string. (6) Lexicographical ordering: The lexicographical ordering of S is given by σ τ σ τ and σ(y(σ, τ)) < τ(y(σ, τ)), or σ τ Example 6: Let σ = 0101 and τ = 0101011. Then, σ τ = 01010101011, σ τ, and σ is a beginning of A = {x x N, x is odd}, where χ A = 01010101... is the first 8-element segment of A s characteristic function. Moreover, σ τ where σ(4) = and τ(4) = 0. Proposition 4: For an oracle Turing machine ˆT e, we write Φ σ e (x) = y for the computation of the program ˆP e on input x with output y, during which all oracle queries are answered by σ concerning any number n < σ. Proof: This proposition directly follows from Definitions 32 and 33. It should be noted that strings can be extended from binary numbers to other more general strings such as sequence of numbers in N. This suggest that we extend our definition of beginnings as follows: a string σ is a beginning of a set A if σ is an initial segment of any function f : N N (that is, not just of χ A ). We write 2 <w for binary strings and w <w for the more general kind. 7.2 Non-Linearity of Turing Universe Degree theory is vast and beautiful! We have already seen the limitations of m-reducibility as a model of the computable and incomputable universe. 29
Our objective here is to show the details of two main theories that show the richness of Turing universe. In specific, we will show that D and E are not linearly ordered, that is, there are incomparable pairs of Turing degrees. But first, please try to contain your own excitement for a moment, and let use define some useful notations. Definition 34 (Notations in Approximations): We use the following notations for an expression A involving computable approximations: (1) We write A[s] for A evaluated at stage s. Then, for Φ B i (x), we write Φ B i (x)[s] = Φ Bs i,s (x) where B s is a c.e. approximating sequence. (2) Let A B be an expression whose computation involves k queries of the form is n i B?, to an oracle B. Then let the use of the computation of A B be max{n i 0 i k}. (3) For a set A, we write A n if χ A (x) is restricted to x < n. (4) We write δ B i (x) for the use of Φ B i (x). Accordingly, let z = δ B i (x), then z = µz[φ B z i (x) ]. We assume that δ B i,s(x) < s. We hope the above notations will be excused once we start proving the following two theorems! Theorem 10 (Kleene-Post, 1954): D is not linearly ordered There exist Turing degrees a and b such that a b and b a. Proof: We need to construct two sets A and B such that A T B and B T A, where a = degree(a) and b = degree(b). To achieve this, we define the following relations that must be satisfied for A and B to exist (call them requirements): R 2i : χ A Φ B i R 2i+1 : χ B Φ A i To do so, we start by defining the following sequences of strings: σ 0 σ 1 σ 2... τ 0 τ 1 τ 2... Then, we define the characteristic functions of A and B as follows: 30
χ A = i N σ i χ B = i N τ i Now, we assert that in order to satisfy the requirements at stage i + 1, we need to define two string σ i+1 and τ i+1 such that the i th requirement is satisfied. We divide the construction of A and B into stages as follows. Stage 0: Define σ 0 = τ 0 =. Stage i+1: Let this stage be (2e + 1) for e 0. We specifically handle requirement R 2e and leave R 2e+1 to the reader as the process is exactly the same. Now, assume the following are already defined: σ 0 σ 1 σ 2 σ i τ 0 τ 1 τ 2 τ i and let x i = σ i. We are looking for a string τ τ i such that Φ τ e(x i ). There are two cases: Case I (τ exists): Then, computably choose a τ and let k = Φ τ e(x i ). Next, define the following strings: σ i+1 = σ i (1 k) τ i+1 = τ We now show that Φ B e (x i ) = Φ τ e(x i ) by contradiction: Assume Φ B e (x i ) Φ τ e(x i ). Then, since τ is the beginning of the characteristic function of B, τ and B match up to τ. Therefore, there must exist k N such that k > τ, and the k th element of B changes the output Φ B e (x i ) so that it is not equal to Φ τ e(x i ). Then, Φ τ e(x i ) must query the k th element of τ as well. However, as τ is not defined at this index, Φ τ e(x i ). This is a contradiction. Therefore, Φ B e (x i ) = Φ τ e(x i ), and so Φ B e (x i ) = Φ τ e(x i ) = k (1 k) = σ i+1 (x i ) = χ A (x i ). Case II (τ does not exist): Then define the following string: σ i+1 = σ i 0 τ i+1 = τ i 0 31
Now, regardless of how τ n are picked (n > i), Φ B e (x i ). Given that Φ B e (x i ) is not defined, the requirement is satisfied as Φ A (x i ) = 0 Φ B e (x i ). We prove this by contradiction: Assume that Φ B e (x i ). Let w be greater than τ i and δ B e (x i ). Then, for τ = B w, Φ B e (x i ) = Φ τ e(x i ) because for every element of B used to compute Φ B e (x i ), τ has the exact same elements. Note also that τ τ i. We have found a τ such that Φ τ e(x i ), and so, we cannot be in Case II, which is a contradiction. Hence, R i is satisfied for all i 0, and the theorem follows. In the early 1950 s, Post asked whether there is any c.e. Turing degree strictly between 0 and 0. The problem of constructing such a degree (or showing that none exist) became known as Post s problem. This problem was solved independently by Friedberg and Muchnik, who showed that these intermediate c.e. Turing degrees do exist. Their proofs developed the same new method for constructing c.e Turing degrees which came to be known as the priority method. The priority method is now the main technique for establishing results about c.e. sets. Theorem 11 (Friedberg-Muchnik Theorem): E is not linearly ordered There exist c.e. Turing degrees a and b such that a b and b a. Proof: As before, we need to construct two c.e. sets A and B such that A T B and B T A, where a = degree(a) and b = degree(b). To achieve this, we define the following relations that must be satisfied for A and B to exist (call them requirements): R 2i : χ A Φ B i R 2i+1 : χ B Φ A i Here, however, the construction of A and B produces c.e. approximating sequences {A s } s 0 and {B s } s 0 to A and B, respectively. Accordingly, we have to discard any oracles that might spoil the computability of these enumerations. The construction will take place at stages 0, 1,..., s, s + 1,... as before. At stage s + 1, we will computably construct A s+1 A s and B s+1 B s to satisfy one requirement. However, this time we will not be able to decide ahead in time exactly which requirement as there are no oracles. 32
The strategy for satisfying R 2i At a general stage s + 1, we focus, in turn, on one phase of the following: (1) Choose a potential witness x to the relation χ A Φ B i such that x is not yet in χ A, that is, χ A (x) Φ B i (x). (2) Do nothing more unless we get a stage s + 1 at which A s (x) = 0 = Φ B i (x)[s]. (3) In which case, enumerate x into A s+1, and if Φ B i (x)[s] has use z = δ B i (x)[s], preserve B s z = B z for evermore. We call this z a B- restraint. The analysis of the outcome for R 2i s strategy The only outcomes are: (1) The strategy waits forever at phase 2 for A s (x) = 0 = Φ B i (x)[s]. This means that either Φ B i (x) or Φ B i (x) = 1 χ A (x). (2) The strategy halts at phase 3 with χ A (x) = A(x) = A s+1 (x) = 1 0 = Φ B i (x)[s]. Since we preserve B s z = B z, we have Φ B i (x) χ A (x). Either way, R 2i is satisfied. The strategy for satisfying R 2i+1 An intuitive strategy for R 2i+1 is to follow a similar strategy as for R 2i. That is, R 2i+1 might want to enumerate a number y into B and preserve a beginning of some A s, while R 2i may want to enumerate x into A and preserve B s ; conflicting objectives! To resolve this conflict, we give R 2i a higher priority than R 2i+1. To see how this really helps, let us maps the strategies of R 2i and R 2i+1 into the following real-world scenario: Imagine R 2i and R 2i+1 are two students who want to buy books form UBC Bookstore. As being civilized, they will line up in a queue to choose a book from the Mathematics corner. Because R 2i has a higher priority 6, she always gets to choose a book first. Now, let this book be the witness and be referred to by a number x N. 6 As per the course instructor s directions! 33
R 2i+1 can choose too, as long as he does not obstruct R 2i. That is, R 2i+1 can choose whatever R 2i passes over. In specific, R 2i+1 can choose a witness y x, or choose y B, even if B s z = B z has been preserved already by R 2i, as long as y > z. R 2i+1 can overtake whenever R 2i is waiting for a special book to be brought from the stocks (that is, R 2i is stuck at phase 2 of its strategy). If R 2i suddenly changes her mind and decides to pay for whatever books she has, while snatching a z > y as she goes, R 2i+1 has to change his choice to a witness y > z. Finally, R 2i can accuse R 2i+1 of taking a book off the shelf that she had already chosen for herself. In this case, R 2i+1 is injured, returns all books he has chosen, and lines up again. Based on this intuition, we outline the strategy for R 2i+1 as follows. (1) Choose a potential witness y to the relation χ B Φ A i such that y has not yet appeared in the strategy as a witness or a restraint. In this case, we say y is fresh. (2) At each later stage s + 1 at which R 2i is halted at phase 1 or 2 of its strategy, do the following: (a) Check if y is less than a B-restraint that is setup by R 2i. If so, neglect y and go back to phase 1 to get a new fresh witness. In this case, we say R 2i+1 has been injured. (b) Ask is B s (y) = 0 = Φ A i (y)[s]? If the answer is no, then go back to phase 2(a) at the next stage. Otherwise, if yes, go to phase 3. (3) Enumerate y into B s+1, and setup an A-restraint w = δ A i (y)[s]. If R 2i injures R 2i+1 at a later stage (that is, enumerates x into A with x < w), neglect y and return to phase 1 to start all over again. The analysis of the outcome for R 2i+1 s strategy The only outcomes are: (1) The strategy waits forever at phase 2 for B s (y) = 0 = Φ A i (y)[s]. (2) The strategy halts at phase 3 with χ B (x) = B s+1 (y) = 1 0 = Φ A i (y)[s]. We setup the A-restraint w. 34
Either way, R 2i+1 is satisfied. Note that R 2i is never injured, and there is a stage where R 2i+1 is never injured. Thus, this strategy is referred to as a finite injury and priority strategy. Overall: All of the requirements are successfully satisfied by each strategy. This completes the proof. 8 Conclusion We proved that the Turing universe has a non-linear ordering of degrees. Alternatively, there exists a pair of sets, each in a different degree, which are incomparable. This is a very interesting result! Such two sets A and B can be regarded as representing some computational information content. By information content, we mean the mathematical description of phenomena such as natural laws. What is interesting about this observation is that because A T B and B T A, the information content held by A is different from that of B. This leads us to the conclusion that there are kinds of information content (at least two in this case)! This, in retrospect, was Post s objective; he believed that certain difficult technical problems in computability theory promise to have far-reaching implications in understanding the Universe 7 computability theory could be the bridge in exploring the relationship between basic science, its mathematical description (or information content), and the algorithmic aspect of observation. 9 References S. Barry Cooper. Computability Theory. Chapman and Hall/CRC. 2004. Robert I. Soare. Recursively Enumerable Sets and Degrees: A Study of Computable Functions and Computably Generated Sets. Springer. 1987. Michael Sipser. Introduction to the Theory of Computation. PWS Publishing Company. 2006. 7 The real one the totality of everything that exists, including all physical matter and energy, the planets, stars, galaxies, and the contents of intergalactic space. 35