Tapes holding words and configurations of such tapes #
The normal form in which "tape transformer" machines (cf. TransformsTapes.lean) start and finish:
every work tape holds a word in the cells 0, 1, … and is blank everywhere else, with every head
at the start.
Main definitions #
Turing.tapeOfList: the tape holding exactly a given word.Turing.wordsCfg: the configuration whose tapes hold given words.
@[simp]
@[simp]
Appending one symbol writes precisely the cell after the existing word.
A cell of tapeOfList xs is blank exactly outside the positions 0, …, xs.length - 1.
@[simp]
The blank tape holds the empty word.
The cell at position 0 holds the first symbol of the word.
def Turing.wordsCfg {k : ℕ} {State : Type u_1} {Symbol : Type u_2} (input : List Symbol) (q : Option State) (ws : Fin k → List Symbol) (out : List Symbol) :
Cfg k Symbol State input
The configuration whose work tape i holds exactly the word ws i with its head at the
start, whose input head is at the start of the input, in state q with output out.
Instances For
@[simp]
theorem Turing.mapState_wordsCfg {k : ℕ} {State : Type u_1} {Symbol : Type u_2} {State' : Type u_3} (φ : Option State → Option State') (input : List Symbol) (q : Option State) (ws : Fin k → List Symbol) (out : List Symbol) :
Remapping the state of a wordsCfg remaps its state and leaves the words alone.