The Turing jump of a set #
A set Z ⊆ ℕ is used as an oracle through its characteristic function, the total partial function
Z.oracle. The jump Z.jump is the relative diagonal halting set
Z' = {e | Φ_e^Z(e)↓}, where Φ_e^Z is the program numbered e of
TauCeti.Oracle.Single.Code, evaluated relative to Z.oracle. The paired jump
Z.pairedJump is the relative paired halting set K₀^Z = {⟨x, e⟩ | Φ_e^Z(x)↓}, with the input in
the first coordinate of Nat.pair.
The main results are that the jump is a strict upper bound in the Turing order, that every set
c.e. in Z reduces to it, and that the jump is monotone in the Turing order. These reductions are
one-one reductions in the sense of Mathlib's OneOneReducible, and descend to Turing reducibility
of the set oracles.
Main definitions #
Set.jump: the jumpZ'of a setZ.Set.pairedJump: the paired halting setK₀^Zrelative to a setZ.
Main results #
Set.oneOneReducible_jump_of_recursiveIn: every set c.e. inZ, that is, the domain of a partial function recursive inZ.oracle, reduces one-one to the jump;Set.turingReducible_jump_of_recursiveIn: so the jump decides it;Set.oneOneReducible_jump_of_rePred,Set.turingReducible_jump_of_rePred: in particular, every c.e. set reduces one-one and Turing toZ'.Set.oneOneEquiv_jump_pairedJump: the diagonal and paired halting sets relative toZare one-one equivalent.Set.oneOneReducible_jump,Set.turingReducible_jump:Zreduces to its jump.Set.not_jump_turingReducible: the jump ofZis not computable relative toZ.Set.oneOneReducible_jump_jump,Set.turingReducible_jump_jump: ifAis Turing reducible toB, thenA'reduces one-one, and hence Turing, toB'.Set.oneOneEquiv_jump_jump,Set.turingEquivalent_jump_jump: Turing equivalent sets have one-one equivalent, and hence Turing equivalent, jumps.Set.degree_mem_Ioo_of_incomparable: Turing incomparable sets below(∅ : Set ℕ).jumphave degrees strictly between the computable degree and(∅ : Set ℕ).jump.
References #
- R. I. Soare, Recursively Enumerable Sets and Degrees, Springer, 1987, Chapter III.2.
e ∈ Z' when the program numbered e halts on input e relative to Z.
n ∈ K₀^Z when the program numbered by the second coordinate of n halts on the first
coordinate relative to Z.
Nat.pair x e ∈ K₀^Z when the program numbered e halts on input x relative to Z.
Halting relative to Z reduces one-one to the jump of Z, uniformly in the program: the
program c halts on x exactly when the program that ignores its input and runs c on x halts
on its own number.
Every set c.e. in Z reduces one-one to the jump of Z: the domain of every partial
function recursive in the oracle of Z reduces one-one to Z'.
The jump of Z decides every set c.e. in Z: the domain of a partial function recursive
in the oracle of Z has an oracle Turing reducible to that of Z'.
The diagonal and paired halting sets are one-one equivalent, relative to every set Z.
The diagonal and paired halting sets relative to Z have Turing equivalent oracles.
A set is Turing reducible to its jump.
The jump is not computable relative to Z: the oracle of Z' is not Turing reducible to
the oracle of Z.
Diagonal evaluation of the oracle-program numbering is recursive in the oracle of Z.
The jump is monotone: if A is Turing reducible to B, then so is A' to B'.
Turing equivalent sets have one-one equivalent jumps.
Turing equivalent sets have Turing equivalent jumps.
If A and B are Turing incomparable sets both Turing reducible to (∅ : Set ℕ).jump, then
the Turing degree of A lies strictly between the computable degree and (∅ : Set ℕ).jump.