Documentation

Complexitylib.Models.TuringMachine.Oracle.Universality.Defs

Oracle-uniform universal-machine interfaces -- definitions #

An oracle simulation uses one compiler and one clock for every Boolean oracle. This quantifier order is essential: allowing the compiler to depend on the oracle could hide an entire test truth table in a nominal constant.

The admissibility policies for program length and time reuse the ordinary machine interfaces because they concern only finite program strings and numeric clocks. Oracle lookup cost is already charged by OracleTM.reachesIn.

structure Complexity.OracleTM.Simulates {simulatorTapes sourceTapes : } (simulator : OracleTM simulatorTapes) (source : OracleTM sourceTapes) (compile : List BoolList Bool) :

Uniform semantic simulation of one oracle machine by another. The compiler is independent of the Boolean oracle.

  • halts_iff (oracle : BooleanOracle) (program : List Bool) : simulator.Halts oracle (compile program) source.Halts oracle program

    Compilation preserves and reflects halting for every oracle.

  • produces_iff (oracle : BooleanOracle) (program output : List Bool) : simulator.Produces oracle (compile program) output source.Produces oracle program output

    Compilation preserves and reflects eventual exact output for every oracle.

Instances For
    structure Complexity.OracleTM.SimulatesInTime {simulatorTapes sourceTapes : } (simulator : OracleTM simulatorTapes) (source : OracleTM sourceTapes) (compile : List BoolList Bool) (clock : TM.TimeOverhead) :

    Forward oracle-uniform simulation under an explicit clock transform.

    • produces (oracle : BooleanOracle) (program output : List Bool) (sourceTime : ) : source.ProducesInTime oracle program output sourceTimesimulator.ProducesInTime oracle (compile program) output (clock program sourceTime)

      Bounded production transfers for every oracle under the same clock.

    Instances For
      def Complexity.OracleTM.IsUniversal {simulatorTapes : } (simulator : OracleTM simulatorTapes) :

      Oracle universality uses one compiler per source machine, uniformly over all Boolean oracles.

      Equations
      Instances For
        def Complexity.OracleTM.IsEfficientlyUniversalFor {simulatorTapes : } (simulator : OracleTM simulatorTapes) (admissible : TM.TimeOverheadProp) :

        Oracle universality relative to an admissible clock policy. The compiler, additive length constant, and clock are all selected before the oracle.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def Complexity.OracleTM.IsEfficientlyUniversal {simulatorTapes : } (simulator : OracleTM simulatorTapes) :

          Polynomially efficient oracle universality with additive description overhead, uniformly across every Boolean oracle.

          Equations
          Instances For