The Jump Operator #
This file defines the jump operator ⌜ for partial functions relative to an oracle and proves its
basic properties, together with the associated notions of recursive enumerability relative to an
oracle.
We identify partial recursive functions with recursively enumerable sets by taking their domain:
if f : ℕ →. ℕ, then dom f : Set ℕ is {n | n ∈ f.Dom}. These are the terms in which the jump
theorems are stated.
A set A is recursively enumerable in a set of oracle functions O if it is the domain of a
function recursive in O.
Equations
- Computability.recursivelyEnumerableIn O A = ∃ (f : ℕ →. ℕ), Computability.RecursiveIn O f ∧ A = f.Dom
Instances For
A set A is recursively enumerable in a single oracle g if it is the domain of a function
recursive in {g}.
Equations
Instances For
A set A is recursively enumerable if it is the domain of a partial recursive function.
Equations
- Computability.recursivelyEnumerable A = ∃ (f : ℕ →. ℕ), Computability.RecursiveIn ∅ f ∧ A = f.Dom
Instances For
The jump of f is the diagonal of the universal machine relative to f:
f⌜ n = evalo (fun _ => f) (decodeCodeo n) n. Its domain is the halting problem relative to f.
Equations
- (f⌜) n = Computability.evalo (fun (x : Unit) => f) (Computability.decodeCodeo n) n
Instances For
The oracle corresponding to a decidable set A, returning 0 on elements of A and undefined
elsewhere.
Instances For
The jump of a decidable set A: the set of n such that the n-th oracle program halts on
input n with oracle A.
Equations
- Computability.jumpSet A n = (Computability.evalo (fun (x : Unit) => Computability.setOracle A) (Computability.decodeCodeo n) n).Dom
Instances For
W e f is the domain of the e-th partial function recursive in the oracle family f.
Equations
- Computability.W e f = (Computability.evalo f (Computability.decodeCodeo e)).Dom
Instances For
The jump of f is the diagonal of the universal machine relative to f:
f⌜ n = evalo (fun _ => f) (decodeCodeo n) n. Its domain is the halting problem relative to f.
Equations
- Computability.«term_⌜» = Lean.ParserDescr.trailingNode `Computability.«term_⌜» 100 0 (Lean.ParserDescr.symbol "⌜")
Instances For
A predicate p is computable relative to f if it is decidable and its decision procedure is
computable in {f}.
Equations
- Computability.ComputablePredIn f p = ∃ (x : DecidablePred p), Computability.ComputableIn {f} fun (n : α) => decide (p n)
Instances For
A predicate p on ℕ is recursively enumerable relative to f if it is the domain predicate
of a function recursive in {f}.
Equations
Instances For
PrimrecPredIn p means p : α → Prop is a predicate whose decision procedure is primitive
recursive relative to the oracle f.
Equations
- Computability.PrimrecPredIn p = ∃ (x : DecidablePred p), Computability.PrimrecIn' {f} fun (a : α) => decide (p a)