The Kleene–Post theorem builds two incomparable sets by finite extensions, with the oracle answering questions such as “is there an extension making this computation converge?”. To make the sets c.e., the construction must be computable, and elements may be added but never removed. It can no longer ask whether a computation will converge; it can only watch computations converge with the current approximations, and act on what it sees. A later action may then destroy what an earlier one relied on. The priority method, found independently by Friedberg and Muchnik, organizes these conflicts: requirements are ordered by priority, a requirement may only be disturbed by requirements of higher priority, and each requirement is disturbed only finitely often.
There are c.e. sets and such that and .
There is a c.e. set with . This solves Post’s problem.
Let and be as in the theorem. If were computable, it would be computable from , contradicting . If , then , since every c.e. set is computable in , contradicting . And since is c.e.
2.1 The requirements
We enumerate and by stages, and , with finite sets and computable from . The requirements are, for every :
They are ordered by priority: has higher priority than if .
The strategy for one requirement. Consider . It is assigned a witness , a number not yet in . It waits for a stage at which . If this never happens, then either diverges or is different from , while , so : the requirement is satisfied without action. If it happens, the strategy enumerates into , so that , and must then ensure that does not change below the use of this computation, so that as well. This last condition is a restraint on : the numbers below must not be enumerated into later. The strategy for is the same with and exchanged.
Conflicts. The requirements enumerate their witnesses into , and may thus violate the restraint of . Priority resolves the conflict: a requirement of lower priority must respect the restraints of higher priority, and a requirement of higher priority may injure one of lower priority, by enumerating a number below its restraint. The injured requirement is then initialized: it loses its witness, and starts again with a new one.
Respecting restraints is obtained without bookkeeping: when a requirement acts, all requirements of lower priority are initialized, and the witnesses chosen afterwards are fresh, larger than every number seen so far in the construction, in particular larger than the use of the computation being preserved.
2.2 The construction
A requirement may have a witness, written , and may be marked as satisfied. To initialize is to cancel its witness and remove its mark. A number is fresh at a stage if it is larger than every number mentioned so far in the construction: every witness, every element of or , and the stage itself.
Stage . , no requirement has a witness.
Stage . Say that requires attention if it has a witness , it is not marked as satisfied, and ; and similarly that requires attention if it has a witness , it is not marked, and .
- If some with requires attention, take the least such . If , enumerate into ; if , enumerate into . Mark as satisfied, and initialize every with . We say that acts at stage .
- Every with that has no witness receives a fresh witness, the witnesses being chosen in increasing order of .
The construction is computable: at each stage, finitely many requirements are considered, and the condition "" is decidable. So and are c.e.
2.3 Verification
Witnesses are fresh when chosen, so distinct requirements, and distinct witnesses of the same requirement, never share a number; and a witness is enumerated only by .
Suppose acts at stage with witness , through a computation with use , and is never initialized afterwards. Then , so that . The same holds for , with and exchanged.
The numbers enumerated into after stage are witnesses of requirements with odd, at the stages where they act. No with acts after stage , since it would initialize . Every with is initialized at stage , so any witness it uses afterwards was chosen fresh at stage or later, and is greater than . The use satisfies , since the computation converges at stage (its code is smaller than , and it reads only cells below its number of steps). So no number below enters after stage , and by the use principle , while .
Every requirement acts only finitely often, is initialized only finitely often, and is satisfied.
By induction on . Suppose every with acts only finitely often, and let be a stage after which none of them acts. A requirement is only initialized by the action of a requirement of higher priority, so is not initialized after stage , and it is initialized only finitely often. Let be the last stage at which is initialized, or if it never is. From the end of stage on, has a witness (it receives one at the latest at stage , since ), which never changes. After stage , acts at most once, since acting marks it as satisfied and the mark can only be removed by an initialization. So acts finitely often. Say ; the odd case is symmetric.
If acts after stage , it acts with the witness and is never initialized afterwards, so it is satisfied by Lemma 2.3.
If does not act after stage , then , since only enumerates , and is never marked as satisfied after stage (the mark is removed at an initialization, and is absent at the start). Suppose , with use . For all sufficiently large , and the computation converges at stage , so by the use principle, and, for , requires attention at stage . No with requires attention at a stage after , since the least requirement requiring attention acts, and they do not act. So would act, a contradiction. Hence , and is satisfied.
The sets and are c.e., and by Lemma 2.4 every requirement is satisfied: and for every . So and .
The method is called finite injury because each requirement is injured only finitely often; here the number of injuries of is even bounded by a computable function of (see the exercises). In later constructions, a requirement may be injured infinitely often while still being satisfied; these are infinite injury arguments.
2.4 Exercises
Show that the requirement acts at most times and is initialized at most times.
Solution
Let and be the numbers of actions and initializations of . Initializations of are caused by actions of , , so . Between two initializations, and after the last one, acts at most once, so . By induction, if for , then and .
Show that there is a uniformly c.e. sequence of sets such that for all .
Solution
Use the requirements , for , ordered by their index. The strategy for has a witness for , waits for , and then enumerates into , initializing all requirements of lower priority. The verification is the same as for Theorem 2.1: after an action, the numbers entering are witnesses of requirements that are either of higher priority, and then act only finitely often, or of lower priority, and then are fresh. The construction builds all the sets simultaneously and is computable, so the relation is c.e. in : the sequence is uniformly c.e.
2.5 Notes and references
Muchnik announced the solution of Post’s problem in 1956 and Friedberg published his independently in 1957. The presentation with witnesses and initialization follows Soare’s textbooks, where the finite injury method is developed with many further applications.
- A. A. Muchnik, On the unsolvability of the problem of reducibility in the theory of algorithms, Doklady Akademii Nauk SSSR 108 (1956), 194–197.
- R. M. Friedberg, Two recursively enumerable sets of incomparable degrees of unsolvability, Proceedings of the National Academy of Sciences 43 (1957), 236–238.
- R. I. Soare, Recursively Enumerable Sets and Degrees, Springer, 1987.