An auxiliary tape for machine controllers #
A controller can retain a source configuration, including its oracle channels, alongside a phase in finite control and an additional work tape. Clocks use a Boolean phase; saved-coin replay uses an optional bit. The source's tape actions and oracle replies keep their original effects.
Main definitions #
Turing.MultiTapeMachine.AuxiliaryTape.config: retain source data with a controller phase.Turing.MultiTapeMachine.AuxiliaryTape.move: change control and move the extra head.Turing.MultiTapeMachine.AuxiliaryTape.liftAction: retain the extra tape during a source action.Turing.MultiTapeMachine.AuxiliaryTape.stopped: halt while retaining source data and channels.
Main results #
Turing.MultiTapeMachine.AuxiliaryTape.step_liftAction: retain source tape and channel effects.Turing.MultiTapeMachine.AuxiliaryTape.step_move: move only the additional head.
References #
Generalizes the shared controller operations from MultiTape.Machine.Clock, adapted there from
MultiTape/Oracle/Clock.lean on the cslib crypto branch at
5ff69ca93402e7c947208dc56396d6d86203ccd8.
Perform a source tape action and select the next phase, retaining the auxiliary tape.
Instances For
Lifting a source action preserves its tape and communication effects.
Receiving a reply changes exactly the source channel and control.
Moving the auxiliary head leaves source data and communication channels unchanged.