The Friedberg–Muchnik construction builds two sets and makes them incomparable. A single set solves Post’s problem as well, if it is non-computable and low: a low set is never Turing complete (Proposition 6.2 of “Low and high sets”). In the course on Turing degrees, a non-computable low set was obtained by finite extensions with the oracle . This lesson builds one that is c.e., and even simple, by a finite injury construction. The construction introduces the second basic ingredient of priority arguments: requirements that preserve computations by restraining the set, rather than diagonalizing.
There is a simple set that is low.
There is a c.e. set with .
A simple set is not computable, and a low set is not Turing complete, by Proposition 6.2 of “Low and high sets”.
3.1 The requirements
We enumerate by stages , and satisfy, for every :
The positive requirements make the complement of meet every infinite c.e. set; together with a counting argument that keeps the complement infinite, they make simple. The negative requirements ensure lowness, as shown in the verification: they say that a computation that keeps appearing during the construction must eventually be preserved.
The priority order is : the requirement must respect the restraints of , and may ignore those of .
The restraint of at stage is if , and otherwise.
Since computations converging at stage have use at most , the restraint is at most , and it is computable from and .
3.2 The construction
Stage . .
Stage . Say that requires attention at stage if , , and there is with
If some requires attention, take the least such , and enumerate into the least satisfying the condition. We say that acts. Otherwise, .
The construction is computable, so is c.e. Once has acted, , so it never requires attention again: each positive requirement acts at most once.
3.3 Verification
The complement of is infinite.
Each enumerates at most one number, and this number is greater than . So the numbers of below come from requirements with , and there are at most of them. At least of the numbers are outside , for every .
We say that is injured at stage if a number is enumerated into at stage , while .
For every , the requirement is injured at most times, the limit exists, and
A number enumerated by with is greater than , so only the requirements with can injure ; each acts at most once, so is injured at most times. Let be a stage after the last injury.
Suppose with use , for some . The number enumerated at stage , if any, is greater than , since is not injured. So , and by monotonicity of stages and the use principle with the same use. By induction, the computation converges at every stage with use , and ; hence , and for all .
If no such exists, then and for all , and : if it converged, with use , then for large we would have and . In both cases, exists and equals , and is eventually constant.
Every requirement is satisfied.
Suppose is infinite. By Lemma 3.5 and since each acts at most once, there is a stage after which no with acts and for all . Let . Since is infinite, some belongs to for some . If at that stage, is satisfied. Otherwise requires attention at stage . No with requires attention, since it would act; so acts, and .
is c.e., its complement is infinite by Lemma 3.4, and meets every infinite c.e. set by Lemma 3.6; so is simple. By Lemma 3.5, the computable function is a approximation of . By the limit lemma (Shoenfield's limit lemma), , that is, is low.
The two kinds of requirements have opposite needs. A positive requirement wants to put numbers into ; a negative one wants to keep numbers out of , below its restraint. The negative requirement only needs its restraint to be respected from some point on, and the positive requirements of lower priority, which respect it, still have room: the restraint is finite, and an infinite has elements beyond it. This balance — a finite restraint against an infinite supply of candidates — is the core of finite injury arguments.
3.4 Exercises
Show that for every , the value changes at most times as increases. Deduce that has a approximation whose number of changes at is bounded by a computable function of .
Solution
Between two consecutive injuries of , and after the last one, the argument of Lemma 3.5 shows that once converges, it keeps converging until the next injury. So on each of these intervals, changes at most once from to , and it can change from to only at an injury. There are at most injuries, hence at most intervals, and at most changes. The function itself is such an approximation of .
Show that every c.e. set is the union of two disjoint low c.e. sets and .
Hint
Enumerate one element at a time, and put each element into one of the two sets, so as to injure the restraint of highest priority as rarely as possible.
Solution
If is finite, take and . Otherwise, let be a computable injective enumeration of . For and every , let be the requirement for the set , with restraint defined as above with in place of , and order them as . At stage , consider : if some has , take the one of highest priority and put into ; otherwise put into .
By induction along the priority order, each is injured finitely often. Suppose the restraints of all requirements of higher priority converge, with maximum limit , from stage on. After , an injury of puts into , which by the rule only happens if a requirement of higher priority has . Only finitely many elements of are at most , and each is enumerated once, so is injured finitely often. Then, as in Lemma 3.5, its restraint converges and . So both sets are low, they are disjoint, and their union is .
3.5 Notes and references
The construction follows Soare’s textbook, where low simple sets and the terminology of positive and negative requirements and restraints are developed systematically. The splitting of the second exercise uses the same rule for placing elements as the Sacks splitting theorem of the next lesson.
- R. I. Soare, Recursively Enumerable Sets and Degrees, Springer, 1987.
- R. I. Soare, Turing Computability: Theory and Applications, Springer, 2016.