Documentation

Complexitylib.Models.TuringMachine.Oracle.Universality.Internal

Oracle-uniform universal-machine interfaces -- proof internals #

theorem Complexity.OracleTM.simulates_refl_internal {firstTapes : } (machine : OracleTM firstTapes) :
machine.Simulates machine id
theorem Complexity.OracleTM.simulates_comp_internal {firstTapes secondTapes thirdTapes : } {first : OracleTM firstTapes} {second : OracleTM secondTapes} {third : OracleTM thirdTapes} {compileFirst compileSecond : List BoolList Bool} (hfirst : first.Simulates second compileFirst) (hsecond : second.Simulates third compileSecond) :
first.Simulates third (compileFirst compileSecond)
theorem Complexity.OracleTM.simulatesInTime_refl_internal {firstTapes : } (machine : OracleTM firstTapes) :
machine.SimulatesInTime machine id fun (x : List Bool) (sourceTime : ) => sourceTime
theorem Complexity.OracleTM.simulatesInTime_comp_internal {firstTapes secondTapes thirdTapes : } {first : OracleTM firstTapes} {second : OracleTM secondTapes} {third : OracleTM thirdTapes} {compileFirst compileSecond : List BoolList Bool} {clockFirst clockSecond : TM.TimeOverhead} (hfirst : first.SimulatesInTime second compileFirst clockFirst) (hsecond : second.SimulatesInTime third compileSecond clockSecond) :
first.SimulatesInTime third (compileFirst compileSecond) fun (program : List Bool) (sourceTime : ) => clockFirst (compileSecond program) (clockSecond program sourceTime)
theorem Complexity.OracleTM.efficientlyUniversalFor_isUniversal_internal {firstTapes : } {simulator : OracleTM firstTapes} {admissible : TM.TimeOverheadProp} (h : simulator.IsEfficientlyUniversalFor admissible) :
simulator.IsUniversal
theorem Complexity.OracleTM.efficientlyUniversalFor_mono_internal {firstTapes : } {simulator : OracleTM firstTapes} {firstPolicy secondPolicy : TM.TimeOverheadProp} (hpolicy : ∀ (clock : TM.TimeOverhead), firstPolicy clocksecondPolicy clock) (h : simulator.IsEfficientlyUniversalFor firstPolicy) :
simulator.IsEfficientlyUniversalFor secondPolicy