Simulating instructions by bounded blocks #
A machine transformation can implement each source instruction with a fixed block of target instructions. The simulation preserves the joint distribution of machine configuration and private interpreter state. Its configuration embedding may change after each block, for example to track a clock head. Source and target may use different alphabets, tapes, channels and choices; their programs use the same typed effect interface.
The one-block hypothesis includes halted configurations, so padding a halted source is simulated correctly. The source need not halt before its external clock expires.
Main results #
Turing.MultiTapeMachine.runConfigFrom_map: one-instruction simulation preserves the entire typed program, before interpretation.Turing.MultiTapeMachine.runConfigFrom_mapState: commuting transition tables preserve clocked execution under a possibly noninjective control-state relabelling.Turing.MultiTapeMachine.run_interpret_runConfigFrom_mul_indexed: bounded block simulation with a changing configuration embedding.Turing.MultiTapeMachine.run_interpret_runConfigFrom_mul: the fixed-embedding specialization.
References #
Adapted from MultiTape/Oracle/Simulation.lean on the cslib crypto branch at
5ff69ca93402e7c947208dc56396d6d86203ccd8 to the common machine and typed program interface.
A one-instruction program simulation preserves every clocked run. The hypothesis includes halted configurations, and the embedding may change the tape alphabet and input word.
Relabelling control preserves the full clocked program when transition tables commute. The map need not be injective: the table equation must hold at every source state, including states identified by the map. Halting is preserved, and the fuel and query handler are unchanged.
A bounded simulation may update its embedding after each source instruction. All private interpreter state is retained, including state shared by coin and oracle programs.
Simulating one instruction by a block of delay instructions preserves every bounded run.