Running the common machine with finite data #
The finite interpreter executes the unchanged transition table using cslib's existing tapes.
Its choice and query handlers are the same typed programs as the native interpreter's handlers.
The bounded loop is an ordinary OracleComp.iterate program.
Equality of the resulting programs preserves every sampling and external interaction, including the complete private state of any later interpreter. The representation theorem is independent of efficient handlers or finite control. Efficient encoded realization remains subsequent work.
Main definitions #
Turing.MultiTapeMachine.finiteStep: one native instruction on finite storage.Turing.MultiTapeMachine.finiteRunFrom: a bounded loop followed by output projection.
Main results #
Turing.MultiTapeMachine.finiteRunFrom_eq: exact agreement with the native output program.Turing.MultiTapeMachine.finiteRunFrom_init: agreement from blank initial storage.
References #
Generalizes Computability/Machines/Turing/MultiTape/Probabilistic/Finite.lean on the cslib
crypto branch at 5ff69ca93402e7c947208dc56396d6d86203ccd8 to the common choice mechanism.
One native transition on finite storage, using the original choice and external handlers. A halted configuration remains unchanged without either effect.
Instances For
Execute a bounded functional loop and observe its accumulated output.
Instances For
The finite and native interpreters return the very same typed program. In particular, they preserve private state for every later interpretation of choices and oracle calls.
Finite blank storage realizes the standard native run, with identical choice and query programs and no assumptions on their distributions.