Documentation

TauCeti.Computability.Jump.Basic

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 #

Main results #

References #

def Set.jump (Z : Set ℕ) :

The jump Z' of a set Z: the indices e for which the program numbered e halts on input e relative to the oracle of Z.

Instances For

    The paired jump K₀^Z of a set Z: the numbers Nat.pair x e for which the program numbered e halts on input x relative to the oracle of Z.

    Instances For
      @[simp]

      e ∈ Z' when the program numbered e halts on input e relative to Z.

      @[simp]

      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.

      theorem Set.oneOneReducible_jump_of_recursiveIn (Z : Set ℕ) {f : ℕ →. ℕ} (hf : Nat.RecursiveIn {Z.oracle} f) :
      (fun (x : ℕ) => (f x).Dom) ≤₁ fun (x : ℕ) => x ∈ Z.jump

      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'.

      theorem Set.oneOneReducible_jump_of_rePred (Z : Set ℕ) {A : Set ℕ} (hA : REPred fun (x : ℕ) => x ∈ A) :
      (fun (x : ℕ) => x ∈ A) ≤₁ fun (x : ℕ) => x ∈ Z.jump

      Every c.e. set reduces one-one to the jump of Z.

      theorem Set.turingReducible_jump_of_rePred (Z : Set ℕ) {A : Set ℕ} (hA : REPred fun (x : ℕ) => x ∈ A) :

      The jump of Z decides every c.e. set.

      theorem Set.oneOneEquiv_jump_pairedJump (Z : Set ℕ) :
      OneOneEquiv (fun (x : ℕ) => x ∈ Z.jump) fun (x : ℕ) => x ∈ Z.pairedJump

      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.

      theorem Set.oneOneReducible_jump (Z : Set ℕ) :
      (fun (x : ℕ) => x ∈ Z) ≤₁ fun (x : ℕ) => x ∈ Z.jump

      A set reduces one-one to its jump.

      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.

      theorem Set.oneOneReducible_jump_jump {A B : Set ℕ} (h : TuringReducible A.oracle B.oracle) :
      (fun (x : ℕ) => x ∈ A.jump) ≤₁ fun (x : ℕ) => x ∈ B.jump

      The jump is monotone: if A is Turing reducible to B, then A' reduces one-one to B'.

      The jump is monotone: if A is Turing reducible to B, then so is A' to B'.

      theorem Set.oneOneEquiv_jump_jump {A B : Set ℕ} (h : TuringEquivalent A.oracle B.oracle) :
      OneOneEquiv (fun (x : ℕ) => x ∈ A.jump) fun (x : ℕ) => x ∈ B.jump

      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.