Generic universal-machine interfaces #
This module gives machine-independent definitions of semantic and efficient universality. A simulation compiler acts on arbitrary binary programs; its correctness does not mention a concrete description codec. Additive description overhead and an explicit program-sensitive clock are separate reusable hypotheses.
The default IsEfficientlyUniversal policy asks for a polynomial in source
running time and source-program length. IsEfficientlyUniversalFor remains
available for sharper policies.
Main results #
TM.Simulates.refl,TM.Simulates.comp-- semantic simulation is compositionalTM.HasAdditiveProgramOverhead.comp-- additive compiler costs composeTM.SimulatesInTime.comp-- exact simulation clocks composeTM.PolynomialTimeOverhead.comp-- polynomial clocks survive compilationTM.IsEfficientlyUniversalFor.isUniversal-- efficient implies semanticTM.Simulates.isUniversal-- universality transfers through a simulator
Semantic simulations compose, with the inner compiler applied first.
The identity compiler has zero additive program overhead.
A larger additive constant preserves a compiler-length bound.
Additive compiler-length bounds compose by addition.
Identity execution has the identity time overhead.
Enlarging a simulation clock preserves a timed simulation.
Timed simulations compose by feeding the inner compiled program and clock to the outer clock.
The identity clock is polynomial.
Polynomial clocks compose through a compiler with additive length overhead.
Universality for any admissible time policy implies semantic universality.
Polynomially efficient universality implies semantic universality.
Weakening the admissibility policy preserves efficient universality.
A simulator of a universal machine is itself universal.