Deterministic machines inside probabilistic programs #
The embedding ignores each coin and never submits a query. With a stateless coin interpretation, it preserves the entire communication state and every oracle's private state. The number of instructions, ordinary tapes and output agree exactly with the upstream deterministic run.
Adapted from the cslib crypto branch's Oracle/Deterministic.lean at
5ff69ca93402e7c947208dc56396d6d86203ccd8, for the common machine and typed program interface.
Main definitions #
Turing.MultiTapePTM.ofDeterministic: repeat the deterministic action on both coin branches.
Main results #
Turing.MultiTapePTM.run_interpret_ofDeterministic: preserve joint output and private state.Turing.MultiTapePTM.eval_runClosed_ofDeterministic: the closed deterministic run distribution.
Ignore the coin and oracle channels, retaining the deterministic states and ordinary tapes.
Instances For
A deterministic embedding leaves all channels and the oracle's private state unchanged. The coin may have any fixed distribution, provided drawing it has no effect on private state.
The output of a deterministic embedding agrees with upstream and leaves private state intact.
Closed fair-coin execution of a deterministic embedding has a point-mass output distribution.