Word-configuration phases and tidy probabilistic oracle specifications #
RunsWords and ComputesTidily express that a probabilistic oracle machine starts from a word
configuration with empty query buffers, halts within a strict step bound with empty query buffers,
and realizes the exact joint distribution of resulting tape words, emitted output and external
oracle state.
Main definitions #
Turing.MultiTapePTM.runOracleConfigFrom: clocked configuration run with fair coins and named word queries.Turing.MultiTapePTM.RunsWords: word-configuration phase specification preserving external oracle state and empty query buffers.Turing.MultiTapePTM.ComputesTidily: tidy computation from blank work tapes to blank work tapes.
Main results #
Turing.MultiTapePTM.RunsWords.of_transformsTapes: lift deterministicTransformsTapesphases.Turing.MultiTapePTM.RunsWords.seq_bind: sequence twoRunsWordsphases.Turing.MultiTapePTM.RunsWords.of_nil_output: an initial output prefix is retained automatically.Turing.MultiTapePTM.RunsWords.of_first_step_mapState: lift aRunsWordsspecification across a deterministic first-step dispatch into a state-mapped submachine.Turing.MultiTapePTM.ComputesTidily.length_output_le: any supported output of a tidy run has length at most the step budget.
References #
RunsWords and ComputesTidily adapt the deterministic TransformsTapes and tidy-machine
notions of cslib's Plumbing/TransformsTapes and Plumbing/Tidy, by Christian Reitwiessner, in
the run form of crei:crei/tidy-universal @7f7c0696, to the probabilistic oracle machines of the
cslib crypto branch at 5ff69ca93402e7c947208dc56396d6d86203ccd8.
tapeOfList is injective on words.
A wordsCfg uniquely determines its work-tape words and the suffix appended to out₀.
Retain the complete configuration of an open fair-coin run with external word queries.
Instances For
runOracle is the output projection of runOracleConfigFrom from the initial configuration.
Drawing one fair bit in ProbOracleComp leaves the external oracle state unchanged.
Padding a halted oracle run preserves the joint configuration and external state distribution.
Any larger clock gives the same joint configuration and external state distribution after a halting bound.
A deterministic machine embedded in MultiTapePTM preserves channels and external state.
Sequencing law for runOracleConfigFrom when both phases halt on all supported paths.
A live step whose transition does not depend on the coin bit advances the configuration deterministically while preserving the external oracle state.
A live query step whose transition does not depend on the coin bit submits the accumulated
query on op and continues from the updated configuration.
Starting from a wordsCfg with empty query buffers, machine halts within time steps with
empty query buffers, realizing program on the work tapes and emitted output while preserving the
joint distribution with any external oracle state.
Instances For
A tidy probabilistic oracle computation starts with blank work tapes and empty query buffers,
and halts within time steps with blank work tapes, empty query buffers, the input head back at
position 1, and program's output appended to the output tape.
Instances For
Every supported final configuration of a RunsWords phase has halted.
Every supported final configuration of a RunsWords phase has the declared tapes and
clean query buffers for some supported value of program.
Increasing the step budget preserves RunsWords.
Replace program by a stateful-distributionally equivalent program.
Map a function across the program result when the tape and output maps factor through it.
Lift a deterministic TransformsTapes specification to ofDeterministic.
Sequence two RunsWords phases when the first phase's resulting tape/output configuration
uniquely identifies its program value.
Sequence a deterministic pure () preparation phase before a RunsWords continuation.
Sequence a deterministic pure () cleanup phase after a RunsWords phase.
RunsWords for arbitrary out₀ follows from the out₀ = [] case by output-prefix
invariance (runConfigFrom_prependOutput).
If machine's first step from wordsCfg x (some machine.initial) ws₀ out₀ is a deterministic
no-op transition into f tm.initial, and machine thereafter simulates tm via f, then any
RunsWords specification of tm lifts to machine in time + 1 steps.
ComputesTidily is equivalent to RunsWords with out₀ = [].
Over fuel steps of runOracleConfigFrom, the output tape grows by at most fuel symbols.
Any word emitted by a RunsWords phase has length at most time.
Increasing the step budget preserves ComputesTidily.
Replace program by a stateful-distributionally equivalent program.
A tidy machine realizes program under runOracle from initialConfig.
A deterministic tidy machine lifts directly to ComputesTidily via ofDeterministic.
Any supported output of a ComputesTidily machine has length at most time.