Reusing the binary-track source simulation #
The marked-input machine embeds the existing simulator's control after copying. Mapping source symbols to a tagged alphabet adds no source transitions.
Embed a source configuration in the alphabet with unused raw-bit symbols.
Equations
- M.sourceCfg c = Turing.TM0.Cfg.map { f := Complexity.MathlibTM0.MarkedMachine.Symbol.source, map_pt' := ⋯ } id c
Instances For
theorem
Complexity.MathlibTM0.MarkedMachine.source_init
(M : MarkedMachine)
(cells : List M.Alphabet)
:
def
Complexity.MathlibTM0.MarkedMachine.liftCfg
(M : MarkedMachine)
{w : List Bool}
(d : Turing.Cfg (Fintype.card M.binary.Alphabet) Bool (Control M.State) w)
:
Turing.Cfg (Fintype.card M.binary.Alphabet) Bool M.TargetState w
Embed a configuration of the existing simulator in the marked-input machine.
Equations
- M.liftCfg d = Turing.Cfg.mapState (Option.map Sum.inr) d
Instances For
theorem
Complexity.MathlibTM0.MarkedMachine.lift_step
(M : MarkedMachine)
{w : List Bool}
(d : Turing.Cfg (Fintype.card M.binary.Alphabet) Bool (Control M.State) w)
:
theorem
Complexity.MathlibTM0.MarkedMachine.lift_run
(M : MarkedMachine)
{w : List Bool}
(d : Turing.Cfg (Fintype.card M.binary.Alphabet) Bool (Control M.State) w)
(t : ℕ)
: