Documentation

LeanPool.Computability.Jump

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
Instances For

    A set A is recursively enumerable in a family X of oracle functions if it is the domain of a function recursive in the range of X.

    Equations
    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
        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
          Instances For

            The oracle corresponding to a decidable set A, returning 0 on elements of A and undefined elsewhere.

            Equations
            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
              Instances For
                @[reducible, inline]
                abbrev Computability.W {α : Type} [Primcodable α] (e : ) (f : α →. ) :

                W e f is the domain of the e-th partial function recursive in the oracle family f.

                Equations
                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
                  Instances For
                    def Computability.ComputablePredIn {α : Type u_1} (f : →. ) [Primcodable α] (p : αProp) :

                    A predicate p is computable relative to f if it is decidable and its decision procedure is computable in {f}.

                    Equations
                    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
                        theorem Computability.dom_re_in_jump (f : →. ) :
                        REPredIn (f) fun (n : ) => (f n).Dom
                        theorem Computability.ComputablePredIn.decide {α : Type u_1} [Primcodable α] {p : αProp} {f : →. } [DecidablePred p] (hp : ComputablePredIn f p) :
                        ComputableIn {f} fun (a : α) => decide (p a)
                        theorem Computability.ComputableIn.computablePred {α : Type u_1} [Primcodable α] {p : αProp} [DecidablePred p] (hp : Computable fun (a : α) => decide (p a)) :
                        def Computability.PrimrecPredIn {α : Type u_1} [Primcodable α] {f : } (p : αProp) :

                        PrimrecPredIn p means p : α → Prop is a predicate whose decision procedure is primitive recursive relative to the oracle f.

                        Equations
                        Instances For
                          def Computability.Kf (f : →. ) (n : ) :

                          The jump set Kf f relative to f: the set of n on which jump f is defined.

                          Equations
                          Instances For