Documentation

Mathlib.Computability.TuringDegree

Turing degrees #

This file defines Turing reducibility and equivalence, proves that Turing equivalence is an equivalence relation, and defines Turing degrees as the quotient under this relation.

Main definitions #

Notation #

References #

Tags #

Computability, Oracle, Turing Degrees, Reducibility, Equivalence Relation

@[reducible, inline]
abbrev TuringReducible (f g : →. ) :

f is Turing reducible to g if f is partial recursive given access to the oracle g

Equations
Instances For
    @[reducible, inline]
    abbrev TuringEquivalent (f g : →. ) :

    f is Turing equivalent to g if f is reducible to g and g is reducible to f.

    Equations
    Instances For

      f is Turing reducible to g if f is partial recursive given access to the oracle g

      Equations
      Instances For

        f is Turing equivalent to g if f is reducible to g and g is reducible to f.

        Equations
        Instances For

          If a function is partial recursive, then it is recursive in every partial function.

          theorem TuringReducible.partrec_of_zero {f : →. } (fRecInZero : TuringReducible f fun (x : ) => Part.some 0) :

          If a function is recursive in the constant zero function, then it is partial recursive.

          A partial function f is partial recursive if and only if it is recursive in every partial function g.

          @[reducible, inline]

          Turing degrees are the equivalence classes of partial functions under Turing equivalence.

          Equations
          Instances For