Documentation

Complexity.Computability.Complexity.Reduction.TuringAutoreducible

Polynomial-time Turing autoreducibility #

A set A is polynomial-time Turing autoreducible if it can be decided in polynomial time by an oracle machine that never queries its own input (Ambos-Spies 1984; Buhrman, Fortnow, van Melkebeek and Torenvliet 2000).

Main definitions #

Main results #

References #

A is polynomial-time Turing autoreducible: some deterministic polynomial-time oracle program decides A relative to the oracle for A without ever querying its own input.

Instances For

    A polynomial-time Turing autoreduction is in particular a polynomial-time Turing reduction of A to A.

    On bitstring languages with the default encoding encBits, the no-self-query condition simply requires q.2 ≠ a.

    theorem Cslib.Complexity.polyTimeTuringAutoreducible_of_polyTimeReducible_fixedPointFree {α : Type} {encA : α ↪ List Bool} {A : Set α} {f : α → α} (hf : Turing.MultiTapeTM.ComputableInPolyTime f encA encA) (hne : ∀ (a : α), f a ≠ a) (hA : ∀ (a : α), a ∈ A ↔ f a ∈ A) :

    Every fixed-point-free polynomial-time many-one reduction of A to A induces a polynomial-time Turing autoreduction.

    Every problem in P is polynomial-time Turing autoreducible. The decider makes zero oracle queries, so the no-self-query condition is vacuously satisfied.

    Every polynomial-time many-one autoreduction is a polynomial-time Turing autoreduction.

    Every logspace many-one autoreduction is a polynomial-time Turing autoreduction.

    Truth-table to Turing autoreducibility #

    Every polynomial-time truth-table autoreduction is a polynomial-time Turing autoreduction. The query list (List.range (r a)).map (fun i => encA (q (a, i))) is evaluated sequentially against languageOracle (encA '' A), and every queried word has the form encA (q (a, i)) with i < r a, which is distinct from encA a by injectivity of encA.

    Every polynomial-time k-truth-table autoreduction is a polynomial-time Turing autoreduction.

    Every polynomial-time bounded truth-table autoreduction is a polynomial-time Turing autoreduction.

    Every polynomial-time disjunctive truth-table autoreduction is a polynomial-time Turing autoreduction.

    Every polynomial-time conjunctive truth-table autoreduction is a polynomial-time Turing autoreduction.

    Every polynomial-time truth-table mitotic set is polynomial-time Turing autoreducible.

    Every polynomial-time bounded truth-table mitotic set is polynomial-time Turing autoreducible.

    Every polynomial-time k-truth-table mitotic set is polynomial-time Turing autoreducible.

    Every polynomial-time disjunctive truth-table mitotic set is polynomial-time Turing autoreducible.

    Every polynomial-time many-one mitotic set is polynomial-time Turing autoreducible.