For subsets , a many-one reduction is a total computable function such that
A Turing reduction is an oracle machine that, using membership queries to , halts on every input and computes the indicator function of . It may make several adaptive queries, and need not preserve the yes/no answer to a single query. A many-one reduction yields a Turing reduction by computing and querying once. Two sets have the same Turing degree when each is Turing reducible to the other. Write for the degree of the diagonal halting set .
We prove the Kleene–Post incomparability theorem by an oracle-assisted finite-extension construction. Fix an effective list of all Turing functionals. We shall build increasing finite binary strings whose unions are the indicator functions of . A finite oracle computation means that the computation halts with output and every oracle query is strictly below . Its answers are supplied by . By the finite oracle use property, every infinite oracle extending preserves this computation.
Here is the decision available from . Given and a finite string , consider
This predicate is semidecidable: enumerate all finite extensions of and dovetail their finite oracle simulations, stopping at the first halting binary output. There is a computably produced program which, on its own index as well as on every other input, performs this search and halts exactly if it succeeds. Membership of its code in therefore decides . In a yes case, running the search finds an actual witness . The decision oracle is essential in a no case; merely waiting would not produce a terminating construction.
Start with empty strings. At stage first ensure
Choose , which is not yet assigned in . Ask whether holds. If yes, find a witness , extend the current string to , and append the bit to the current string. If no, leave the current string unchanged and append to the current string. The yes case permanently forces disagreement at , since later strings extend both commitments. In the no case no final oracle extending the current string can give a binary output at : any such convergent computation would use finitely many bits and hence supply a forbidden finite witness. Thus it cannot be the indicator function of either, regardless of whether it diverges or returns a nonbinary value.
Next, using the strings just obtained, ensure
by the same procedure with the roles reversed. Choose equal to the current length of the string, ask the analogous extension question about the current string, and, if it has witness output , extend to that witness and append to . Otherwise append to . Finally pad both strings with zeros if necessary so that each length is at least , and call the resulting strings . Every operation is computable using the membership oracle and terminates. Earlier disagreements remain protected because no already fixed bit is ever changed.
Set and . The length condition makes these total binary functions. To compute either bit with oracle , run the construction through stage , when both strings have length at least , and read that bit. Consequently . Every Turing functional has been defeated in both directions, so
Neither set is computable, since a computable set is Turing reducible to every oracle. Neither can have degree : if , then , contrary to incomparability; the other case is symmetric. Therefore
This proves the requested theorem. The argument does not claim or is computably enumerable; it constructs sets computable in . Obtaining incomparable computably enumerable degrees is the stronger Friedberg–Muchnik theorem, which is not needed for the printed request.
For sets , many-one reducibility means there is a total computable function such that
Turing reducibility means that a Turing machine with oracle computes the indicator function , halting on every input. A many-one reduction supplies a Turing reduction by computing and making one membership query, so implies .
The Friedberg–Muchnik theorem states that there are computably enumerable sets with and . We prove this by a finite-injury priority construction. Fix an effective enumeration of the oracle Turing functionals and arrange the requirements in the order
A requirement owns a private witness, a success flag and a priority restraint on its oracle set. All witnesses ever chosen are distinct. An witness is reserved outside , and only may enumerate that number into ; an witness is treated symmetrically. A priority restraint forbids lower-priority requirements from adding numbers less than to the specified oracle set. Initializing a requirement abandons its witness, clears its success flag and sets its priority restraint to zero; enumeration into or is never undone.
At stage consider the first requirements and serve the highest-priority one requiring attention. An unsuccessful requirement requires attention if it has no witness, or its current witness has a stage- oracle computation with output zero, found within steps. If there is no such requirement, do nothing. When a requirement with no witness is served, choose a fresh number larger than , all previously chosen witnesses and all current higher-priority priority restraints. When an with a witness and observed computation is served, enumerate into , mark it successful, and restrain below the use of that computation. The use is one more than the largest queried oracle position, or zero if there were no queries. An acts in exactly the same way with interchanged. After either kind of service, initialize every currently assigned lower-priority requirement; the remaining lower priorities are already in their initial state.
This is an effective stage construction with finite sets , and , are computably enumerable. Every enumeration respects all higher-priority priority restraints: its private witness was selected above them, and any later service to a higher-priority requirement would have initialized it before it could act. We do not need to restrain a computation whose output is nonzero; a persistent nonzero output already disagrees with an unenumerated witness.
We verify the finite injury assertion by induction along the priority order. After the last service to requirements above a fixed requirement , the requirement is never initialized again. It can be served at most twice thereafter, once to choose its final witness and once to diagonalize. Whenever it needs attention it is eventually served, since the higher-priority requirements have ceased acting and each later stage considers a longer initial segment. Thus has a final witness and makes only finitely many actions; this proves the induction and justifies the assumed last service above it.
For a final witness , if the diagonalization occurs then , while preservation of a restrained oracle computation applies: its zero computation is preserved permanently because higher priorities no longer act and lower priorities respect the priority restraint. Thus . If it never occurs, then . Were , that convergent computation would use finitely many oracle answers. Because increases to , those finitely many answers eventually stabilize, and a sufficiently late stage would discover the zero computation and cause diagonalization. This contradicts its never occurring. So in this case is undefined or nonzero and again disagrees with . The identical argument verifies every .
All the requirements hold, proving the theorem. Both sets are noncomputable: a computable set is Turing reducible to every oracle. Moreover, every computably enumerable set is Turing reducible to the diagonal halting set , and neither nor can have its Turing degree, since that would make it compute the other set. Hence
This also gives many-one incomparability and answers the existence of intermediate computably enumerable Turing degrees.
Rice theorem: every nontrivial extensional property of programs computing partial computable functions has an undecidable index set. More precisely, take an acceptable effective enumeration of the unary partial computable functions. If contains some but not all of these functions, then
“Extensional” means that equality of partial functions, including their domains, preserves membership; no syntactic restriction on program codes is being considered.
We use two standard facts, stated explicitly. The diagonal halting set is undecidable. For the associated acceptable enumerations of -ary partial computable functions, with , the S-m-n theorem says that for every there is a total computable function such that
where means equality of defined values and equality of undefinedness. Thus fixed parameters in a program can be compiled into its index effectively.
Let be the nowhere-defined partial computable function. Choose a partial computable function whose membership in is opposite to that of ; this is possible by nontriviality. For each , construct the program
This is a uniform partial computation. Take an index for the binary partial computable function . The S-m-n theorem gives the total computable function with . Crucially,
Even when itself is undefined, the equality of partial functions remains correct. If , this gives a many-one reduction of to ; if , it gives a many-one reduction of to the complement of . A decision procedure for would therefore decide in either case, a contradiction.
The equivalent language formulation says that every nontrivial property of computably enumerable languages depending only on the recognized language has an undecidable index set. Apply the function formulation to the property of a partial computable function that its domain has the specified language property: every computably enumerable language occurs as such a domain.
A many-one reduction is a total computable function such that
A Turing reduction is an oracle machine which, with membership oracle , halts on every input and computes the indicator function . It may make finitely many adaptive queries on each input. A many-one reduction gives a Turing reduction by a single query, but Turing reducibility allows more general procedures.
The Friedberg–Muchnik theorem states that there are computably enumerable sets with incomparable Turing degrees:
Here is a finite-injury priority construction proving it. Effectively enumerate all Turing functionals . Arrange the requirements in the priority order
Equality would require the Turing functional to be total and give the correct bit at every input; one disagreement or one undefined input defeats it.
Start with and enumerate elements without ever removing them. A strategy has a private witness, a flag recording whether it has acted, and a restraint on its oracle. Every new witness is larger than every previously assigned witness and every current higher-priority restraint. Retired witnesses are never reused. The only possible enumeration of a witness is by its owner, so an unacted witness remains outside its target set.
The strategy for chooses a witness and waits for a stage at which the bounded simulation gives
On seeing this, put into , declare the strategy acted, and impose restraint on , where is the oracle use: one more than the largest queried number, or zero if there were no queries. Initialize every lower-priority strategy, discarding its current witness, acted flag and restraint. An acted strategy does nothing further until initialized. The strategy for is identical with interchanged. Waiting specifically for zero is enough: if the eventual output is nonzero while the witness stays out, it already disagrees with the target indicator function.
For a completely effective schedule, at stage visit the first strategies in priority order. Assign an unassigned witness when visited. Simulate each unacted strategy's computation for at most steps with the current finite oracle. If some strategy can act, perform the first such action and end the stage; otherwise end after all visits. All steps are finite and algorithmic, so the limiting are computably enumerable sets.
Every lower-priority enumeration respects higher-priority restraints. When its witness was chosen it lay above these restraints. Any subsequent action of a higher-priority strategy would have initialized it, so its current witness remains safe to enumerate. The initialization of all lower strategies also removes their obsolete restraints before they can obstruct a legitimate higher-priority action.
We verify finite injury by mathematical induction on priority. The first strategy is never injured and acts at most once. If all predecessors of a strategy act finitely often, there is a last stage when a higher-priority action initializes it. It is subsequently visited, chooses its permanent witness, and acts at most once. Thus it too acts finitely often and all its lower-priority strategies suffer only finitely many injuries. The scheduling cannot starve a fixed strategy: after the finitely many higher-priority actions, all sufficiently large stages visit it.
Consider the final uninjured with witness . If it acts, then permanently, and every later lower-priority enumeration into respects its restraint. No later higher-priority action occurs. The preserved computation is therefore
If it never acts, . Were , the final computation on would halt with zero and have finite oracle use. The finitely many oracle bits it queries eventually stabilize, and a sufficiently late bounded stage simulation would see exactly this zero computation. The strategy would then act, a contradiction. Hence holds in this case too. The same reasoning proves every .
All possible Turing reductions in both directions are excluded. This proves the Friedberg–Muchnik theorem; in particular both constructed Turing degrees are noncomputable, since a computable set is Turing reducible to every oracle.
For subsets , a many-one reduction is a total computable function with . A Turing reduction is an oracle machine with oracle computing the total indicator function . It may make several adaptive oracle queries. A many-one reduction gives a Turing reduction using one query; the definitions impose no enumerability assumption on .
The Friedberg–Muchnik theorem asserts that there exist computably enumerable sets with
We give the finite-injury priority construction. Fix an effective list of Turing functionals and impose
in priority order . Each strategy has an unassigned, waiting or protected state; a private witness when assigned; and a restraint on the oracle set when protected. All witnesses, even abandoned ones, are permanently recorded and never reused. A strategy for is the only strategy ever allowed to enumerate its witness into ; the analogous statement holds for and .
Start with finite sets . At stage , inspect the first strategies. An unassigned strategy needs attention. A waiting strategy needs attention if the computation converges within steps; waiting is symmetric. Act on the highest-priority strategy needing attention, if any. On assignment choose a fresh witness greater than , every earlier witness and every higher-priority restraint, and enter the waiting state. On a convergence with output and oracle use , act as follows: if , enumerate the witness into its own target set; if , leave the witness out. Enter the protected state and restrain the oracle below . The current characteristic value at the witness is now different from , including outputs other than zero or one. Whenever a strategy acts, initialize every lower-priority strategy, discarding its current witness and restraint but retaining the permanent record of used witnesses. If none needs attention, change nothing.
Every enumeration respects higher-priority restraints: its witness was chosen beyond them after its last initialization, and a later higher-priority action would have initialized it. Each stage is effective, finite and monotone in , so and are computably enumerable. Lower-priority restraints may be violated by a higher-priority action, exactly the allowed injuries.
Induct on priority to verify finite injury and satisfaction. Once all higher-priority strategies have made their last actions, the current strategy receives its final assignment and can act at most once more, on a convergence. If convergence is observed it is then protected permanently; otherwise it waits without further action. In either case every strategy acts only finitely often. After the final initialization of , if it acts on a convergence, no higher strategy subsequently changes its assumptions and every lower strategy respects its restraint. The observed oracle computation therefore remains valid for the final , while the permanently private witness retains the opposite characteristic value in .
If it waits forever, then cannot converge. A convergent final computation uses only finitely many oracle bits; those bits in the increasing enumeration eventually equal their final values. For a sufficiently large stage the same finite computation would have been observed, and after the higher strategies have stopped it would receive attention, contradicting perpetual waiting. Thus is satisfied either by disagreement or by divergence. The same proof satisfies every . This is private-witness diagonalization for incomparable enumerable sets, with the finite-injury verification supplying the required permanent disagreements.
A computable set reduces to every oracle, so incomparability makes both sets noncomputable. Every computably enumerable set reduces to the halting problem; if either of these sets had the halting degree, the other would reduce to it. Thus their c.e. degrees are also incomplete, giving the intermediate degrees sought by the Post problem.
A many-one reduction is a total computable function with . If is recursively enumerable, compute and run a semidecision procedure for on that value. It halts exactly when , so is recursively enumerable. Totality of is essential to this argument.
A many-one reduction is a total computable function with . A Turing reduction is an oracle machine which decides with oracle . It may make several adaptive queries and combine their answers. Every many-one reduction is a Turing reduction, by asking the single question . The converse fails: for the diagonal halting set , its complement is Turing-reducible to by reversing one oracle answer, but is not many-one reducible to . Such a reduction would make the complement computably enumerable, contradicting undecidability of the halting problem.
The Friedberg–Muchnik theorem asserts that there are computably enumerable sets with incomparable Turing degrees:
Here is a finite-injury priority construction proving it. Enumerate all Turing functionals and put the requirements in the priority order
Start with . Each requirement has a fresh witness, a waiting or acted status, and a restraint on the other set. A restraint forbids lower-priority strategies from enumerating numbers below into that oracle. Globally remember all previously chosen witnesses, including abandoned ones, and never choose any of them again.
For , choose an unused witness outside , larger than the stage and every current higher-priority restraint. Keep it out of . Wait until the bounded simulation converges with value zero. If this happens, enumerate into , put a restraint on , where is one more than the largest oracle query in the observed computation, and mark the strategy acted. For , interchange and .
At stage , consider the first requirements. Choose the highest-priority one needing a witness or waiting with an observed zero computation. Perform its indicated action, then initialize all lower-priority requirements: abandon their witnesses, clear their restraints, and reset their status. Do nothing if no requirement needs attention. Since witness selection respects higher restraints, and higher actions initialize every lower strategy, all protected computations are respected by lower-priority enumerations. Each stage is a finite effective calculation, so and are computably enumerable sets.
Verify by induction along the priority order that every requirement is initialized only finitely often and acts only finitely often. The highest requirement chooses one witness and can diagonalize at most once. After all higher requirements have finished acting, the next requirement is never again initialized; it obtains a final witness and can diagonalize at most once. This proves finite injury for every requirement and ensures that no requirement is permanently starved by higher attention.
Consider after its last initialization. If it acts, its witness belongs to , while the protected computation with oracle remains zero: higher strategies no longer act and lower ones respect its restraint. Thus . If it never acts, its private witness remains outside . Were , the computation on that witness would converge to zero with a finite oracle use. Since the increasing sets eventually agree with on this finite initial segment, a sufficiently late bounded simulation would detect that computation and make act, a contradiction. The symmetric argument verifies every .
Thus the two sets have incomparable Turing degrees. Both are noncomputable, since a computable set is Turing-reducible to every oracle. Both are also strictly below the degree of the halting problem: every computably enumerable set is Turing-reducible to , while completeness of one would make the other reducible to it. This supplies the intermediate degrees sought in Post problem.
A many-one reduction is a total computable function such that
If is a computably enumerable set, compute and run a semidecision procedure for on that value. It halts exactly when , equivalently exactly when . Therefore is computably enumerable.
For the given effective enumeration of partial computable functions, the diagonal halting set is
A many-one reduction is a total computable function such that
The S-m-n theorem states that for every there is a total computable function satisfying
whenever either side is defined.
Suppose first that is recursively enumerable. Choose a program that halts exactly on inputs in , and let index a two-variable program that, on , ignores and runs that program on . By the S-m-n theorem,
is total computable and indexes the unary function
Therefore
Thus .
Conversely, suppose through a total computable . On input , compute and simulate machine on its own code. This procedure halts exactly when , equivalently exactly when . Hence is recursively enumerable. We have proved the many-one completeness of the halting problem:
Finally, use the stated fact that and define
Then , so . The total computable map satisfies
and therefore . This is a distinct representative of the halting many-one degree.
Fix an effective enumeration of register-machine programs. The th register machine is , and its domain
is the th recursively enumerable set. A many-one reduction is a total computable function satisfying . Rice theorem says that every nontrivial property depending only on the computed partial function, or equivalently on an r.e. set in its extensional form, has an undecidable index set.
There is no total equality algorithm: it would decide whether is empty by comparing it with a fixed index for the empty set, contradicting Rice's theorem.
There is no partial algorithm that halts exactly when either. Given , effectively construct an index whose machine enumerates nothing unless halts, after which it enumerates . Then
A semialgorithm for equality with a fixed empty index would enumerate the complement of the halting problem . Since is r.e., both it and its complement would then be r.e., making recursive, a contradiction.
The relation means that there is a total computable function such that
for every word . Such a is a many-one reduction.
First, : the partial procedure on input simulates and halts exactly when that computation halts.
For hardness, let . Choose a partial computable function with
For each fixed , define a unary program as follows: on any input , simulate ; if that simulation halts, halt and output , and otherwise run forever. The S-m-n theorem gives a total computable function that maps to a code for . Its accepted language is
In particular,
Thus is a many-one reduction . Since was arbitrary, is -hard; together with membership this proves the many-one completeness of the halting problem.
For , one writes if there is a total computable function such that
for every . This is a computable many-one reduction.
Turing reduction Created 2026-10-05 Updated 2026-10-06
A set is Turing-reducible to when an oracle machine with membership oracle computes the characteristic function of . Unlike a many-one reduction, it may make adaptive queries and reverse or combine oracle answers.