Polynomial-time finite configuration operations #
Ordinary and oracle structure construction, observations, fixed native actions, channel
replies and initialization are certified in plain polynomial time
(Turing.MultiTapeTM.ComputableInPolyTime), by composition of pair, list, table and tape rules.
Copying the input, work tapes, accumulated output and every channel is charged by their
encodings. Tidy forms of the observations and oracle transitions, derived from the plain rules,
remain for the tidy proofs that still use them.
Main results #
Turing.MultiTapeTM.ComputableInPolyTime.finiteCfg_state,.finiteCfg_inputSymbol,.finiteCfg_workTapeSymbols,.finiteCfg_output: plain observations.Turing.MultiTapeTM.ComputableInPolyTime.finiteCfg_step: execute a fixed native action.Turing.MultiTapeTM.ComputableInPolyTime.finiteCfg_init: initialize finite storage.Turing.MultiTapeTM.ComputableInPolyTime.finiteConfig_mk,.finiteConfig_tapes,.finiteConfig_channels,.finiteConfig_answerSymbols: assemble and observe oracle storage.Turing.MultiTapeTM.ComputableInPolyTime.finiteConfig_step,.finiteConfig_receive: local transitions and channel reset with a computed reply.Turing.MultiTapeTM.ComputableInPolyTime.finiteConfig_init: initialize oracle storage.
References #
Adapts Computability/Probabilistic/Configuration.lean on the cslib crypto branch at
5ff69ca93402e7c947208dc56396d6d86203ccd8 to plain polynomial time.
Assemble an ordinary configuration from its certified components.
Read the stored input word.
Read the finite control.
Read the input head's unary position.
Read the complete family of work tapes.
Read all accumulated output.
Observe the read-only input, including both blank boundary cells.
Observe all work heads as a single fixed finite value.
Clamped native input-head movement is efficient on the stored unary position.
Execute a fixed ordinary native action, including all retained storage.
Initialize with the native input-head convention and blank work tapes.
Assemble ordinary storage and its family of oracle channels.
Execute a fixed local action, including all pending requests and stored answers.
Install a computed reply, clear its selected request and retain all other channels.
Initialize every channel with an empty request and blank answer tape.
Read the finite control.
Read all accumulated output.
Observe the read-only input, including both blank boundary cells.
Observe all work heads as a single fixed finite value.
Execute a fixed local action, including all pending requests and stored answers.
Install a computed reply, clear its selected request and retain all other channels.
Initialize every channel with an empty request and blank answer tape.