We give an introduction to the Turing degrees, aimed principally at those who have some experience with computability theory, but not necessarily with techniques specific to the study of the local degrees. The focus is on establishing which definable properties are satisfied by the degrees in the various jump classes, as introduced by Cooper and Soare in the 1970s. Along the way, we also point to a good number of open problems.
These notes came out of a course which I gave at Notre Dame1
The course during which the lectures were given was funded by grant EMSW21-RTG-0838506. The author would very much like to thank Quinn Culver and Steve Flood for detailed comments on an earlier version of the paper.
in the autumn of 2010, and which was essentially a course in the Turing degrees aimed at PhD students who had some experience with computability theory, but not necessarily with techniques specific to the study of the local degrees. The programme of study described is heavily influenced by the research of Barry Cooper, and so my hope is that this paper should be a fitting contribution to this memorial issue in his honour. Much of the material covered revolves around the jump classes, which were introduced by Barry and Bob Soare back in the 1970s.
The course assumes very little background knowledge: familiarity with the concepts of a Turing functional, a Turing degree, the halting problem and such things are assumed, but nothing more advanced than this. While the earlier material is obviously aimed at the reader who does not have much experience working with the Turing degree structure, my belief/hope is that even the seasoned professional will find much to interest them, especially in later sections. Despite the intensive work which has been put into the study of the Turing degrees, many very basic questions remain open. I’ve listed a good number here, together with descriptions of techniques which might sometimes suffice to give solutions.
The course may be thought of as being divided roughly into two parts:
Forming a picture of the Turing degrees. In the earlier sections of the course we shall establish some basic structural properties of the Turing degrees by answering the following kind of questions:
Are there incomparable Turing degrees? What are the largest chains and anti-chains?
Is the structure a lattice?
Is the structure dense? We call a degree minimal if and there doesn’t exist any degree with . Are there minimal degrees? If so, where can they be found?
As an introduction to some of the techniques we’ll be using later, we will then take a look at some of the structural properties satisfied by . In particular, we shall show that satisfies the cupping, join and meet properties – of course these properties will be defined in what follows.
The jump hierarchy, roughly speaking, is a way of measuring the position of a degree by comparing its nth jump with the nth jump of . A jump class consists of the set of degrees in one level of this hierarchy. We shall introduce the jump classes first for the local case, as originally suggested by Cooper in [1] and Soare in [45], and then we shall consider the generalized version suggested by Jockusch and Posner [14], and we shall show that these jump classes are all distinct.
There are many classes of degrees used by computability theorists which are defined according to properties of their members rather than structural properties of the degree itself. Three of these classes will be of particular use to us in our analysis of the jump classes; we shall define and prove some basic properties of the PA, the a.n.r. and the 1-generic degrees. With all this preparation in place we shall then move on to consider more advanced topics.
Properties of the jump classes. A relation on the Turing degrees is said to be definable if there is a formula in the language of partial orders which is true of precisely those tuples of degrees in the relation. Computability theorists have been able to establish a good number of definability results. Shore and Slaman [40] showed, for example, that the jump is definable, while Nies, Shore and Slaman [32] showed that all the jump classes other than low are definable (a degree is low if , and the definability of the low degrees remains an open question). With some notable exceptions, however, these definability results have been established through the use of techniques which involve coding models of arithmetic into the degree structure. Such methods will not be covered in this course – for an introduction we refer the reader to [31]. While the success of these coding techniques is beyond question, a disadvantage is that these proofs of definability do not yield what might be considered natural definitions. The notion of a natural definition here is not precise, but by a natural definition what we essentially mean is a formula which suffices to define the relevant class and which is easy to understand. Roughly speaking, then, this means that the definition should not be too long and should not involve too many alternations of quantifier. It remains one of the holy grails for researchers in the area to find natural definability results for the jump classes, or for the jump function itself. In the second part of the course we shall detail some of the work2
A notable omission is some of the recent work of Shore on natural definability, see for example [41].
that has been done towards achieving this goal, by systematically studying which basic order theoretic properties are satisfied by the degrees in each jump class. The idea here is to begin with very simple properties and then gradually move on to consider properties which are more complex – the hope being that at some point natural definability results will precipitate out as a result of this process.
Turing reductions, and Turing degrees: A review of notation and some basic facts
Turing functionals
We shan’t give the definition of a Turing machine and a Turing functional here (just look in any introductory textbook, such as [2]). We suppose we are given a fixed effective3
Throughout the paper the word “effective” is used synonymously with “algorithmic”, so by an effective listing of the Turing functionals we mean that there is an algorithm which, given any , produces the instructions for the ith functional in the list.
listing of all the Turing functionals;
For each we write in order to denote the ith Turing functional in this list.
Each Turing functional occurs infinitely many times in this list, i.e. for each i there exist infinitely many j for which .
For and , we write in order to denote the output of given oracle input A and on argument n (so if this computation does not converge then ). We also write in order to denote .
We write in order to denote the (possibly) partial function which on argument n is equal to . We identify subsets of ω with their characteristic functions, so that it makes sense, for example, to write .
We let denote the set of finite binary strings. When f and g are (possibly) partial functions, we write in order to denote that the domain of f is a subset of the domain of g and for all n in the domain of f. We say that f and g are incompatible if there exists some n such that and but . We let be a computable bijection . For finite strings σ and τ, denotes the concatenation of σ and τ. For a finite string σ, we let denote the length of σ.
In fact the particulars of the oracle Turing machine definition will normally be of no importance to us. The only things that we need to be true of oracle Turing machines, at least for the vast majority of our proofs to go through, are the following:
The Turing functionals include and are closed under composition with all algorithmically calculable functions .
Turing functional computations take place in stages. If the computation does not converge in s stages then , otherwise we define it to be equal to the value outputted by the computation. If then for all .
When a computation halts it does so in a finite number of stages and therefore only a finite number of bits of the oracle tape can be scanned. We write if and this computation converges after scanning only bits of the oracle tape . So if there exists which is an initial segment of A, such that for all .
There exists a universal machine, i.e. there exists i such that for all A, j, n, we have (where ≃ denotes that either both values are undefined or else both are defined and equal).
Turing degrees
When there exists i such that we say that A is Turing reducible to B, denoted . When we say that A is computable in B this is just another way of saying that A is Turing reducible to B.
When and we say that A and B are Turing equivalent, denoted .
The Turing degree of A is the set of B such that . Each Turing degree is therefore a countable collection of sets.
For Turing degrees and we define if for all and . Since is transitive, this latter condition will hold precisely when there exist any and with .
Given , we let denote the set whose characteristic function is defined as follows: for all n, and . We write in order to denote .
Since any set which computes A and computes B also computes , and since clearly computes both of A and B, every pair of Turing degrees has a least upper bound.
The jump and c.e. sets
For any set A, is the halting set for A:
The basic facts are as follows:
is always of degree strictly above the degree of A.
If then .
For any degree we can therefore define , the jump of , to be the degree of for . In particular, denotes the jump of and for all we have .
A set is computably enumerable (c.e.) if there is an algorithm which enumerates the elements of the set (but not necessarily in increasing order). Formally, is c.e. if there exists i such that . We let denote the ith c.e. set, so . We also let denote the set of numbers enumerated into by stage s, i.e. , and we assume that if then .
The halting set is an example of a c.e. set which is not computable.
The computably enumerable (c.e.) degrees are those containing computably enumerable sets. Since any c.e. set is computable in , all c.e. degrees are below .
The sets of degree below are precisely those that can be computably approximated, i.e. those A for which there exists a computable sequence of finite sets such that, for all n there exists t, for all .
Various important sets are of degree or (where denotes the nth jump of , i.e. the result when we start with and apply the jump operator n times). Examples are which is of degree , and Comp which is the set of all i such that is computable and is of degree .
Chains, antichains and independent sets
The fact that is always strictly above suffices to show us that there does not exist a greatest Turing degree. Perhaps the next natural question is whether there exists a pair of incomparable Turing degrees.
The basic format of the proof is one that very soon becomes familiar to anybody who works in computability theory. Proofs in computability theory very often involve constructing a number of subsets of ω – in this case we need to construct two sets A and B. We write down a countable list of requirements, satisfaction of which will suffice to give the theorem:
:
.
:
.
The even requirements suffice to ensure that A does not compute B and the odd requirements suffice to ensure that B does not compute A.
In order to construct A and B so as to satisfy these requirements it suffices, in this case, to define a finite extension argument. This means that we define a construction which proceeds in stages, and we decide finite initial segments and at each stage. Initially we define (the string of length 0). At stage , given and , we define and in such a way as to ensure that the next requirement in our list is satisfied. Then ultimately we define A to be the infinite string extending all and we define B to be the infinite string extending all . The precise instructions are as follows:
Stage 0:
Define .
Stage:
We are given and . We look to satisfy . Let n be the least such that . We ask,
“does there exist any string such that ?”
If not: then since A will extend , , so that requirement will be satisfied. In this case we can just define to be any finite extension of and we can define to be any finite extension of .
If so: then let be the least such α (we may consider the finite binary strings ordered according to length and then from left to right). Define to be the one element extension of which disagrees with on argument n. Since A will extend and B will extend , we have ensured that .
Stage:
Now we look to satisfy . We proceed exactly as at stage but with the roles of A and B reversed. □
An analysis of this proof allows us to deduce a stronger result. Which oracle do we need in order to carry out the construction, and so compute the characteristic functions of A and B? It suffices to be able to answer the following question for any and any :
“does there exist any string such that ?”
We can easily devise an algorithm which, given any and any , searches for such that , and which terminates if and only if it finds such a string. An oracle for can tell us whether or not this algorithm terminates, and so suffices to answer the question above. We therefore get:
For , let denote . A partial function is a tree if, for all and , when :
.
and is incompatible with .
If T is a total function of this kind, we also call it a perfect tree. The following abuse of terminology is standard: for any string τ, we say τ is in T if τ is in the range of T. Then we say is a path through T if there exist infinitely many in T (sometimes, for the sake of emphasis, we may also refer to A as an infinite path in this case). If A is a path through T we may also say that A lies on T.
We say that is a subtree of , denoted , if the range of is a subset of the range of .
A sequence of sets is independent if, for all finite and all , . A sequence of degrees is independent if there exists a sequence which is independent with .
It is natural to ask next, what are the largest antichains we can find in the Turing degrees? By using the same techniques we used in order to prove Theorem 3.1 it is not difficult to construct a perfect tree T such that any two distinct paths through T are of incomparable degree. This gives us an antichain of cardinality the continuum, which is clearly the best we can do since there are only continuum many Turing degrees. Precisely the same techniques can also be used to show:
Every finite poset can be embedded in the Turing degrees.
Let be a finite poset, and let . Let be an independent sequence of degrees and let be of degree . For each let be the set of all i such that , put and define to be the degree of .
We define an embedding as follows: for every . In order to verify that this is indeed an embedding we must show that for all , . Suppose first that . Then so the result follows immediately. Next suppose that and in order to derive a contradiction. Then , so and , which contradicts the choice of as an independent sequence. □
By the -theory of the Turing degrees, we mean the set of sentences in the language of partial orders which are true of the Turing degrees, and are of the form for some k, where is a quantifier free expression with free variables .
The-theory of the Turing degrees is decidable.
An statement asserts the existence of finitely many degrees , and for some pairs it asserts that , while for other pairs it asserts that . By Corollary 3.1, this will hold iff there is a finite poset satisfying these conditions. In order to test whether this is the case involves running through a finite number of possibilities, and so is decidable. □
We have already seen that there does not exist a largest Turing degree. How large can a chain of Turing degrees be? Given any countable set of Turing degrees, there exists a Turing degree strictly above every member of the set – given , consider B such that and then take . Therefore there exist chains of length (the least uncountable ordinal). On the other hand, there cannot exist chains of length greater than since each Turing degree has only countably many predecessors.
The Turing degrees as an upper semi-lattice
A partial order is an upper semi-lattice if, for all , there exists a least degree which is above both x and y, denoted . We call the join of x and y.
We say is a lattice if it is an upper semi-lattice and for all , there exists a greatest degree which is below both x and y, denoted . We call the meet of x and y.
As was mentioned previously, it is clear that any set which computes both A and B also computes and the Turing degrees are therefore an upper semi-lattice. In order to show that they are not a lattice we need to consider countable ideals of degrees.
If is an upper semi-lattice then is an ideal if:
Whenever , their join is in .
Whenever and , y is in .
A set of Turing degrees is said to be definable with parameters if there is a finite set of Turing degrees and a formula in the language of partial orders such that, for all degrees , iff is true in the Turing degrees. The next theorem shows that every countable ideal in the Turing degrees is definable with parameters – one just needs to specify an exact pair for the ideal.
If is a partial order and , we say that is an exact pair for if, for all , iff and .
Every countable ideal in the Turing degrees has an exact pair.
The Turing degrees are not a lattice.
Let be a strictly increasing sequence of degrees (we could set , for example). Let be the ideal generated by this sequence, i.e. any degree is in iff there exists . Now let be an exact pair for . If and then and there exists . Then is also below both and and is strictly above . Thus and have no greatest lower bound. □
We suppose that we are given an enumeration of all sets which are of degree in . We must construct A and B so as to satisfy the requirements:
:
and .
:
Let . there exists k, .
The requirements ensure that every degree in the ideal is below both and . Then the requirements ensure that anything computable in both A and B is of degree in the ideal. Clearly these requirements suffice to prove the theorem.
This time the proof will not be a finite extension argument, we shall describe a co-infinite extension argument. This means that at each stage in the construction, we may define A and B on an infinite number of arguments, but at the end of each stage we will also have left each of these sets undefined on an infinite number of arguments.
In order to ensure that each is computable in both A and B, the basic idea is that we divide these sets up into columns. The sth column is all numbers of the form . If for all j, then A will compute – and similarly for B of course. In fact, we need slightly less than this. If, for each s, for all but finitely many j, then this suffices to show that A computes each . At each stage we shall ensure that and by coding into the sth columns of A and B in this way.
Suppose that at the end of stage s we have already coded into the kth column of A and B for each , and suppose also that:
Outside the finite set of columns we have already used for coding, we have decided only finitely many arguments of A and B.
At stage we now look to satisfy . Let be the partial function which specifies A on the arguments we have already decided, and let be the corresponding partial function for B. Note that, unless , and will not be finite strings, but instead will be defined on an infinite number of arguments as well as being undefined on an infinite number of arguments. We ask whether there are any extensions and for which and are incompatible (and where ).
If so, then there are finite extensions which satisfy this property. We can take these finite extensions, code into what remains of the sth columns of A and B (which will still be all but finitely many numbers), and maintain the condition .
If there is no way in which we can extend so as to force disagreement, then we will be able to show that if and is total, then it is computable in the columns of A and B which we have already determined. This finite set of columns is essentially the join of a finite number of sets of degree in the ideal, and so is of degree in the ideal.
We now formally describe the construction.
Stage 0:
Define .
Stage:
Let . We ask: does there exist and for which and are incompatible?
If so then let α and β be finite extensions of and respectively, which satisfy this condition. If not then let and let .
Now let be the least extension of α which is defined and equal to on all arguments of the form for which α is undefined. Let be defined similarly in terms of β.
This ends the formal description of the construction.
In order to show that the construction suffices to satisfy the requirements, it remains to consider what happens when, at stage , there do not exist and for which and are incompatible. In this case we claim that, if and are both total (and so equal) then this common value is computable in , and so is of degree in the ideal. Certainly D can decide which arguments and are defined on, and can compute their values on all such arguments. If is total, then in order to compute , an oracle for D can proceed as follows. Find any extension α of such that . Such an extension must exist since A extends and . Then it must be the case that . In order to see this, suppose otherwise. Then let β be a finite extension of which is compatible with B and such that . Since it must be the case that which is impossible by hypothesis. □
Minimal degrees
One of the first questions one is likely to ask as one tries to understand a partial order is whether or not it is dense. In the case of the Turing degrees, non-density is established through the existence of minimal degrees.
A Turing degree is minimal if and there does not exist with .
We wish to build a set A of minimal Turing degree. In order to do so, once again we begin by drawing up a list of requirements:
:
.
:
If is total then either it is computable or .
The requirements suffice to ensure that A is noncomputable. We already know a very simple technique for satisfying one of these requirements – find some argument n for which we have not yet specified , and if then make different to it. The requirements suffice to ensure that every set whose characteristic function is computable in A is either computable or else is of the same degree as A. In order to satisfy these requirements we need to consider splitting trees.
Two strings σ, τ are -splitting if and are incompatible. We may refer to a -splitting pair of strings just as a “-splitting”.
A tree is a -splitting tree if any two strings in T which are incompatible are also -splitting.
A tree is a -nonsplitting tree if no pair of strings in T are -splitting.
We say τ is of level n in a tree T if for some σ of length n. We say τ is a leaf of T if and there do not exist any proper extensions of τ in T. We say T is of level n if it is finite and all leaves are of level n.
Note that a tree which is not -splitting will not necessarily be -nonsplitting. The following two lemmas are precisely what we need in order to develop a technique for satisfying the requirements.
If A lies on T which is a partial computable-splitting tree andis total then.
Suppose that A lies on T which is a partial computable -splitting tree and is total. Now we suppose that we have an oracle for and we show how one can compute A. We start at the base of T and work our way upwards.
We start with the knowledge that . Since A lies on T, one of and must be an initial segment of A, so compute and – the fact that A lies on T means that these values must be defined. Since T is -splitting one of and must be incompatible with . Determine which this is, and therefore which of and is an initial segment of A.
In the process just described, we started by knowing which string of level 0 in T is an initial segment of A (since there is only one), and we worked out which string of level 1 is an initial segment of A. Now we can proceed in exactly the same way working above this string in order to work out which string of level 2 in T is an initial segment of A, and so on. □
If A lies on T which is partial computable and-nonsplitting, thenis computable if total.
Suppose that A lies on T which is partial computable and also -nonsplitting, and suppose further that is total. In order to compute simply search until is found with . Such a string σ must exist since A lies on T and . It must be the case that since T is -nonsplitting. □
Lemmas 5.1 and 5.2 provide the key to ensuring minimality. We must ensure for each i that either:
A lies on a partial computable T which is -splitting. Then the conditions of Lemma 5.1 are satisfied, so that if is total then , or
A lies on a partial computable T which is -nonsplitting. Then the conditions of Lemma 5.2 are satisfied, so that if is total it is computable.
Recall that by we mean the string which is σ concatenated with τ, i.e. the string such that and such that for all and for all . We need a couple more simple definitions before we begin describing the actual construction.
If T is a tree and , then we define , the subtree of T above τ in the obvious way: for all , .
Given a partial computable tree T and τ in T, we define which is the -splitting subtree of T above τ by induction as follows. Set . Suppose is defined. Search (in some fixed algorithmic fashion) for two strings extending in T which are -splitting. For , which are the first such pair of strings found, define , . In the case that no such strings are found, is undefined on all strings properly extending σ.
The construction will proceed in stages. At each stage s we shall define a finite binary string and also a perfect tree , and will be a string in . Making these definitions at stage s amounts to agreeing to the restriction that A will extend and A will lie on . We begin by defining and (where is the identity function ). So far, this amounts to no restriction at all: A will extend the empty string and will be an infinite binary string. At stage , given and , we further restrict the choices for A in two ways. We define to be a string extending and we define to be some perfect subtree of . Of course we choose in such a way that the restriction that A lies on suffices to ensure satisfaction of .
We now formally describe the construction.
Stage 0:
Define and .
Stage:
First we satisfy . Since is total, there exists in this tree such that is different than for some n (where being defined counts as different than being undefined). Let α be the least such string.
Next we satisfy . We ask the following question: does there exist τ in extending α, such that no two strings in extending τ are -splitting?
If not: Then the -splitting subtree of above α is total, let us call it T. We can just define and . Since A will lie on , the conditions of Lemma 5.1 are satisfied, and so is .
If so: Then we can define and we can define to be the subtree of above τ. Since is -nonsplitting, and A will lie on this tree, the conditions of Lemma 5.2 are satisfied and so is . □
The proof just described suffices to show that minimal degrees exist, but analyzing the proof further can tell us something about where they exist. What oracle do we require in order to run this construction? During the first part of each stage, where we act in order to satisfy , we need only to find the least n such that there are two strings extending in of length greater than n and which disagree on argument n – and then to decide whether . This last task requires only an oracle for .
During the second part of each stage we need to be able to answer the following question: does there exist τ in extending α, such that no two strings in extending τ are -splitting? In order to see that a -oracle suffices to answer this question, consider the following -oracle search procedure, which terminates iff the answer is yes. Starting with α and proceeding through all the strings extending α (ordered by length and then from left to right), this search procedure asks whether there exist two strings in extending τ which are -splitting, and terminates if the answer is no.
This proof, then, gives the existence of minimal degrees below . Do there exist minimal degrees below ? In fact there do, but no proof like the one just described, which uses perfect splitting trees, can be used in order to construct one. In order to see this, we need to take a look at the hyperimmune-free degrees. The definition we give here is not the original, but is provably equivalent to it.
We say A is of hyperimmune-free degree if, for every function , there exists a computable function g which majorizes f, i.e. such that for all n.
So if A is of hyperimmune-free degree then it is not an ability A has to compute quickly growing functions – for every function A computes there is a computable function which grows at least as quickly. It is not immediately obvious that any hyperimmune-free degrees other than should exist but, in fact, an analysis of the proof of Theorem 5.1 will tell us that any minimal degree constructed in this way will automatically be of hyperimmune-free degree.
Suppose that . Then for some i, and in fact this holds for some i such that, for any σ, for all . If A lies on a perfect computable -splitting tree T, then it is easily seen by induction on n that for every σ of level in T. Since T is a total function we can compute the set of values such that σ is of level in T and then we can define to be greater than all these values. In this way we compute g which majorizes f.
A degree is hyperimmune iff it is not hyperimmune-free.
When , denotes the initial segment of σ of length n (and this definition is also extended in the natural way to the case of infinite strings).
Ifthen there exists f of degreesuch that any function majorizing f is of degree above. Thus, every non-zero degree belowis hyperimmune.
If A is of degree below then it has a computable approximation . For all n, let be the least such that . Clearly f is computable in A. Now suppose that g majorizes f. We show that in this case, A is computable in g. In order to compute given g search for such that for all s such that . Such an m exists because the approximation to A eventually settles on all arguments . Since for some s with and is the same for all such values of s, this common value must be . □
So long as we use perfect trees in order to construct our set of minimal degree, the set we construct will be of hyperimmune-free degree, but all non-zero degrees below are hyperimmune. Therefore, in order to construct a minimal degree below , some modification in our approach will be required. The solution is to use partial splitting trees.
The requirements are just as before, and other than the fact that we shall now use partial splitting trees the basic approach is the same as before. In order to satisfy each requirement we shall ensure that either A lies on a partial computable -splitting tree, or else A lies on some partial computable tree which is -nonsplitting. What we have to do is to replace the question, “does there exist τ in extending α, such that no two strings in extending τ are -splitting?” with a question which can be decided using an oracle for .
When we asked this question in the proof of Theorem 5.1 what we were essentially asking was, “if we define to be a -splitting tree, will there be dead-ends in this tree – will there be some point above which it is undefined?”. The answer to this question allowed us to decide in one go how we should define . Now we have to give up on the idea that this decision can be made in one step. We begin by assuming that can be defined to be a splitting tree and that we will be able to construct A so as to lie on this tree. At each stage we ask the oracle for whether there exists at least one more pair of strings in the splitting tree, above the initial segment of A that we have already defined. If so then we can continue with the idea that can be built as a splitting tree. If not, then we can now begin to build as a nonsplitting tree.
Thus we now have to approximate the nested sequence of splitting trees. We let denote our guess as to how should be defined at stage s. At any given stage we may change our guess as to , and when we do so we have to abandon everything we previously believed about for . Once we get to a stage, however, when we no longer change our mind about any for , we shall only change our mind about a maximum of one further time (when and if we decide that it shouldn’t be a splitting tree). Clearly this means we shall only change our mind as to how each tree should be defined a finite number of times.
We now formally describe the construction.
Stage 0:
Define and .
Stage:
We are given and a finite sequence of nested trees
for some . Find the least such that either or else there do not exist any strings in properly extending . The rest of the required action for the stage is divided into two subcases.
If : Then define to be the subtree of above . Define for all and make for all . Define to be a proper extension of in which is not an initial segment of .
If : Define to be a proper extension of in which is not an initial segment of . Define for all , define to be the -splitting subtree of above , and leave undefined for all .
This ends the formal description of the construction.
The verification. We only give a quick sketch. It is clear that each requirement is satisfied. In order to show that each requirement is satisfied we must show that our approximation to each eventually settles, either to some partial computable -splitting tree or to some partial computable -nonsplitting tree, and that A lies on this tree. This follows easily by induction. □
What we have given here is just a very brief introduction to the techniques of minimal degree construction. In the 1960s and 1970s, as computability theorists looked to answer various global questions concerning the theory of the Turing degrees, such as the decidability or otherwise of various fragments of the theory, the path originally taken in order to achieve this was through a detailed analysis of the initial segments of the structure (where an initial segment is a downward closed set of degrees). The techniques we have introduced here were greatly extended by Lachlan, Thomason, Lerman and others, through the use of lattice tables and other such methods, in order to give us a great deal of information about what the initial segments of the structure look like. It was eventually established that the isomorphism types of countable ideals of the Turing degrees are exactly the isomorphism types of countable upper semi-lattices with least element. For a thorough account we refer the reader to Lerman’s book [19]. From the latter result it can be proved that the two quantifier theory of the Turing degrees is decidable, and that the three quantifier theory is undecidable (actually all that is required is that every finite lattice can be embedded as an initial segment). In fact, Simpson’s original proof [42] in which he used coding methods in order to show that the theory of the Turing degrees is computably isomorphic to true second order arithmetic, also relied upon initial segment techniques. Later Slaman and Woodin [44], however, gave a simpler (and more generally applicable) proof, which does not use techniques of this kind.
Some order theoretic properties of
In the following sections we shall define the local and generalized jump classes and we shall then be looking to establish which order theoretic properties are satisfied by the degrees in each of these classes – the aim being that we might eventually be able to establish some fairly natural order theoretic properties which suffice to define the degrees in each class. As we discussed before, by a natural order theoretic property we mean, roughly speaking, a property which can be described by a formula in the first order language for the Turing degrees which has ⩽ as the only non-logical symbol, which is not too long and doesn’t have too many alternations of quantifiers. A simple example would be the cupping property; a degree satisfies the cupping property if there exists with .
By way of preparation, we consider first some simple order theoretic properties satisfied by . This will allow us to introduce some standard techniques.
satisfies the cupping property.
We give a proof using perfect trees, which will be easily modified later on in order to give the result for larger classes of degrees.
We say that is perfectly cone avoiding if it computes a perfect tree T such that no path through T is of degree above .
If is perfectly cone avoiding then it is easily observed that it satisfies the cupping property as follows. Suppose that the perfect tree T is of degree below and that no path through T is of degree above . Given B of degree let , i.e. let C be the infinite string which extends for all . Then C is a path through T and so is of degree . Given an oracle for T and an oracle for C we can determine B from the fact that . Thus .
So in order to show that satisfies the cupping property, it suffices to show that it is perfectly cone avoiding. We can construct the required tree T using an oracle for as follows. Suppose is already defined and let . If there exist two strings extending which are -splitting then let be such that is incompatible with and let and be incompatible extensions of τ. If there do not exist two such strings then is either partial or computable for all , so we can just define and be any incompatible extensions of . □
It is easy to see that the degrees which satisfy the cupping property are upward closed. The join property, however, is not so simple in this respect.
A degree satisfies the join property if, for all non-zero there exists with .
We suppose that we are given B of non-zero degree below . In fact, we can suppose not only that B is non-computable, but also that it is not c.e. (in any case, letting be the complement of B, is not c.e. if B is non-computable). We use an oracle for to construct A such that and:
:
.
The construction will be a finite extension argument. For all n let be the sequence of n 0s followed by a 1 (the point of this sequence of strings just being that they are pairwise incompatible). The basic idea behind the construction is that it should be possible to retrace each stage of the construction using an oracle for . At each stage we code another bit of into A, so that retracing the construction means being able to compute . is constructed in stages as follows.
Stage 0:
Define .
Stage:
Let n be the least such that either:
Case 1:
and there do not exist two extensions of which are -splitting.
Case 2:
and there exist two extensions of which are -splitting.
Such an n must exist, since otherwise iff there exist two extensions of which are -splitting – in which case B would be c.e., contrary to assumption.
If case 1 applies then will be satisfied so long as we insist that , since then is either partial or computable. So in this case we define (so we code another bit of into A with the last bit of ).
If case 2 applies then consider the first -splitting extending which is found by some fixed computable search procedure, choose from this splitting such that is incompatible with and define .
This ends the description of the construction.
The verification. Since it is clear that all the requirements are satisfied, it remains only to show that an oracle for can compute the sequence . Since the last bit of is , computing this sequence means being able to compute . So suppose that, using an oracle for we have already been able to decide . Then there exists a unique n such that . Given n, we can then consult the oracle for B to decide whether . This tells us whether case 1 or case 2 applied at stage , and this suffices for us to decide . □
A degree satisfies the meet property if, for all , there exists non-zero with .
The following proof is amongst the hardest that we shall give in this course. It is not necessary to understand this proof in order to follow the rest of the course, and so readers who feel inclined to do so may certainly omit it. In fact, the result can be proved more simply, but the advantage of making the effort to understand the proof given here is that it is easily modified in order to prove the complementation theorem: if then there exists such that and . It also serves as a good example of various techniques.
([15]).
satisfies the meet property.
We suppose that we are given and we use an oracle for to construct A which satisfies all requirements:
:
.
:
If is total and then C is computable.
We say that a function f dominates a function g if for all but finitely many , .
Let’s begin by considering a simple strategy that we might employ in order to satisfy an individual requirement . Given the oracle for we intend to construct A by a finite extension argument, so suppose that at stage of the construction the initial part of A we have already defined is , and that now we wish to satisfy requirement . Using the oracle for we can ask whether there exist two strings extending which are -splitting.
If not: then, since A will extend , will either be partial or computable.
If so: then we can find , extending and m for which . Now suppose that we knew – then we could choose i such that and thus satisfy requirement in this case also by defining .
The obvious problem with this approach is that we do not know whether. In order to decide this for arbitrary e and m would require an oracle for , which we do not have. The basic idea to overcome this obstacle is to use Theorem 5.2. We suppose we are given f of degree which is not dominated by any function of degree strictly below and so, in particular, is not dominated by any function computable in B.
Using this function f we now consider a slightly more sophisticated approach. At stage , given , we perform an iteration as follows. Initially we define . At the nth step in the iteration () we are given . Check to see whether there exist two strings extending which are -splitting. If not then we say that holds, and in this case we may define before terminating the iteration. Otherwise let τ, be two such strings. Let be such that . Then check to see whether in less than steps. If so then we say that holds and in this case we can choose such that , define and terminate the iteration. If does not hold, then let be the leftmost of τ, , define and perform the next step in the iteration.
Now if is total we need to be able to argue that this iteration will come to an end, i.e. for some , either or holds. So suppose otherwise and consider the function:
(where for any predicate , denotes the least s such that holds and is undefined if does not hold for any s). Since it is the case for all that does not hold, g dominates f. This gives us the required contradiction because g is computable in B.
We are not through the woods yet though. The argument above sufficed to show that, whenis total the iteration must terminate. When is not total, however, we have a problem because then the iteration may not terminate. To attempt to perform this iteration at a given stage might require an infinite number of steps, meaning that we never reach the next stage of the construction. The obvious way to deal with this is to dovetail the action required for each requirement. Rather than attempting to perform the entire iteration for a single at any given stage, we perform one step of the iteration for at stage 1, then another step of the iteration for and also one step of the iteration for at stage 2. Then at stage 3, we perform one step of each of the iterations for , , , and so on.
This approach now brings with it a new problem. In order that g should be computable in B it was necessary that the sequence should be computable (or at least computable in B). Previously this was the case because, at each step in the iteration, when we found that neither of and held, was always defined to be the leftmost of τ and . It was because we always went to the left that the sequence was computable – had we gone sometimes to the left and sometimes to the right in a manner computable only in an oracle for then we would only have been able to deduce that the sequence (and so also the function g) was computable in . Now that we dovetail the action required for various requirements, this is precisely what will happen – sometimes we will find the chance to diagonalize for lower priority requirements and this may require us fixing either the leftmost or the rightmost string in some splitting as an initial segment of A.
What we need is a function which dominates g and which does not depend upon the values in such a sensitive way, and we therefore consider the function h defined as follows:
If we had that, for all , then we could prove that for all , by a simple induction as follows. By definition . Suppose that we know . Then and thus:
Now in order to ensure that for all we need only make a small change to the construction. Instead of checking to see whether the computation converges in less than steps, we wait until we have defined and then check to see whether the computation converges in at most steps. If so then we may define so as to successfully diagonalize once and for all. Otherwise as we required.
Now we must put all this together. First of all we establish some further notation and terminology. The splittings that are found during the iteration that we perform for will all be enumerated into a set . So initially this set is empty, and then we enumerate strings into it during the course of the construction. Any strings that are enumerated into any will also be enumerated into the set T – so T collects all of these splittings together into one set.
There are two ways in which we might get to irreversibly satisfy a requirement . When we find a string τ above which there are no -splittings, we shall say that the requirement is γ-satisfiable via τ. When we find τ with which we can diagonalize by forcing for some m, we shall say that the requirement is β-satisfiable via τ.
As described above, at stage 1 we perform one step in the iteration for . Suppose that a splitting is found and that these strings, and say, are enumerated into and T. For the reasons described above, we do not immediately decide which of these strings will be an initial segment of A. At stage 2 we now look to perform a step of the iteration for and also a step in the iteration for . We do this, however, in reverse order, i.e. we work for first and then. The reason for this will subsequently become apparent. So first of all, we work for . We do not yet know, however, which of the two strings already enumerated into T will be an initial segment of A, so we must work above both of these strings. We ask whether there exists a -splitting above and we also ask whether there exists a -splitting above . Any splittings that exist are enumerated into T and . If there doesn’t exist a splitting above some then we record that is γ-satisfiable via this string. Rather than a single argument as in the iteration described before, we now have an argument corresponding to each splitting pair enumerated into .
Having done this for , we now work for , and once again we work above every string enumerated into T. Again, rather than a single argument we now have an argument corresponding to each pair of strings enumerated into . We use the maximum of these values and as we test to see whether is β-satisfiable via either or .
Then at the end of stage 2, we consider the highest priority requirement which is either β-satisfiable or γ-satisfiable via some string, and we declare that this string should be an initial segment of A. It is at this point that we can see why we considered the requirements in reverse order. Suppose that is not γ or β-satisfiable via any string at the end of stage 2, but that is γ-satisfiable via either or . When we declare that this string, say, should be an initial segment of A at the end of stage 2, we have not lost our opportunity to find a string via which is β-satisfiable at the next stage – there are splittings which we have enumerated into extending at stage 2, and this is true only because we treated the requirements in reverse order. Thus we avoid the action we take for injuring our attempt to satisfy .
The construction.
Stage:
Define . Initially T and all the are empty.
Stage:
Step 1:
For each , from greatest to least, proceed as follows in turn. For each leaf σ of T that extends (if T is empty then it is convenient to consider ∅ a leaf of T) check to see whether there exist two strings extending σ which are -splitting. If not then record that is ‘γ-satisfiable’ at stage s via σ, unless the requirement has already been declared satisfied. Otherwise let τ and be two such strings, enumerate them into T and , and find m such that . Since τ and are both enumerated into T at the same stage and both extend the same string τ which was (prior to their enumeration) a leaf of T, we shall call these two strings a ‘pair’. We shall call m the ‘argument’ corresponding to this pair of strings. Let be all of those strings that we have enumerated into at stage s, if there are any such, and let be those arguments corresponding to each pair of strings in this set. If this set is non-empty proceed as follows (and otherwise do nothing). Define . Check to see whether there exist any strings which we enumerated into at stage and which properly extend . If so then call these strings and let be the arguments corresponding to each pair of strings in this set. Check to see whether there exists such that converges in at most steps. If so then choose such that and record that is ‘β-satisfiable’ at stage s via , unless the requirement has already been declared satisfied.
Step 2:
If there does not exist which is either γ-satisfiable or β-satisfiable at stage s then let τ be the leftmost of all the strings extending which were leaves of T at the end of stage , and define (if T was empty prior to stage s then define ). Otherwise let e be the least such. We act to satisfy requirement . If is γ-satisfiable via some string τ then choose such a string and define . Otherwise if is β-satisfiable via some string τ, choose such a string and define . Requirement is then declared to be satisfied.
Step 3:
For each leaf τ of T enumerate into T a string extending τ which diagonalizes against the sth computable function.
Verification (sketch). It is clear that for every the requirement is satisfied so we are left to show that all requirements of the form are satisfied. If we act to satisfy any requirement at some stage of the construction then obviously this requirement is (irreversibly) satisfied. So suppose that there is no stage of the construction at which we act in order to satisfy the requirement and that is total. Then we may take a stage s large enough such that at no stage do we act in order to satisfy any requirement for . At no stage is the requirement γ-satisfiable. At every stage we enumerate strings into and it is the case that there exist strings which we enumerated into at stage which extend . Consider the function defined as follows. If then . Given any let be those strings which we enumerated into at stage and which extend . Let be the arguments corresponding to each pair of strings in this set. If then . Then dominates f. We may also show by almost precisely the same inductive argument as before that is dominated by the function defined as follows. If then . If then . This gives us the contradiction required since . □
The jump hierarchy
We introduce the jump hierarchy first for the degrees below . In this context the jump hierarchy provides a way of formalizing the notion of being close to or close to . The idea behind this hierarchy begins with the observation that there are degrees such that .
A degree is low if .
There exist non-zero low degrees. In fact there exist c.e. degrees of this kind.
To prove that there exist non-zero low degrees can be done very easily using a finite extension -oracle construction. We prove the stronger result that there exist non-zero c.e. degrees which are low, because it gives us the opportunity to describe a finite injury construction.
As is normally the case when working with the c.e. degrees, the construction we describe will be a full approximation construction, which means we shall not make use of any oracle but instead will describe a construction which can be effectively carried out. This is not surprising since the only general method we have for ensuring that a constructed set is c.e. is to describe an effective procedure for enumerating it.
First, let’s consider the non-computability requirements. In order to ensure that A is non-computable, it suffices to ensure that it has infinite complement and that:
These requirements suffice because A is computable iff A and are both c.e. – these requirements ensure that the complement of A is not equal to for any e.
Next let’s consider how to make the degree of A low. In order to do this, we act in order to satisfy the following requirements:
where denotes “there exist infinitely many s such that ”, consists of the numbers enumerated into A by the end of stage s and . In order to see that satisfaction of the requirements suffices to ensure that A is of low degree, consider the function g defined as follows; if and otherwise. Let – satisfaction of means that this limit exists. Then is the characteristic function of and, since g is computable, is computable given an oracle for .
The use function is defined as follows; is 1 plus the maximum element of the oracle used in the computation if this computation converges, and is 0 otherwise.
In order to satisfy the requirements we consider a restraint function for each e;
We shall say that the restraint function is injured at stage of the construction if is enumerated into A at this stage. The crucial point about the restraint function is just this: if there exists a stage of the construction after which is not injured then is satisfied and is defined. In order to see this, suppose that is not injured at any stage . If there doesn’t exist any stage at which then is satisfied, and . Otherwise let t be the least such. Since we do not enumerate any numbers into A less than after stage t, this computation is preserved so that and for all .
In order to satisfy all of the requirements, then, we consider them given a priority ranking . So is the highest priority requirement, then is the requirement of next highest priority, and so on. Then we agree that any requirement is not allowed to injure any requirement of higher priority, i.e. is only allowed to enumerate a number into A if this number is greater than the present values of all the restraint functions corresponding to requirements of higher priority. Once a requirement enumerates a number into A it is irreversibly satisfied, so each requirement needs only to enumerate at most one number into A.
For each requirement there are only a finite number of requirements which are of higher priority, and this immediately means that there will be a stage of the construction after which is not injured. Therefore is satisfied and is defined. This in turn means that we can satisfy each requirement – if is infinite then it will have a member greater than the limit values of all restraint functions of higher priority, and we can enumerate this number into A in order to satisfy the requirement. We now formally describe the construction.
Stage 0:
Let .
Stage:
We are given . Find the least (if any) such that:
and
where is the domain of . If such an i exists, then choose the least x satisfying the second clause above and enumerate this x into A, i.e. define . If no such i exists then do nothing, so .
This ends the construction.
The verification. That the complement of A is infinite follows since each requirement enumerates at most one x into A, and if it does enumerate some x into A then . That every requirement is satisfied follows by induction on the priority ranking according to the arguments already described above. □
We define the jump hierarchy first for the degrees below .
We define inductively as follows; and is the jump of .
A degree is if and . A degree is if and .
In other words, a degree below is if its nth jump is as low as it possibly could be – the same as the nth jump of . On the other hand, a degree is if its nth jump is as high as it possibly could be – the same as the nth jump of . A crucial point here is that when we always have . This means that if and is then is also . If and is then must be also.
The next question which arises is whether these jump classes are all distinct. Is it the case that for every n, there exist degrees which are but not , and degrees which are but not ? How about when we restrict to the c.e. degrees? In order to answer this question we consider hop operators, which are of considerable interest in their own right.
is the domain of .
For the eth hop operator is defined as follows: for all , .
In the definition above we take the ⊕ with Y simply in order to ensure that the degree of is above the degree of Y.
For every e there exists a c.e. set A such that. Moreover, A can be found uniformly in e and this result can be relativized to any Y, i.e. there exist computable functions f and g such that for all e, Y:
The basic techniques are somewhat similar to the proof of Theorem 7.1. First of all, we must make sure that . In order to achieve this we act in order to satisfy the requirements:
where is the domain of . That these requirements suffice to ensure can be argued in the same way that we argued that the requirements for the proof of Theorem 7.1 sufficed to show . The way in which we look to satisfy these requirements is also almost identical. We define a restraint function for each x:
and we require that, for each x, there exists a stage of the construction after which the restraint function is not injured, i.e. after which we do not enumerate any numbers into A less than the present value of the restraint function for x. If we do this, then will be satisfied and the value will reach a limit.
We let denote the ith column of A, i.e. the set of all numbers in A of the form . Given finite , let , and for each let be . We define .
Our second task is to code into . In order to do this, we agree first of all, that we shall put a number into the xth column of A iff , i.e. we shall ensure that is non-empty iff . On its own this would achieve very little, we would have only that is c.e. given an oracle for A and this would be true anyway! If, however, we can ensure that there exists a function such that, whenever there exists a number in the xth column of A, there exists one less than , then we shall have that as required. For each x, then, we have the requirement:
The pleasing observation now is that, in fact, these requirements are easily satisfied. What is it, after all, which is limiting how small are the numbers that we can enumerate into the xth column? This is just the restraints associated with the requirements . If we prioritize the requirements then there will only be a finite number of requirements of higher priority than . Given an oracle for we know which of these are in , and then we can use the oracle for A to compute the limit values of each corresponding . This means that, using the oracle for we can find a position in the xth column after which we will always be allowed to enumerate numbers without injuring requirements of higher priority.
The precise instructions for the construction are as follows.
Stage 0:
Let . For all x we define .
Stage:
For each x we define:
For each enumerate into .
This ends the description of the construction.
We define .
We leave it to the reader to verify that h is computable in , and that the proof relativizes and remains uniform. □
For every n, there exist c.e. degrees which arebut not, and degrees which arebut not.
First note that Theorem 7.1 relativizes to arbitrary Y. There exists an index , in other words, such that and for all Y. So is relative to Y but not relative to Y. Applying Theorem 7.2 to produces an index such that is relative to Y but not relative to Y. Now, applying Theorem 7.2 to , produces such that is relative to Y but not relative to Y. Continue this pattern using the fact that is relative to C iff C is relative to Y. □
Generalizing the jump classes
When discussing the Turing degrees in general, rather than just the degrees below , it turns out that the most fruitful way to proceed is to consider the relationship between the iterated jump of the given degree and its join with .
For , a degree is () if . A degree is () if . If a degree is generalized then we also say that it is generalized low, and if a degree is generalized then we say that it is generalized high.
To rephrase – a degree is generalized if its nth jump is as low as it possibly could be in relation to , and is generalized if its nth jump is as high as it possibly could be in relation to . This might initially seem a little arbitrary. The fact that this is a useful definition comes from the fact that this is normally precisely the definition which is needed in order to carry local results through to the generalized case. If we work first with the degrees below and we find that all degrees satisfy a certain structural property, for example, it will then normally be the case that, in fact, the proof can be played with in order to give the same result for all . There is one consequence of this definition, however, which it is important to note. The generalized jump classes do not respect the ordering relation on the Turing degrees in the way that one might initially hope. In fact, every degree which is not above is bounded by a generalized low.
Every degree which is not aboveis bounded by a generalized low degree.
First of all we note that the proof of Theorem 6.2 can easily be modified in order to give the stronger result, that for every non-zero degree there is a low degree such that . We only sketch the modification since it is not complicated.
Now, rather than simply building to be non-computable, we must satisfy lowness and in order to do this, we decide whether or not at stage of the construction. Since the construction requires an oracle for and we compute as the construction progresses, this suffices to show that .
So now, at stage , we perform a modified version of the search previously described. We let n be the least such that:
Case 1:
and there does not exist such that .
Case 2:
and there does exist such that .
Such an n must exist, for precisely the same reasons as before – since otherwise B would be c.e., contrary to assumption.
If case 1 applies then so long as we insist that . So in this case we define (recall that we code another bit of into A with the last bit of ).
If case 2 applies then consider the first such α which is found by some fixed computable search procedure, and define .
Now we are ready to prove the theorem. Given which is not above , let and observe that . Now apply the result we just proved, relativized to (one can easily verify that the proof relativizes). This gives such that and , so and is generalized low. □
Now that we have defined the jump hierarchies, we shall go on to consider what structural properties are satisfied by the degrees in each of the jump classes. Beginning with very simple properties such as the cupping property and gradually moving to consider properties which are more complex, we shall look to answer questions of the form, “do all high degrees satisfy this property?”, “do all degrees satisfy this property?”, and so on. We shall go on to consider such matters shortly, but first it is necessary to consider some classes of degrees that will be useful in this analysis. We shall consider the PA degrees, and then we shall briefly introduce the a.n.r. degrees and the 1-generic degrees.
PA degrees and classes
Since Turing functionals can take elements of as well as natural numbers as inputs, it makes sense to talk about computable subsets of , or more generally, computable subsets of . A set is computable if there is a Turing functional which terminates given any element of , and which outputs 1 if this element is in and outputs 0 otherwise. Then is if it is defined by a formula, i.e. if there exists some computable R such that:
Similarly is if there exists some computable R such that:
One of the reasons that classes are very important is that they crop up all over the place. Very often one will be working with a subset of which will turn out to be a class and one will then immediately be able to apply all of the results we have for classes. By way of example, the set of complete and consistent extensions of any axiomatizable theory can be seen as a class (where an axiomatizable theory is the deductive closure of a c.e. set of sentences). In order to see this fix an effective bijection between sentences in the language and ω. Then any string can be seen as a set of sentences. Consider an algorithm which, given any string σ and the set of sentences that it codes, outputs 1 unless it finds after searching for many steps that any of the following conditions are satisfied, in which case it outputs 0:
that there exists some sentence such that both it and its negation correspond to numbers less than but neither it nor its negation is in ;
there exists some sentence in , whose code is strictly less than , which is not in ;
is not consistent.
Often which is a set is referred to as a -class – this is simply in order to emphasize the fact that it is a set of sets of natural numbers being considered, rather than just a set of natural numbers. Now we want to analyze these classes, to see something of what they look like. Our first aim is to find a very concrete way of picturing these objects. The following observations are easily verified.
A class is a set for which there exists a c.e. set of finite strings W such that elements of are precisely those infinite strings which extend some element of W.
A class is a set for which there exists some downward closed and computable set of finite strings Λ, such that is the set of all infinite paths through Λ.
A set of strings is downward closed if all initial segments of any member of the set are also in the set. In this context, it is useful to consider a simple topology on . We take as the basic open sets, those of the form where σ is a finite binary string, and where denotes the set of all infinite strings extending σ. According to this topology any class is a closed set and any class is open. Compactness for this space (Cantor space) is given by the following weak form of König’s lemma.
(König’s lemma).
If Λ is a downward closed set of finite binary strings and is infinite, then there exists an infinite path through Λ.
We define which is an infinite path through Λ one bit at a time.
Stage 0:
Define .
Stage:
We are given such that there exist infinitely many strings in Λ extending . If there exist infinitely many strings in Λ extending then define to be this string, otherwise define . □
Basis theorems
A basis theorem is a theorem which says that every set of a particular kind has a member of a particular kind. We shall establish three basis theorems for classes.
Every non-emptyclass has a member of c.e. degree.
Let us suppose that is a non-empty class, and let Λ be a downward closed and computable set of finite binary strings such that is the set of all infinite paths through Λ.
For each n let be the leftmost of all the strings of length n which has an extension in . Since is a closed set, is an element of . Now it follows from König’s lemma that if σ does not have any infinite extension in then there exists m such that σ does not have any extension in Λ of length m. Therefore the set of finite strings to the left of A is computably enumerable, and is of the same degree as A. □
If then we let denote the set of all infinite paths through Λ, i.e. the set of all which have an infinite number of initial segments in Λ.
Probably the most cited theorem in the theory of classes, is the low basis theorem of Jockusch and Soare:
Every non-emptyclass contains a member of low degree.
We suppose we are given which is a non-empty class, and also a downward closed and computable set of strings Λ such that . We construct of low degree. To construct A, we define a sequence of finite strings such that . In order to help us define this sequence, we define also a sequence such that and each .
We do all this in a sequence of stages, so that at stage s we define and . At stage s, what we have done is to decide that and that . So at each stage we further restrict the class of which A must be a member.
We run this construction using an oracle for in such a way that at stage we get to decide whether . If we do this it is clear that will be computable in the halting problem.
The construction is defined precisely as follows.
Stage 0:
Define . Define . So far we know that and that .
Stage:
We have already defined and . We ask the following question (the fact that we can answer this question using an oracle for follows from König’s Lemma):
Does there exist extending such that ?
If so: we define so that is the set of all B in of this kind. Since A will be in we know that . We define to be some extension of which has an infinite extension in .
If not: we just define and define to be some extension of which has an infinite extension in . Since A will be in we know that . □
There exists a complete and consistent extension of PA which is of low degree.
We saw before that the complete and consistent extensions of any axiomatizable theory can be seen as a class. The result then follows from the low basis theorem. □
Almost as important as the low basis theorem is a hyperimmune-free basis theorem.
Every non-emptyclass contains a member of hyperimmune-free degree.
The basic format of the proof is very similar to the proof of the low basis theorem. Once again, we suppose we are given which is a non-empty class, and also a downward closed and computable set of strings Λ such that . We construct which is of hyperimmune-free degree. Once again, to construct A, we define a sequence of finite strings such that . In order to help us define this sequence, we define also a sequence such that and each .
We do all this in a sequence of stages, so that at stage s we define and . At stage s, what we have done is to decide that and that . So at each stage we further restrict the class of which A must be a member.
A major difference is that, this time around, we do not have to worry about which oracle is required in order to run the construction. We run the construction in such a way that at stage we either force to be partial, or we define some computable g which majorizes .
The construction is defined precisely as follows.
Stage 0:
Define . Define . So far we know that and that .
Stage:
We have already defined and . We ask:
Does there exist m and extending , such that ?
If so: we fix such an m and define so that is the set of all B in of this kind. Since A will be in we know that is partial. We define to be some extension of which has an infinite extension in .
If not: we just define and define to be some extension of which has an infinite extension in . It is then easy to define some computable g which majorizes every such that . For any , in order to define proceed as follows. Since there does not exist extending , such that , it follows from König’s Lemma that there must exist some l such that for all strings σ in of length l. We can search in a computable fashion until such an l is found, and then simply choose to be greater than all of the values such that σ is a string in of length l.
This ends the construction. □
There exists a complete and consistent extension of PA of hyperimmune-free degree.
A Turing degree is PA if it contains a set which effectively codes a complete and consistent extension of PA.
The following theorem, which we state without proof, means that the study of the PA degrees and the study of degrees of members of classes are intimately related.
A degreeis PA iff every non-emptyclass contains a member of degree below.
The following theorem is very often useful.
We say f is diagonally non-recursive (DNR) if, for all n, . If in addition, for all n, then we say that f is -valued DNR. We say f is fixed point free (FPF) if, for all n, .
Jockusch observed that the DNR degrees (those containing DNR functions) are precisely the FPF degrees (those containing FPF functions).
A degree is PA iff it contains a-valued DNR function.
On the one hand, the fact that any PA degree computes a -valued DNR function follows from Theorem 8.4 and the fact that the set of all -valued DNR functions is a class. It is not difficult to see that the degrees containing -valued DNR functions are upward closed.
On the other hand, if contains a -valued DNR function f, then this can be used to compute a path through any class as follows. Let for some downward closed computable Λ.
Stage 0:
Define .
Stage:
We are given which has an infinite extension in . Consider the algorithm which searches for and l such that does not have any extensions in Λ of length l, and which outputs the first such j found (and which does not terminate if no such j and l are found). Let i be such that the output of this algorithm is equal to . Then has an infinite extension in , so define to be . □
So far then, what do we know about what the PA degrees look like? Theorem 8.4 makes it clear that the PA degrees are upward closed. We know that there are PA degrees which are low, so certainly all degrees above are PA. There are PA degrees which are hyperimmune-free. Theorem 8.5 makes it clear that all PA degrees are fixed-point-free. The fact that the PA degrees are a proper subset of the fixed-point-free degrees can be seen through an analysis of the measure of these sets – the PA degrees are of Lebesgue measure 0, while the fixed-point-free degrees are of measure 1. Since we are not dealing with measure in this course, however, another way to see this is from the fact that there exists a minimal degree which is fixed-point-free, together with the following theorem.
Every PA degree strictly bounds a PA degree.
The following property of the PA degrees will also be used later.
([17]).
Every PA degree satisfies the cupping property.
The proof we sketch here is an alternative proof due to the author. For the duration of this proof we assume that, for any i, τ, n, only if this computation converges in many steps and for all .
A total function is an n-branching tree if, for all and :
, .
is incompatible with .
We move freely between thinking of trees as sets of strings or as functions from strings to strings – so we may specify a tree by describing its range.
What we aim to do is to construct a downward closed and computable set of finite binary strings Λ such that there exist infinite paths through Λ and such that if A is an infinite path through Λ then A computes some non-empty 2-branching (let’s say) such that no set lying on computes A. In order to ensure that no set lying on computes A it is convenient to construct a Turing functional Ψ such that no set lying on computes . In order to define for any A which is an infinite path through Λ we shall define values for τ in Λ and then will be defined to be the union of all such that . Thus there are three different kinds of object under construction: Λ, for A which is an infinite path through Λ and Ψ, and we must define these values in such a way that there exist infinite paths through Λ and so that the following requirements are satisfied:
In fact, what we shall do here is just to consider how to satisfy a single requirement . We shall therefore only be concerned with the values and with defining Ψ on argument 0.
The most primitive form of the intuition runs as follows: if we are given four strings and we colour those four strings using two colours then there exists some colour such that at least two strings are not that colour (actually we only need three strings but it is convenient here to do everything in powers of two). Now we extend this idea. First we define a certain set of strings T. The role of T is that it is the set of all strings that could possibly be in for some . In the case that we are only looking to satisfy a single requirement T is rather trivial, we just define T to be the set of all strings of even length. The important thing about T is that it is 4-branching. We let denote the set of strings in T of level in T. Next, we consider a certain form of finite subset of T:
We say that finite is -compatible if the strings of level n in are of length and every string in which is not a leaf of has precisely two successors.
The role of these -compatible is that when we define for actually we shall define this value to be some -compatible . Recall that is said to be of level n if it is finite and all leaves are of level n. The following lemma is what we need in order to satisfy the first requirement:
For any finitea 2-colouring ofis an assignment of someto each leaf σ of. For any n and any 2-colouring ofthere existswhich iscompatible of level n andsuch that no leaf σ ofhas.
This is easily seen by induction. The case is trivial and, in fact, we have already seen the case . If we are given four strings and we colour those four strings using two colours then there exists some colour such that at least two strings are not that colour. Those two strings then define some -compatible of level 1. In order to see the induction step suppose we are given a 2-colouring of . First we use this 2-colouring in order to define a 2-colouring of as follows. Consider each leaf σ of . Such σ has precisely four successors in . If more than two of those successors are coloured 0 then colour σ with 0. If more than two of those successors are coloured 1 then colour σ with 1, and otherwise colour σ with 0. What this means is that if σ is not coloured d then at least two successors of σ are not coloured d. By the induction hypothesis there exists some -compatible of level n and there exists d such that no leaf of is coloured d. In order to define of level sufficient to complete the induction step, all we need do is to choose two successors of each leaf of which are not coloured d. □
Now we see how to use this lemma in order to satisfy while also satisfying the condition that should be non-empty. Before defining Λ we define a set of strings . These are strings which may or may not be in Λ. We do not insist that should be downward closed, in order to form Λ we shall later add strings in so that Λ is downward closed. For every n we let denote the set of strings in which are of level n in . Thus for every n we must define the set of strings which are in , for each such τ we must define a value which will be some -compatible of level n (if then we must also have that ), and we must also ensure that if then is defined on argument 0. In order to satisfy this latter condition we can just ensure that is defined for all τ of level 1 in and then this task is done once and for all. We shall not describe here precisely how to define these values, but hopefully it is clear that we can do so in such a way that the following lemma is satisfied:
For any, any-compatibleof level n and anythere existssuch thatand.
The fact that we can satisfy Lemma 8.3 is really completely obvious. We are not insisting that should be downward closed, so in order to ensure satisfaction of the lemma all we need do is to put enough strings into each so that all possibilities can be realised.
What this means is that if we define Λ by taking the strings in , adding in strings in order to make it downward closed and then removing any string τ (together with all extensions) for which it is the case that there exists with then for every n we must be left with strings in which are in Λ. In order to see this suppose we are given . Then we can consider the values for those to define a 2-colouring of – where values are not defined to be either 0 or 1 we need not be concerned with them. Then Lemma 8.2 tells us that for this 2-colouring of there exists some -compatible of level n and there exists such that no leaf of is coloured d. Fixing such and such d we may then apply Lemma 8.3 which tells us that there exists with and . Then τ is a string in which is in Λ. By König’s Lemma the fact that there exist an infinite number of strings in Λ suffices to ensure that is nonempty.
In order to satisfy all requirements we must become a little more sophisticated – we need more colours and bushier trees – but the basic idea remains the same. □
The a.n.r. degrees
We shall see later that the degrees turn out to be an important class when we come to consider structural properties of degrees which are likely to satisfied by degrees that are fairly high up in the Turing degree structure. Part of the reason for this, is that Theorem 10.4 often suffices to make uninteresting the question as to whether a property is satisfied by all degrees which are or all degrees which are and not .
When working with the degrees which are , it will invariably be a domination property of these degrees which we shall use in order to prove our results. The domination property in question, comes from a relativization of the following result.
A computes f which dominates all total computable functions iff.
Recall that is of degree . First of all suppose that f dominates all total computable functions. Then we show how to compute g using an oracle for f, such that for all i, . In order to decide run all computations for many steps, and for all . If all of these computations converge within many steps then output 1, otherwise output 0. If then let be the number of steps it takes for all computations to converge for . Then h is a computable function and so is dominated by f.
On the other hand, suppose that . Then A can approximate Tot, and so computes g as just described. In order to compute the required f on argument s, proceed as follows for each . Run the computation until either the computation converges or else we find such that . In the first case let , and in the second case define . Choose greater than all for . □
Now we can relativize:
A is ofdegree iff there is no function computable inwhich dominates all A computable functions.
This follows by relativizing the proof of Theorem 9.1, since it follows directly from the definition that A is of degree which is iff is high relative to A. □
A proof that all degrees satisfy a certain property typically follows the following pattern. We begin by observing that satisfies the property in question, and then observe that, in fact, it is the ability of to compute a sufficiently fast growing function f which allows us to prove this (when relativizing to A one will often find that it is now the ability of to compute a sufficiently fast growing function which is required). The final step then requires showing that the previous proof can be modified. This modification involves showing that, actually, it wasn’t necessary to be able to compute f. In fact, it suffices to compute g not dominated by f.
Described out of context the paragraph above might seem rather abstract, so let us give an example.
For the duration of this proof we assume that is defined only if the computation converges in many steps. First of all, recall the proof that satisfies the cupping property, given in Section 6. In that proof an oracle for sufficed to build the required tree, essentially because, given any i and any σ, the oracle is able to decide whether or not there exist -splittings above σ. Now we see that, to put this another way, it sufficed to be able to compute some sufficiently fast growing function. For any τ we define as follows. For each let be the least such that there exist , extending τ of length and which are a -splitting and if there exist no such then let . Define . For every s define . Then and computing any function which grows as quickly as does, allows one to decide when splittings exist.
Now suppose we are given A of degree. Then there exists with for infinitely many s. We can assume that g is an increasing function.
In order to show that A is perfectly cone avoiding we define as follows. We define T as a set of finite binary strings, but it will be clear how to convert this into the appropriate function .
Stage 0:
We define to be .
Stage:
For each leaf τ of and each such that is compatible with A, check to see whether there exists a -splitting , such that both these strings extend τ and are of length .
If so (for some ): then let i be the least such, let be as short as possible such that is incompatible with A and if then enumerate the two one element extensions of into .
If not: then enumerate the two one element extensions of τ into .
This ends the description of the construction.
It is a crucial detail that, in the first case above, we only enumerate the two one element extensions of into if. This means that, by the end of stage s, all strings enumerated into T are of length at most s. We know that there exist infinitely many s with , suppose that s is one of these stages. Let τ be a leaf of . Then at stage we search for enough steps to see all of the relevant splittings that exist – for every such that there exists a -splitting above τ there exists a splitting in which the strings are of length . If there exists no such i, then we shall enumerate the two one element extensions of τ into T at stage . Otherwise, let i be the least such, let be as short as possible such that is incompatible with A, and let . Then we shall not enumerate any proper extensions of τ into T until stage , when we shall enumerate in the two one element extensions of . □
Now we are ready to define the a.n.r. degrees and to explain one of the reasons for their usefulness.
We say that if via a Turing functional which has use on argument n bounded by for some (total) computable function g.
A is array non-recursive (a.n.r.) if there is no function which dominates every function computable in A. A degree is a.n.r. if its members are. A set A is array recursive if it is not array non-recursive.
Since in this course we are using the terminology “computable” rather than “recursive”, one might reasonably ask why we do not refer instead to the “array non-computable” degrees. The reason is that degrees are standardly referred to by their acronym “a.n.r.” rather than their full name “array non-recursive”. To call them the a.n.c. degrees would probably lead to confusion.
If A is of degree then is not high relative to A. The result then follows from Theorem 9.2 – for every function f which is Turing reducible to there is which is not dominated by f, so certainly this is also true for all those functions wtt reducible to . □
So the a.n.r. degrees are a superset of the degrees which are . In fact they are a proper superset, since it follows directly from the definition that they are upward closed. The key point here is that, when proving results concerning or the degrees, it is often the existence of some fast growing function which allows us to put the proof through, and this function is very often wtt-reducible to . In this case we may well be able to put the same proof through in order to give the result for the a.n.r. degrees. Theorem 9.3 is an example.
The class of a.n.r. degrees has many interesting interactions with other properties in various contexts. Perhaps the most impressive example is the following characterization of those c.e. degrees which have a strong minimal cover, due to Ishmukhametov.
A degree is a minimal cover for if and there does not exist with .
A degree is a strong minimal cover for if the degrees strictly below are precisely the degrees below and including .
A c.e. degree has a strong minimal cover iff it is array recursive.
For the duration of this proof it is convenient to assume that, for any i, τ, n, only if the computation converges in many steps and for all . We give a proof which is a little more informative than the original and proceeds via a sequence of lemmas.
We say is a tree basis if, whenever it computes a perfect tree T, it computes a perfect pointed subtree of T (a tree is pointed if all paths compute the tree).
Ifis a tree basis then it has a strong minimal cover.
First we need to consider how we can relativize the minimal degree construction, and what happens when we do so. Suppose we are given A. We can relativize the minimal degree construction to A by starting with a tree which contains all strings of the form such that , rather than the full binary tree. This ensures that the set we construct is of degree above A, but means that now we must work with A computable trees rather than partial computable trees. Suppose that the set we are constructing is B. When we force B to lie on a -nonsplitting tree, this now means that is either partial or computable in A. When we force B to lie on a -splitting tree, this now means that computes B. What results, then, is a degree which is a minimal cover for , but not necessarily a strong minimal cover. Now, however, suppose that we know is a tree basis. In order to construct a strong minimal cover for we begin just as if we were trying to construct a minimal cover for . At stage , given and , we ask, “does there exist any string such that no two strings extending τ in are -splitting?”
If so: then we define to be the subtree of above τ.
If not: then we can let be a perfect A-computable -splitting subtree of . Now let be such that iff for some , so is a perfect A-computable tree. Now we use the fact that is a tree basis. Let be a perfect A-computable tree such that all paths through the tree compute A. Then such that iff is a perfect A-computable tree. We can define . If B lies on then . □
The next couple of lemmas we need concern the c.e. traceable degrees.
is c.e. traceable if there is a computable function p such that for every function there is a computable function h such that and for all .
How should one understand this definition? The function p here can be thought of as a bounding function and the function h can be thought of as a guessing function. Thus A is c.e. traceable if there exists some computable bounding function p such that for every there exists some computable guessing function h which makes at most guesses as regards each value and one of these guesses is always correct. The next lemma shows that the choice of bounding function is fairly arbitrary.
([47]).
If A is c.e. traceable then, for any increasing and unbounded computable function g such thatfor all n, and for every function, there is a computable function h such thatandfor all n.
We freely identify finite strings and natural number codes for them, for the sake of readability. Let g be any increasing and unbounded computable function such that for all n. Let p be an increasing computable function such that for every function there is a computable function h such that and for all . We can assume . Now let r be an increasing and unbounded computable function which grows sufficiently slowly that for all n:
Let q be an increasing computable function such that for all n:
Suppose we are given and let . Let h be a computable function such that and for all n. Let such that . Then there are at most many strings in and (we can assume that) each is of length . Also, , so . □
Suppose we are given A which is c.e. traceable. By the previous lemma this means that, for every function there is a computable function h such that and for all .
Recall that for any finite tree , we say is of level n if the domain of is all strings of length . In what follows we shall subdue mention of effective codings between strings and natural numbers and between finite sets of strings and natural numbers for the sake of readability. So now assume that A is c.e. traceable, and that T is perfect. In fact we may assume without loss of generality that we are given Ψ such that:
for any τ, the value is a finite tree of level n for some n and can be computed in many steps,
,
for any , extends as a function from strings to strings,
if is of level then there exists such that is of level .
So Ψ is just a functional via which A computes T and which behaves in a nice tidy fashion. First we define the function as follows; for every n, is the shortest initial segment of A, τ say, such that is of level . Since A is c.e. traceable we can then take computable h such that and for all . We can assume that if then τ is not enumerated into unless some initial segment of τ has already been enumerated into and unless is of level and this is not the case for any proper initial segment of τ.
Next we proceed to computably enumerate various values and and axioms for a Turing functional Φ such that is a 2-branching subtree of T and for every set C lying on we have . We construct just as an auxiliary function which is useful in defining the construction.
The basic idea is just this. Each value only has a small number of trees in it, while each of these trees has a large number of strings. This allows us to pick out strings in each tree which are chosen specifically for that tree, and which can then be mapped to the tree via Φ.
Initially all strings are available for use (which means that there isn’t any τ such that they have been put into yet). There can be only a single string enumerated into , τ say. We define to be the strings of level 0 and 2 in and we define to be the string, σ say, of level 0 in . We declare σ to be unavailable for use and enumerate the axiom . Whenever some τ is enumerated into for we shall already have enumerated a (unique and proper) initial segment of this string, say, into . For each leaf σ of there will be precisely successors in . Let and be the first two of these which are still available for use, enumerate these strings into and enumerate all leaves of which extend these two strings into before enumerating the axioms , . Declare and to be unavailable for use.
In order to see that the axioms enumerated for Φ are consistent observe that when we enumerate an axiom , σ is a leaf of . The consistency of the axioms enumerated for Φ then follows from the fact that it is easily seen by induction on the stage of the construction that if τ and are incompatible and we have defined values , then the leaves of these two sets of strings are pairwise incompatible. The fact that is 2-branching and that for every we have then follows immediately from the description of the construction. □
Any c.e. degree is c.e. traceable iff it is array recursive.
Suppose A is a c.e. set. If A is a.n.r. then its degree satisfies the cupping property, and so, by the previous lemmas A cannot be c.e. traceable. Now suppose that A is array recursive, and let dominate every A computable function. Since g can be computed from with use bounded by a computable function, we can take a computable function p and a computable function such that and for all n. Given an enumeration of A and let and let be the least s such that and below the use of this computation is actually an initial segment of A. Let be the set of values such that there exists and s is the first stage at which . There are less than such values and, since g dominates k, for all but finitely many n one of these values is . □
Now we just need to put these lemmas together. Suppose A is a c.e. set. If A is a.n.r. then its degree satisfies the cupping property and so does not have a strong minimal cover. If A is not a.n.r. then it is c.e. traceable, and so is a tree basis and so has a strong minimal cover. □
We shall see more about the a.n.r. degrees later.
The 1-generic degrees
There is little one can say in general about which is true for all which are low, or for all which are generalized low. The 1-generic degrees, however, are a nice subset of the degrees which are , for which is relatively rich in structure.
A set is 1-generic if for every c.e. set of strings W, either:
; or
.
A degree is 1-generic if it contains a 1-generic set.
If A is 1-generic then its degree is.
Consider . If A is 1-generic then either (i) or (ii) of Definition 10.1 holds. Using an oracle for we can successively test initial segments σ of A to see whether either of (i) or (ii) hold for that σ. When we find σ for which this is true, this tells us whether . Therefore . □
Every degreeis the jump of a 1-generic.
Given an oracle for we construct A which is 1-generic. Since all 1-generics are generalized low, in order to show that , it suffices to ensure that can compute B. This will follow since we code one more bit of B into A at each stage of the construction, and an oracle for will suffice to retrace the construction and so determine the coded bits of B. We construct A as the union of a sequence of strings .
Stage 0:
Define .
Stage:
We identify finite strings and natural numbers codes for them, so that is the sth c.e. set of strings. Using an oracle for determine whether there exists which extends some element of . If not then define . Otherwise let α be the first such, and define . □
Ifis 1-generic, then there exists an independent sequence of degrees below.
Let A be 1-generic, we show that the sequence is independent. For each i and each finite F such that consider the set:
Since A is 1-generic, either (i) or (ii) of Definition 10.1 holds. If (i) holds then . So suppose (ii) holds for σ. Let x be such that . If it was the case that then it would be the case that (i) holds for some extension of σ, so it must be the case that . □
Ifis 1-generic, thenis decidable.
Having done the ground work we are now ready to study the structural properties satisfied by the degrees in each of the various jump classes. We begin by considering simple properties and then work our way gradually to consider properties which are more complex. The following theorem means that the right choice of upper semi-lattice can often be used in order to show that a given structural property is not satisfied by all degrees which are low or by all degrees which are .
([19]).
Letbe a finite upper semi-lattice. Then there is a low degreesuch thatis isomorphic to, and there also exists a degree which isnon-low of this kind.
Minimal degrees and the jump classes
By Theorem 8.6 no PA degree is minimal. We saw earlier that there exist low PA degrees, and that the PA degrees are upward closed. It’s also true that every low degree is bounded by a degree in each jump class. This can be seen by relativizing Theorem 7.3, because it follows straight from the definition that (for ) any degree which is relative to a low degree is still , and that any degree which is relative to a low degree is still . Putting all these facts together, we see that every jump class has members which are not of minimal degree. The question which remains is, which jump classes do have members of minimal degree?
The proof follows the same structure that we discussed earlier in Section 9. First of all, one thinks about how one would prove that bounds a 1-generic, and then one thinks how to rephrase this proof so that it is the ability of to compute a sufficiently fast growing function f which allows the proof to go through.
In this case we define the function f as follows. Given , for each let be the least s such that there is a string in , putting if there exists no such s (again we identify finite strings and natural numbers codes for them, so that may be regarded as a set of finite strings). Let and, for all n, define .
Given A which is of degree, choose an increasing function which is not dominated by f. We define as follows.
Stage 0:
Define .
Stage:
For each such that there does not exist any initial segment of in , check to see whether there exists a proper extension of in .
If so (for some i): then let i be the least such. Let τ be the first extension of enumerated into . If then define , otherwise define .
If not: then define .
In order to see that the construction does what it is supposed to, consider any s such that . The key point is that . At stage there are two possibilities. The first possibility is that for each the following holds: there is already a string in which is an initial segment of , or else there are no strings in properly extending . In this case we define . The second possibility is that there is some least i for which this does not hold – so there is a first string enumerated into . Let . At stage we shall define . □
By Theorem 10.3 no 1-generic degree is minimal. By Theorem 11.1, it therefore follows that all minimal degrees are . The fact that there are minimal degrees which are low follows from the fact that any c.e. degree bounds a minimal degree. In order to prove this, however, requires being able to construct a minimal degree by full approximation, and this is a technique which we will not cover in this course. We restrict ourselves to showing that there are minimal degrees which are but not .
([38]).
There exists a minimal degree which isbut not.
Since we are not worried about whether or not the minimal degree we construct is below , we use a modification of the construction which builds minimal degrees using perfect trees. In order to ensure that A is not it suffices to satisfy the requirements:
:
.
Now we intersperse the action required to satisfy these requirements with the original construction, so we might act to satisfy these requirements at odd stages for example. Suppose that at some stage of the construction it is already decided that A will lie on the perfect tree T. In order to satisfy the requirement we consider the narrow subtree of T:
If T is a perfect tree, then the narrow subtree of T, say, is defined as follows. For σ of length n, , where is the sequence of n zeros.
The crucial point about the narrow subtree is that, for every there exists which is in T but not in – at any point in a finite extension argument it is still possible to leave and remain in T. Note that if T is computable then its narrow subtree is computable too. Given an index for we can effectively find i such that iff A does NOT lie on .
In order to satisfy , we just have to ask, does there exist such that ?
If not: then we satisfy the requirement simply by having A lie on . If we do this, then either or but .
If so: then let be such that . There exists which is in so now we just have to insist that A lies on the subtree of T above τ. Then but . □
The cupping property
All relations between the cupping property and the jump classes are fully understood. We have seen already that all a.n.r. degrees (and so all degrees which are ) satisfy the cupping property. We saw that all PA degrees satisfy the cupping property, that there are PA degrees which are low and PA degrees which are non-low (since the PA degrees are upward closed and a low degree is bounded by members of each and every jump class). So we know that there are low degrees and also non-low degrees which satisfy the cupping property. On the other hand there are also low degrees and non-low degrees which have a strong minimal cover, and no degree with a strong minimal cover satisfies the cupping property.
There are, however, many open questions concerning the cupping property which remain. We list a few here.
Does every degree either have a strong minimal cover or satisfy the cupping property?
Is every degree either a tree basis or else perfectly cone avoiding?
A positive answer to Question 12.2 would give a positive answer to Question 12.1 and would also give a positive solution to an old question of Yates which is one of the longstanding questions of degree theory: does every minimal degree have a strong minimal cover? This follows because:
Every perfect and non-computable tree computes one of its non-computable paths.
Theorem 12.1 suffices to show that no minimal degree is perfectly cone avoiding. In order to see this suppose that A is of minimal degree and computes the perfect tree T. Then A computes a non-computable path of T, and since A is of minimal degree this path must therefore be of the same degree as A. A positive solution to Question 12.2 would therefore mean that the degree of A must be a tree basis, and so have a strong minimal cover. A positive solution to Question 12.2 would also give a positive solution to the following question:
Are the degrees which satisfy the cupping property precisely those which are perfectly cone avoiding?
The join property
This is a property which is more interesting in this context, basically because it is not upward closed. First consider the degrees:
The proof follows the format for proofs that we described in Section 9. So we look at how the proof works for , and then consider how to modify this proof. In Section 6 we gave a proof that satisfies the join property. The reader is invited to verify for themselves that the proof given there is easily modified to show that for all non-zero there exists which 1-generic with . In the present proof we shall also build a joining partner which is 1-generic.
So we suppose we are given D of degree which is not , and A which is of non-zero degree strictly below that of D. We want to construct such that . As before, we define
If let . Once again, we can assume that A is not computably enumerable. First of all, we have to define the appropriate fast growing function.
Given any and any , let be defined in the following way. First, let n be the least such that:
If define . If then let be the first string enumerated into with .
So basically tells us how the join construction (modified to build a 1-generic joining partner) would proceed at some stage if σ was the initial segment we have already constructed, if we were looking to satisfy the eth genericity requirement at this stage, but providing we only search for s many steps in order to try to ascertain the correct way of extending σ. Let be the least s such that either extends a string in , or there doesn’t exist any string in extending . Then, roughly speaking, tells us the least s such that is the “correct” extension.
Given any we define a set as follows:
Stage 0:
Define .
Stage:
Define .
So is the set that the join construction will build, if we use f in order to bound how many steps we search for at each stage in order to try to determine the correct way to extend.
Now for any t the set is finite (since once you search for “enough” steps at a certain stage you will never subsequently change your mind about how to extend at this stage), so let be an increasing function computable in such that, for all t and all , is greater than . Then is a function which bounds how long we have to search at stage s of the join construction in order to proceed correctly if we wish to satisfy the th genericity requirement, no matter how we have proceeded at previous stages, i.e. even if we did not search for long enough to proceed “correctly” at previous stages. One last little detail we have to be concerned with, is that when we choose a function not dominated by , we cannot be sure for which arguments t we will have that – we want to be sure that for each e this happens for some t with . Let h be a computable and increasing function such that, for all t and all , there exists with and . Define for all t. Since D is not , we may let be an increasing function computable in D which is not dominated by and then define .
That D is computable in follows using precisely the same argument as we used when proving that satisfies the join property. It remains to show that B is 1-generic. In order to see this, let be such that . Then there exists such that and . We have that , so that as required. □
Theorem 10.4 then suffices to show that there are low degrees and also non-low degrees which satisfy the join property, as well as degrees of these kinds which do not.
The situation becomes more interesting, however, when we consider the upward closure – for which degrees is it the case that all degrees above satisfy the join property? In looking to answer this question, it becomes natural to consider upward closed classes of degrees which we are used to working with. Do all PA degrees satisfy the join property? Do all a.n.r. degrees satisfy the join property? Another natural question is as to whether satisfaction of the cupping property is equivalent to all degrees above satisfying join. We can answer all of these questions with the following result:
All low fixed point free degrees fail to satisfy the join property.
The techniques used to prove this theorem are a combination of Kučera’s fixed point free permitting below [18] and the techniques developed independently by Cooper [3], and also Slaman and Steel [43] in order to show that there exist c.e. degrees which do not satisfy the join property (when considered as elements of the degrees). The proof of the latter result we shall sketch later in this section. We shall not cover the fixed point free permitting technique in this course, an account is given in Nies’ book [30].
Above each low degree, there is a low degree which doesn’t satisfy join.
Each low degree is bounded by a degree which is low and fixed-point-free. To see this, apply the low basis theorem relative to a low degree , in order to deduce that there is a degree which is PA relative to and low over . The degree is then PA by Theorem 8.5, and is also low, since any degree which is low over a low degree is still low. □
The following corollary concerns Martin-Löf randomness, which we don’t define here. For an introduction to the study of algorithmic randomness (and, in particular, Martin-Löf randomness), we refer the reader to [30] and [5].
There are PA/a.n.r./Martin-Löf random degrees which don’t satisfy join.
All PA degrees and all Martin-Löf random degrees are fixed-point-free, and it follows from the low basis theorem that there exist PA degrees which are low and also Martin-Löf random degrees which are low. For the a.n.r. degrees, the corollary follows from Corollary 13.1 and the fact that the a.n.r. degrees are upward closed. □
Satisfaction of the cupping property is not equivalent to all degrees above satisfying join.
By Theorem 8.6 any PA degree properly bounds another PA degree. The result then follows from Corollary 13.2 and the fact that all PA degrees satisfy the cupping property. □
Above every low c.e. degree, there is a low c.e. degree which doesn’t satisfy join.
This leaves open various questions. Working below first of all, we have already managed to separate the degrees from the low degrees, and it seems natural to ask if this can be extended to give a definition of :
In , are the degrees precisely those for which it is not the case that all degrees above satisfy join?
It remains open, in fact, whether can be given an extremely simple definition using the join property, although one would expect the following question to be answered in the negative:
Can be defined as the least degree such that all degrees above satisfy join?
There is an interesting observation to be had here. Let us suppose for a moment that Question 13.2 receives a negative response, and that, in fact, any degree which bounds a high degree satisfies join. This moves us towards a definition of in another direction. Immediately from this we get a formula sufficient to distinguish from all degrees comparable with it, because then all degrees above satisfy the following formula, while no degree strictly below does so:
where satisfies mincup if for all there exists a minimal degree with , and where means join above , i.e. satisfies if, for all with there exists with and . Let us see first why degrees above satisfy the formula above. All such degrees satisfy mincup – this follows from the fact that computes a perfect tree of sets of minimal degree. If bounds a minimal degree then, since all minimal degrees are , bounds a degree which is high relative to and so satisfies according to our hypothesis (given relativization).
Now suppose that . Then may not satisfy mincup, but if it does then let be (such a degree will exist by Theorem 7.4), and let be a minimal degree such that . Then , so , so that is actually low over . By Corollary 13.1, above every low degree there exists a low degree which doesn’t satisfy join. This proof relativizes, meaning that we may choose which doesn’t satisfy .
One may reasonably ask how useful this observation actually is, given that we are supposing something that may well not be true – it could well be the case that there are degrees which bound a high degree and which do not satisfy the join property. The point here, though, is that we don’t have to consider just the join property. Any property which suffices to separate high and low cones will suffice:
Can we find a natural order theoretic property P, which suffices to separate the high and low cones, in the sense that above any low degree there is a degree which does not satisfy P, while any degree which bounds a high degree satisfies P?
If does there necessarily exist and a minimal degree such that is low over ?
These two questions are interesting because positive answers to both would give a natural definition of the jump (assuming necessary relativizations hold). This follows because then would be the least degree such that:
where denotes P above , in just the same way that we let denote join above previously.
We finish this section by considering the methods needed to prove Theorem 13.2. We shall not actually prove this theorem, but will prove instead the theorem mentioned previously due to Slaman and Steel, and independently due to Cooper, that there exist non-zero c.e. degrees such that no degree joins up to . This proof illustrates the basic framework which has to be expanded in order to prove Theorem 13.2. We construct c.e. sets B and C such that the following requirements are satisfied:
:
If is infinite then .
:
If ( say) is total and then ;
where is an effective listing of all pairs of Turing functionals, and each is a functional that we build during the course of the construction. B will have infinite complement by construction. The reader is invited to verify for themselves that satisfaction of these requirements suffices to prove the theorem. In what follows we will often abuse notation by writing in order to denote , even though this may actually be a partial function.
We shall have one strategy for each requirement, and the requirements and their corresponding strategies are prioritized . At each stage s of the construction we perform another step of the instructions for each of the first s strategies in turn. The construction will have finite injury. More precisely, what this means here, is that each strategy will be initialized a finite number of times by higher priority strategies. When a strategy is initialized, this means that it then begins again as if it had never been run before, and in particular that we discard any axioms for Turing functionals that it has previously enumerated. It is only the requirements which enumerate axioms for Turing functionals, and each enumerates axioms for a functional that is specific to the strategy, so if the strategy is only initialized finitely many times then the finitely many discarded axioms for that functional are not problematic.
Since the strategies are very simple and the interactions between them are not complicated, it is probably easiest just to describe the strategies directly and then verify that they work.
In what follows we adopt the convention that when discussing any point in the construction, we may write B, C etc. in order to denote their present values. At any point during the construction we let denote the finite string (which we can assume to be binary).
Thestrategy. The basic idea behind this strategy is extremely simple – at each stage at which it is run the strategy considers the least n such that and it looks to define this value. There are a few small considerations that have to be made, however.
Whenever we enumerate an axiom defining a value , we wish to ensure that it is already the case for all .
When we enumerate such an axiom, we wish to ensure that δ and the present value B already map via to an initial segment of C which is longer than n. The motivation for this is in order to co-ordinate with the strategies.
We also have to make sure that the axioms enumerated are consistent. We do not wish to enumerate an axiom , for example, when there is already some for which we have enumerated the axiom . The precise instructions are therefore as below.
At any point in the construction the length of agreement for is the greatest m such that . At each stage at which it is run the strategy considers the least n such that and if n is less than the length of agreement then it proceeds as follows. Let β and δ be, respectively, the initial segments of B and used in the computation . If there exists a shortest with such that for all and for which it is consistent with all axioms previously enumerated to enumerate the axiom , then enumerate this axiom.
If is total and then it is not hard to see that these instructions ensure that is total. In order to ensure that we just have to make sure that:
when , does not extend any string δ for which we enumerate an axiom .
Thestrategy. When this strategy enumerates some n into B it must be able to ensure for each of higher priority, that if is total and , then condition is not violated, i.e. cannot extend any string δ for which we have enumerated an axiom . In order to achieve this the strategy uses a standard agitator technique, which works as follows. It will not enumerate n into B, unless there exists for some and there exists m such that, for all δ and for which we have enumerated an axiom , it is the case . We call m the agitator for this strategy. Then, upon enumerating n into B, the strategy enumerates m into C and looks to preserve β as an initial segment of B. It attempts to achieve this latter task simply by initializing all lower priority strategies – these strategies will only be allowed to enumerate numbers into B or C which are greater than the last stage at which they were initialized. So long as β is preserved as an initial segment of B, then for each and each δ for which we have enumerated the axiom , it cannot be the case that is total, and because , but . Any higher priority strategy may subsequently enumerate a number into B which is less than , but then this strategy will similarly ensure that no problematic δ can be an initial segment of if it is to be the case that is total and (and if ), since it will also enumerate some into C and preserve a (shorter) initial segment of B. The instructions for the strategy are as follows.
The instructions for. When the strategy is first run (subsequent to any initialization) it chooses a large agitator m and then a large marker. At every subsequent stage s at which it has not yet been declared satisfied it performs the following steps:
Check to see whether there exist any for which the strategy has not previously seen convergence (this will initially be all ) and for which . If so then initialize all lower priority strategies, redefine n to be large, declare that the strategy has seen convergence for each for which , and perform no further action at this stage. If not then proceed to (2).
If there exists such that and , then enumerate into B, enumerate m into C, declare the strategy to be satisfied and initialize all lower priority strategies.
The verification. It is clear that each strategy is initialized a finite number of times, and since each marker for a strategy is only redefined a finite number of times it follows that each requirement is satisfied. That the complement of B is infinite follows since markers are chosen to be large. In order to show that the requirement is satisfied, let be such that the strategy is never initialized after stage . It suffices to show that if is total and the length of agreement is unbounded, then is not compatible with any δ for which we enumerate an axiom subsequent to stage , of the form for some n which is enumerated into B. This suffices, because then the instructions for clearly ensure that is total.
So suppose that n is enumerated into B by a strategy for at a stage and that, prior to this enumeration, we have enumerated an axiom . Let be the least such that enumerates a number into B at a stage , and such that is not initialized at any stage in the interval (so that ). Then has already seen convergence for i when the axiom is enumerated, since its agitator m is less than or equal to that of . Let β and be, respectively, the initial segments of B and used in the computation when saw convergence for i. Since initialized all lower priority strategies when it saw convergence for i, , and β is an initial segment of the final value B – in order to see this note that cannot change below any given length unless B or C change below the relevant use and that once lower priority strategies are initialized, they will subsequently choose markers and agitators larger than all previously observed uses. It follows that if the length of agreement is unbounded then δ cannot be an initial segment of , because and enumerates m into C.
Degrees which bound minimal degrees
Cooper showed that every high degree bounds a minimal, and this was extended by Jockusch who showed that all degrees bound minimal degrees.
Every generalized high degree bounds a minimal degree.
The proof is a modification of the proof that there exists a minimal degree below , which makes use of the recursion theorem.
(The recursion theorem).
If f is computable then there exists i such that.
The main use we make of the recursion theorem is that it allows us to perform the following trick. If we define a construction which takes any index i, and produces a computable function (or a c.e. set ) then, in fact, for the right choice of i, we shall have that (). So long as we don’t make any assumptions about i in advance – so long as we don’t assume while defining for example, that is total – we may assume given an index for the partial computable function or the c.e. set that we are constructing in advance.
Posner’s trick. There is another trick which we can make use of when defining minimal degree constructions, which is due to Posner, and which means that generally speaking we do not need to explicitly work in order to satisfy non-computability requirements. Suppose that we construct a set B so that for every i, B either lies on a -splitting tree, or else lies on a -nonsplitting tree. Now suppose that B is computable and consider which is defined as follows; if , otherwise. Since it is not possible for B to lie on a -nonsplitting tree, it must lie on a -splitting tree, which gives a contradiction.
Now suppose that A is . We are going to construct a set , so by the recursion theorem (which relativizes) we may assume given d such that . Now since A is , it can approximate . This means we can assume given a function f such that, for all i, j, if there exists a -splitting above every initial segment of B amongst the strings in , and is equal to 0 otherwise.
Now recall the construction of a set B of minimal degree below . At each stage we are given which is the initial segment of B constructed so far, together with a nested sequence of trees . Since we have an oracle for we can ask whether or not there exists at least one more pair of strings extending in each of these trees. For the least for which this is not the case (if there exists such) we change our mind about how should be defined – we define to be some subtree of .
Now that we don’t have an oracle for we cannot tell for sure whether or not there exist any strings in each of these trees extending . What we can do, however, is to keep searching for such strings until the function f gives us new evidence that there doesn’t exist any such pair. For a given tree, this may cause us to stop searching too early sometimes, but once all trees of higher priority settle down and then the corresponding approximation given by f settles down also, we will not stop searching too early while searching for splittings in this tree anymore. Thus, it will easily follow by induction that the approximation to each tree settles and is defined correctly. The precise construction is as follows.
Stage 0:
Define and define to be the identity function .
Stage:
We are given and a nested sequence of trees:
together with an index for each which specifies the range of as a c.e. set of strings. First of all we have to check that there isn’t new evidence that we stopped searching too early for one of the trees at a previous stage. We shall define precisely what it means for some to require attention below, but basically this will just mean that there is now evidence that we stopped searching too early for splittings in the corresponding tree at some earlier stage, because a splitting has now been found. If there is some least which requires attention, then proceed as follows:
Define to be the -splitting subtree of above .
Define for all .
Make undefined for all .
Declare that j has received attention.
Define .
If no required attention then for each such that is not defined simply to be the subtree of the previous tree in the sequence above a certain string, search until either:
Case 1:
a pair of strings is found in extending , or else;
Case 2:
we find such that .
If there exists a least j such that case 2 applies then define to be the subtree of above . Define for all and make undefined for all . Define to be a proper extension of in . We say that j requires attention at any stage if for all with , j has not received attention at any of these stages , and there exists a splitting with both strings extending which is found within steps of some fixed effective search procedure.
Otherwise define for all , define to be a proper extension of in , and define to be the -splitting subtree of above .
The reader is invited to verify the construction. Note that Posner’s trick can be used in order to help verify that the set constructed is of minimal degree. □
The fact that this result is sharp in terms of the jump hierarchy follows from the following result of Lerman’s.
There exists adegree which doesn’t bound any minimal degrees.
The joins of minimal degrees
Which degrees are the join of two minimal degrees? The strongest possible result in terms of the jump hierarchy is the following, which settles a conjecture of Posner’s from the 70s.
Every generalized high degree is the join of two minimal degrees.
In order to demonstrate the basic idea behind the proof, we give here a proof of the weaker result, due to Posner, that all degrees above are the join of two minimal degrees.
In this context it is useful to think of trees as sets of strings rather than functions from strings to strings. It is also useful to restrict our attention to trees of a very particular kind. So, for the duration of this proof, we say that T is a c.e. Ψ-splitting tree if every pair of incompatible strings in T are Ψ-splitting and T has a computable enumeration such that:
Conv A:
and each is finite and consists only of strings extending leaves of .
Conv B:
If any string in T has successors in T, then it has precisely three. Three strings of this kind, all of which are successors to the same string, will be called a splitting triple.
Corresponding to each Ψ-splitting tree that we consider, we shall assume that there is some fixed computable enumeration satisfying Conv A and Conv B. If T is any tree which is computably enumerated according to Conv A, and if , then by the c.e. Ψ-splitting subtree of T above σ, we just mean any (canonically chosen) c.e. Ψ-splitting tree which has σ as the unique string of level 0 and which is maximal, in the sense that if and there exist three extensions of τ in T every pair of which are a Ψ-splitting, then τ has successors in . We assume that any string is enumerated into this tree at a stage , where is the stage at which τ is enumerated into T.
We shall use a notion of thin subtrees, which works very much like in the proof of Theorem 11.2. If T is a c.e. Ψ-splitting tree, then the thin subtree of T above is the smallest satisfying:
;
if and is of even level in , then its leftmost successor in T (if there exists such) is in ;
if and is of odd level in , then every successor of in T is in .
We assume to be given the computable enumeration in which each string in is enumerated into this tree at the same stage it is enumerated into T.
Recall that, for any two finite binary strings τ and , if there exists some least n such that , then we say that τ is to the left of (and that is to the right of τ) if . If T is tree and has three successors in T, then we shall refer to these three successors as the leftmost, the second and the rightmost successor respectively when ordered from leftmost to rightmost. We write λ to denote the string of length 0. By a 3-fold Ψ-splitting, we mean three strings, every pair of which are Ψ-splitting. From this point on, for the duration of this proof, by a splitting tree we shall mean a tree which is a c.e. Ψ-splitting tree for some Ψ, and by a splitting we shall actually mean a 3-fold splitting – but no confusion will result from these abuses of terminology. We assume the full binary tree to be given the enumeration in which all strings of length s are enumerated at stage s.
The basic idea
Suppose we are given C of degree above , and consider running Sacks’ oracle construction of a set A of minimal degree below , as described in the proof of Theorem 5.3, but using an oracle for C and using splitting trees of the modified form just described in which each string in the tree has three successors if any, rather than just two. At each stage we are given a sequence of trees and a finite binary string α which is the initial segment of A that we have constructed so far. We find the greatest such that there exists a splitting triple in above α, and then redefine α to be the leftmost string in this splitting triple, before defining the sequence of trees to be considered at the next stage of the construction.
Of course, we did not have to redefine α to be the leftmost string in the splitting. We could consider trying to code C into A at stage by redefining α to be the second string if and the rightmost string otherwise. A constructed in this way would fail to compute C because it is unable to retrace the construction to see how the sequence of trees is defined at each stage. We shall show how to define two sets A and B in this way, however, so that is able to compute the sequence of trees defined at each stage of the construction, and thereby compute C.
The basic idea is very simple. We shall construct a sequence of trees such that A is a path through when j is even, and B is a path through when j is odd. For each j we shall also consider a tree which will be a thin subtree of . Suppose for a moment that j is even – the following discussion will also hold for odd j, but with B in place of A. Initially we try to construct A lying on . , then, is constructed as a splitting subtree of . When we find at some stage that we must redefine , however, we code this fact by forcing A to “step off” (i.e. we decide that A should be a path through which is not a path through ). If this happens at stage s and has already been able to compute the set of trees that we are working with at stage s, then it will be able to see that A has stepped off , and so will be able to discern how we redefined the trees at this stage of the construction.
Along these lines, the following terminology will be useful. Suppose that τ is a string of even level in . Then we call the splitting triple in whose strings are successors of τ (should such a triple exist), a coding opportunity. The second and rightmost strings of the coding opportunity are referred to as the coding strings. We shall define and at each stage s, and ultimately we define and . At every stage of the construction we shall find a coding opportunity in some and define either or (depending on whether j is even or odd) to be one of the strings in this coding opportunity. Note that the set of coding opportunities in depends also on , which may be redefined at stages of the construction when is not.
So we start with the following sort of procedure in mind. At the beginning of stage we are given , , and . Initially we define and . These values α and β may be redefined a finite number of times during stage , to be extensions of their previous values. At the end of the stage we will define and . At stage we perform a finite iteration which moves down through the sequence of trees, starting with and continuing until we find some with a coding opportunity that can be used at this stage. Suppose for now that i is even.
We ask, does there exist a splitting triple above α in ? If so, there are now two subcases. If this splitting triple is not a coding opportunity in , then we redefine α to be the leftmost string in the triple and go back to asking whether there exists a splitting triple in above α. Otherwise, redefine α to be the second string in the coding opportunity if and the rightmost string otherwise, before redefining , , and terminating stage of the construction. The use of this coding opportunity codes the fact that we did not have to redefine any of at this stage.
If not, then let be the least which is even and such that there doesn’t exist a splitting triple above α in . We now try to code the fact that must be redefined. In order to do so, we begin the iteration again but with and β in place of and α (and with “odd” in place of “even”).
Further considerations
When retraces the construction at stage , having already computed the set of trees that we are working with at this stage together with and which are the initial segments of A and B which have been decided by the end of stage s, it will continue to enumerate the trees until it sees either A or B step off one of the . We must ensure, however, that the first coding opportunity which appears in this way, with either A or B extending one of its coding strings as appropriate, is actually the coding opportunity that is used at stage and not one that is used at some subsequent stage. If we proceed simply as described in Section 15.1.1 it remains possible that at stage we use a coding opportunity in , which is enumerated into this tree at stage t (say), and that at the next stage we use a coding opportunity in which is enumerated into this tree at a stage . In this case will retrace the construction incorrectly. For this reason we define a value at each stage s, which is the stage at which the coding opportunity we use at stage s is enumerated into the respective tree. At stage we are restricted to using coding opportunities which are enumerated into the relevant tree at a stage . The following terminology is useful in this context. If T is a tree with a given computable enumeration, then for any , is the stage at which τ is enumerated into T. We also use the variable ρ to range over the set of splitting triples, and let be the stage at which ρ is enumerated into T.
Perhaps some words of caution are useful here. In the proofs of some previous theorems in this course and in the proof that follows, we often use computer science type conventions of choosing variables, and then allowing these variables to be redefined multiple times without any corresponding indication in the notation. The motivation here is that, in doing so, the argument should become much easier to follow – the alternative, indexing variables in terms of the stages and ultimately the sub-stages of the construction, would result in heavy notation. The danger is that ambiguity might result from referring to variables that take multiple values at various stages of the construction. During the construction there will be no ambiguity, because when we refer to the value of any given variable, we simply mean the value as defined at that point in the construction. During the verification, ambiguity will not result so long as we are very clear about exactly which point of the construction (and not just the stage, but which point of the stage) is being referred to.
It is also worth pointing out that the stages of the construction and the stages in the enumeration of the trees that are considered at any point of the construction, are treated entirely separately. Thus, at stage 5 we might enumerate until we see that, at stage 117 in the enumeration of this tree, a splitting triple ρ appears which we can use as a coding opportunity. If we use this coding opportunity at stage 5, then , and, at the end of this stage, if we remark that , then the value being referred to here is the value at the end of stage 5.
There is another (fairly trivial) way in which our construction will deviate from the Sacks construction. In that construction, when we find at stage that j is the least such that there do not exist any proper extensions of in , we then redefine this tree to be the subtree of above (i.e. the set of all strings in which extend ). The redefined tree , however, does not subsequently play any vital role in the construction. If was defined to be a -splitting tree at the end of stage s, then at stage we could alternatively just redefine to be the -splitting subtree of above . It will be technically much more convenient to follow this approach here, and so we shall do so (although now that we are constructing two sets and since we are using thin subtrees, will be defined to be a splitting subtree of rather than ).
Before describing the construction precisely, let us describe in outline how will be able to retrace it. So suppose that has already been able to decide , , and the sequence of trees which are defined at the end of stage s, together with each for . In order to compute these values for stage , will then enumerate these trees until it sees an initial segment of A which is compatible with a coding string in some such that j is even, or an initial segment of B which is compatible with a coding string in some such that j is odd (and then it will consider the first such coding string which appears). Suppose for now, that the first such coding string τ is a coding string in , and that j is even. Then is that coding string, and we define the construction so as to ensure that is the longest initial segment of B which is enumerated into at a stage .
The construction
We proceed in stages as follows.
Stage 0:
It is convenient to assume that is the identity functional . Define and to be the -splitting subtree of the full binary tree above λ, and define and to be the thin subtree of above λ. Define and .
Stage:
Let i be the greatest such that is defined. We run a finite iteration which will terminate at the first step at which we find an appropriate opportunity to code . At step n in this iteration we define a value such that and each . Initially we have and and we may redefine these values to be extensions of their previous values at various stages in the iteration.
Step 0:
Define , and .
Step:
We ask, does there exist a splitting triple in , above α if is even and above β if is odd? If not, then let j be the least , which is even if is even and odd if is odd, such that there does not exist such a splitting triple in (the way in which we define and means that ). Put and perform step .
Otherwise, consider the first such splitting triple ρ enumerated into . Now there are two cases to consider.
Case (a):
ρ is not a coding opportunity or else , where if is odd and otherwise. Then redefine α to be the leftmost string in the splitting triple if is even, and redefine β to be the leftmost string in the splitting triple if is odd. Put and perform step .
Case (b):
otherwise. Define . First we code .
If is even then define to be the second string in the splitting triple if and the rightmost string otherwise. In this case, define to be the longest of all those leftmost extensions of β in which are enumerated into this tree at a stage . If is odd then define to be the second string in the splitting triple if and the rightmost string otherwise. In this case, define to be the longest of all those leftmost extensions of α in which are enumerated into this tree at a stage .
Next we must redefine the trees. Let .
If , with i defined as at the beginning of stage , then suppose that is presently defined to be a -splitting tree. Define to be the -splitting subtree of above if i is even, and define to be the -splitting subtree of above if i is odd.
If then suppose that was defined to be a -splitting tree at the end of stage s. Redefine to be the -splitting subtree of , above if j is even or above if j is odd.
Redefine to be the thin subtree of , above if j is odd or above if j is even. Define to be the thin subtree of , above if j is even or above if j is odd. Make and undefined for all .
Terminate the iteration and stage of the construction.
It is not difficult to show that and are total and are of minimal degree. Now suppose that the oracle has already been able to compute , , and the sequence of trees which are defined at the end of stage s, together with each for . In order to conclude that can compute these values for stage , it suffices to show that the coding opportunity we use at this stage is the first enumerated into any such that either A extends one of the coding strings and j is even or B extends one of the coding strings and j is odd. In order to see this, suppose that the iteration terminates at step at stage and let , as defined at that stage. We consider each of the trees such that .
First consider . Suppose that k is even, a similar argument will apply when k is odd. Let m be the greatest such that , and let as defined at the beginning of step (so that σ is a string in ). If is even then our action at step determines that there is no splitting triple in above σ. So suppose otherwise. Then by induction on the steps after m, at the beginning of step , for all strings extending σ, α is either an initial segment of τ or lies to the left of τ. If j is even, then at step we define to be incompatible with any coding strings in . If j is odd, then at step we define to lie to the left of any coding strings in above σ which are enumerated into this tree at a stage .
Next consider . If there does not exist any subsequent stage at which we elect to use a coding opportunity in some for then A lies on if k is even and B lies on if k is odd. So suppose otherwise and consider the first such stage . If then the coding opportunity ρ in which we use at stage , has . If then precisely the argument we used above for the case , suffices to show that A does not extend any coding strings in which are enumerated into this tree at a stage if k is even, and B does not extend any coding strings in which are enumerated into this tree at a stage if k is odd. Since , the claim follows. □
Posner originally asked whether could be defined as the least degree such that all degrees above are the join of two minimal degrees. This was settled negatively by Shore, but the following question remains open:
Is minimal amongst the degrees such that all degrees above are the join of two minimal degrees?
The minimal cupping property
We gave the definition earlier:
A degree satisfies the minimal cupping property (mincup) if for all there exists a minimal degree with .
This result is clearly sharp in terms of the jump hierarchy – again this follows from Lerman’s result [20] that there exist degrees which don’t bound minimal degrees.
In, a c.e. degree is high iff it satisfies mincup.
If true this would give us a nice characterization of the high c.e. degrees (and a natural definition of the high c.e. degrees in terms of a definition for the c.e. degrees in ). Unfortunately it certainly can’t be extended to give us a natural definition of the high degrees:
Note that this theorem holds globally. In order to give this result, the approach taken is to establish the existence of a perfect tree which is of low degree, and such that every path through the tree is of minimal degree.
The first remaining questions here, also concern the global structure.
Do all degrees satisfy mincup?
The meet and complementation properties
We next consider the meet and complementation properties. The meet property was defined previously.
A degree satisfies the complementation property if, for all non-zero , there exists such that and .
First of all, let us establish the uninteresting cases – initial segment results can be used in order to show that all possibilities can be realized for the low and for the non-low degrees. On the positive side, Posner [33] showed that satisfies the complementation property using a non-uniform proof. This non-uniformity was subsequently shown not to be necessary by Slaman and Steel [43]. The following is the strongest result known:
All generalized high degrees satisfy the complementation property.
The proof given for this stronger result is once again non-uniform, and it remains open as to whether the complement here can be constructed uniformly. Recently, James Riley has shown that this result fails for the degrees:
Can be defined as the least degree such that all degrees above satisfy complementation?
As with Question 13.2, the expectation is presumably that this question will eventually be answered in the negative, but that the counter example may be difficult to construct.
The capping property
In this section, we briefly consider a property about which little is known:
A degree satisfies the capping property if, for all there exists non-zero such that .
It follows from Theorem 16.2, that there exists a low degree such that all degrees above satisfy the capping property. This suffices to show that there exist members of each jump class which satisfy the capping property. It also follows from Theorem 16.1 that, in , all high degrees satisfy the capping property. Nothing else substantial is known at this point.
Do all degrees satisfy the capping property?
The minimal complementation property
In this final section, we consider the most complex property so far:
A degree satisfies the minimal complementation property if, for all non-zero , there exists a minimal degree such that .
There exists a minimal degree belowwhich complements all (non-zero, incomplete) c.e. degrees.
While it is immediately clear that no degree can complement all non-zero and incomplete degrees, one might hope that some version of this theorem might hold for the degrees in general – there might be two degrees such that each non-zero, incomplete degree is complemented by at least one of them, for example. In fact, however, this fails very strongly:
S.B.Cooper, The strong anticupping property for recursively enumerable degrees, Journal of Symbolic Logic54 (1989), 527–539. doi:10.2307/2274867.
4.
R.Downey, N.Greenberg, A.E.M.Lewis and A.Montalbán, Extensions of embeddings below computably enumerable degrees, Transactions of the American Mathematical Society365 (2013), 2977–3018. doi:10.1090/S0002-9947-2012-05660-1.
5.
R.Downey and D.Hirschfeldt, Algorithmic Randomness and Complexity, Springer-Verlag, 2010.
6.
R.Downey, C.G.Jockusch and M.Stob, Array nonrecursive degrees and genericity, in: Computability, Enumerability, Unsolvability: Directions in Recursion Theory, S.B.Cooper, T.A.Slaman and S.S.Wainer, eds, London Mathematical Society Lecture Note Series, Vol. 224, Cambridge University Press, 1996, pp. 93–104.
7.
B.Durrant, A.Lewis-Pye, S.Ng and R.Riley, C.e. degrees and the meet property, Proceedings of the American Mathematical Society144 (2016), 1735–1744. doi:10.1090/proc/12808.
8.
P.Ellison and A.E.M.Lewis, Joining up to the generalized high degrees, Proceeding of the American Mathematical Society138 (2010), 2949–2960. doi:10.1090/S0002-9939-10-10299-8.
9.
P.Ellison and A.E.M.Lewis, The minimal cupping property, To appear.
10.
N.Greenberg, A.Montalbán and R.A.Shore, Generalized high degrees have the complementation property, Journal of Symbolic Logic69 (2004), 1200–1220. doi:10.2178/jsl/1102022219.
11.
S.Ishmukhametov, Weak recursive degrees and a problem of Spector, in: Recursion Theory and Complexity: Proceedings of the International Workshop on Recursion Theory and Complexity Theory (WORCT’97), Kazan State University, Kazan, July 14–19, 1997, M.M.Arslanov and S.Lempp, eds, de Gruyter Series in Logic and Its Applications, Vol. 2, Walter de Gruyter, 1999, pp. 81–89.
12.
C.G.Jockusch, Simple proofs of some theorems on high degrees of unsolvability, Canadian Journal of Mathematics29 (1977), 1072–1080. doi:10.4153/CJM-1977-105-5.
13.
C.G.Jockusch and R.Shore, Pseudo jump operators I: The R.E. case, Transactions of the American Mathematical Society275 (1983), 599–609.
14.
C.G.Joskusch and D.B.Posner, Double jumps of minimal degrees, Journal of Symbolic Logic43 (1978), 715–724. doi:10.2307/2273510.
15.
C.G.Jockusch and R.Soare, classes and degrees of theories, Transactions of the American Mathematical Society173 (1972), 33–56.
16.
S.C.Kleene and E.L.Post, The upper semi-lattice of degrees of recursive unsolvability, Annals of Mathematics59 (1954), 379–407. doi:10.2307/1969708.
17.
A.Kučera, Measure, classes and complete extensions of PA, in: Recursion Theory Week (Oberwolfach, 1984), Lecture Notes in Mathematics, Vol. 1141, Springer-Verlag, 1985, pp. 245–259. doi:10.1007/BFb0076224.
18.
A.Kučera, An alternative priority-free solution to Post’s problem, in: Mathematical Foundations of Computer Science: Proceedings of the 12th Symposium, Bratislava, Czechoslovakia, August 25–29, 1986, J.Gruska, B.Rovan and J.Wiedermann, eds, Lecture Notes in Computer Science, Vol. 233, Springer-Verlag, pp. 493–500. doi:10.1007/BFb0016275.
19.
M.Lerman, Degrees of Unsolvability, Springer-Verlag, Berlin, 1983.
20.
M.Lerman, Degrees which do not bound minimal degrees, Annals of Pure and Applied Logic30 (1986), 249–276. doi:10.1016/0168-0072(86)90022-9.
21.
A.E.M.Lewis, classes, strong minimal covers and hyperimmune-free degrees, Bulletin of the London Mathematical Society39 (2007), 892–910. doi:10.1112/blms/bdm083.
22.
A.E.M.Lewis, Strong minimal covers and a question of Yates: The story so far, in: Logic Colloquium 2006, Cambridge University Press, 2006, pp. 213–228. doi:10.1017/CBO9780511605321.011.
23.
A.E.M.Lewis, On a question of Slaman and Groszek, Proceedings of the American Mathematical Society136 (2008), 3663–3668. doi:10.1090/S0002-9939-08-09345-3.
24.
A.E.M.Lewis, A note on the join property, Proceedings of the American Mathematical Society140 (2012), 707–714. doi:10.1090/S0002-9939-2011-10908-0.
25.
A.E.M.Lewis, Minimal complements for degrees below 0′, Journal of Symbolic Logic69(4) (2004), 937–966. doi:10.2178/jsl/1102022208.
A.E.M.Lewis, A single minimal complement for the c.e. degrees, Transactions of the American Mathematical Society359 (2007), 5817–5865. doi:10.1090/S0002-9947-07-04331-0.
D.Martin, Classes of recursively enumerable sets and degrees of unsolvability, Zeit. Math. Log. Grund. Math.12 (1966), 295–310. doi:10.1002/malq.19660120125.
30.
A.Nies, Computability and Randomness, Oxford University Press, 2009.
31.
A.Nies, Coding methods in computability theory and complexity theory, Habilitation thesis, Universität Heidelberg, 1998.
32.
A.Nies, R.A.Shore and T.A.Slaman, Interpretability and definability in the recursively enumerable degrees, Proceedings of the London Mathematical Society (3)77(2) (1998), 241–291. doi:10.1112/S002461159800046X.
33.
D.Posner, The uppersemilattice of degrees is complemented, Journal of Symbolic Logic46 (1981), 705–713. doi:10.2307/2273220.
34.
D.Posner and R.Robinson, Degrees joining to , Journal of Symbolic Logic46 (1981), 714–722. doi:10.2307/2273221.
35.
J.Riley, Structural properties of the local Turing degrees, PhD thesis, University of Leeds, 2016.
36.
G.Sacks, A minimal degree less than , Bulletin of the American Mathematical Society67 (1961), 416–419. doi:10.1090/S0002-9904-1961-10652-6.
37.
G.Sacks, Recursive enumerability and the jump operator, Transactions of the American Mathematical Society108 (1963), 223–239. doi:10.1090/S0002-9947-1963-0155747-3.
38.
L.Sasso, A minimal degree not realizing least possible jump, Journal of Symbolic Logic39 (1974), 571–574. doi:10.2307/2272899.
39.
D.Scott, Algebras of sets binumerable in complete extensions of arithmetic, in: Recursive Functions Theory, Proceedings of Symposia in Pure Mathematics, Vol. V, American Mathematical Society, Providence, RI, 1962, pp. 117–121. doi:10.1090/pspum/005/0141595.
40.
R.Shore and T.Slaman, Defining the Turing jump, Mathematical Research Letters6(5–6) (1999), 711–722. doi:10.4310/MRL.1999.v6.n6.a10.
41.
R.Shore, Direct and local definitions of the Turing jump, Journal of Mathematical Logic7 (2007), 229–262. doi:10.1142/S0219061307000676.
42.
S.Simpson, First order theory of the degrees of recursive unsolvability, Annals of Mathematics105 (1977), 121–139. doi:10.2307/1971028.
43.
T.A.Slaman and J.R.Steel, Complementation in the Turing degrees, Journal of Symbolic Logic54(1) (1989), 160–176. doi:10.2307/2275022.
44.
T.A.Slaman and H.Woodin, Definability in the Turing degrees, Illinois Journal of Mathematics30 (1986), 320–334.
45.
R.Soare, Automorphisms of the lattice of recursively enumerable sets, Bulletin of the American Mathematical Society80 (1974), 53–58. doi:10.1090/S0002-9904-1974-13350-1.
46.
C.Spector, On degrees of recursive unsolvability, Annals of Mathematics64 (1956), 581–592. doi:10.2307/1969604.
47.
S.A.Terwijn and D.Zambella, Computational randomness and lowness, Journal of Symbolic Logic66 (2001), 1199–1205. doi:10.2307/2695101.