Documentation

Complexitylib.Models.RandomAccessMachine.Simulation.TMConfig.Sparse.Containment.Internal

TM-to-RAM time-class containment -- proof internals #

This module lifts the checked public-ABI sparse simulation from one halting run to deciders and then discharges the polynomial-bound arithmetic needed for the forward machine-model robustness theorem.

theorem Complexity.RAM.TMConfig.Sparse.compiledDecision_decidesInTime_internal {n : } {tm : TM n} {L : Language} {T : } (hdecides : tm.DecidesInTime L T) :
(compiledDecision tm).DecidesInTime L fun (inputLength : ) => decisionTimeBound tm inputLength (T inputLength)
theorem Complexity.RAM.TMConfig.Sparse.mem_DTIME_of_decidesInTime_internal {n : } {tm : TM n} {L : Language} {T : } (hdecides : tm.DecidesInTime L T) :
L DTIME fun (inputLength : ) => decisionTimeBound tm inputLength (T inputLength)

Pointwise domination by the evaluation of a natural polynomial.

Equations
Instances For
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.id :
    PolyBound fun (inputLength : ) => inputLength
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.add {f g : } (hf : PolyBound f) (hg : PolyBound g) :
    PolyBound fun (inputLength : ) => f inputLength + g inputLength
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.mul {f g : } (hf : PolyBound f) (hg : PolyBound g) :
    PolyBound fun (inputLength : ) => f inputLength * g inputLength
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.mono {f g : } (hg : PolyBound g) (hle : ∀ (inputLength : ), f inputLength g inputLength) :
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.max {f g : } (hf : PolyBound f) (hg : PolyBound g) :
    PolyBound fun (inputLength : ) => Max.max (f inputLength) (g inputLength)
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.width {f : } (hf : PolyBound f) :
    PolyBound fun (inputLength : ) => bitlen (f inputLength) + 1
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.registerBound (workTapes : ) {f : } (hf : PolyBound f) :
    PolyBound fun (inputLength : ) => Sparse.registerBound workTapes (f inputLength)
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.wordBound {n : } (tm : TM n) {f : } (hf : PolyBound f) :
    PolyBound fun (inputLength : ) => Sparse.wordBound tm (f inputLength)
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.wordWidth {n : } (tm : TM n) {f : } (hf : PolyBound f) :
    PolyBound fun (inputLength : ) => Sparse.wordWidth tm (f inputLength)
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.marshalBaseBound (workTapes : ) :
    PolyBound fun (inputLength : ) => Sparse.marshalBaseBound workTapes inputLength
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.marshalBound (workTapes : ) :
    PolyBound fun (inputLength : ) => Sparse.marshalBound workTapes inputLength
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.marshalBaseWidth (workTapes : ) :
    PolyBound fun (inputLength : ) => Sparse.marshalBaseWidth workTapes inputLength
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.marshalWidth (workTapes : ) :
    PolyBound fun (inputLength : ) => Sparse.marshalWidth workTapes inputLength
    theorem Complexity.RAM.TMConfig.Sparse.PolyBound.decisionTimeBound {n : } (tm : TM n) {T : } (hT : PolyBound T) :
    PolyBound fun (inputLength : ) => Sparse.decisionTimeBound tm inputLength (T inputLength)