PostMachineThue #
Part of the dependency closure of the small undecidable group constructions.
The two head movements of a binary single-tape machine.
Instances For
One binary-machine transition writes a bit, moves once, and enters a new state. This is the machine model used in Post's 1947 construction and in the Coq Library of Undecidability's SBTM-to-rewriting reduction.
- next : Q
The state entered after executing the Post-machine command.
- write : Bool
The Boolean symbol written by the Post-machine command.
- move : Direction
The tape direction taken by the Post-machine command.
Instances For
A deterministic Post-machine transition function, with none representing halting.
Equations
Instances For
The left and right lists are stored nearest-to-the-head first.
- state : Q
The current control state of a Post-machine configuration.
The symbols to the left of the head, ordered from nearest to farthest.
- head : Bool
The Boolean symbol currently under the tape head.
The symbols to the right of the head, ordered from nearest to farthest.
Instances For
The word of tape-symbol letters encoding a Boolean tape segment.
Equations
Instances For
The two-marker target word reached by the halting simulation.
Equations
Instances For
Post's rules. The first three constructors clean a halted configuration; the remaining four simulate one boundary case and one interior case for each head direction.
- halt {Q : Type u_1} {M : Machine Q} {q : Q} {a : Bool} (h : M q a = none) : Rule M [Symbol.leftMarker, Symbol.tape a, Symbol.state q, Symbol.rightMarker] [Symbol.rightMarker, Symbol.leftMarker]
- eraseLeft {Q : Type u_1} {M : Machine Q} {q : Q} {a : Bool} (h : M q a = none) (b : Bool) : Rule M [Symbol.tape b, Symbol.tape a, Symbol.state q] [Symbol.tape a, Symbol.state q]
- eraseRight {Q : Type u_1} {M : Machine Q} {q : Q} {a : Bool} (h : M q a = none) (b : Bool) : Rule M [Symbol.tape a, Symbol.state q, Symbol.tape b] [Symbol.tape a, Symbol.state q]
- moveLeftBoundary {Q : Type u_1} {M : Machine Q} {q : Q} {a : Bool} {q' : Q} {a' : Bool} (h : M q a = some { next := q', write := a', move := Direction.left }) : Rule M [Symbol.leftMarker, Symbol.tape a, Symbol.state q] [Symbol.leftMarker, Symbol.tape false, Symbol.state q', Symbol.tape a']
- moveLeft {Q : Type u_1} {M : Machine Q} {q : Q} {a : Bool} {q' : Q} {a' : Bool} (h : M q a = some { next := q', write := a', move := Direction.left }) (b : Bool) : Rule M [Symbol.tape b, Symbol.tape a, Symbol.state q] [Symbol.tape b, Symbol.state q', Symbol.tape a']
- moveRightBoundary {Q : Type u_1} {M : Machine Q} {q : Q} {a : Bool} {q' : Q} {a' : Bool} (h : M q a = some { next := q', write := a', move := Direction.right }) : Rule M [Symbol.tape a, Symbol.state q, Symbol.rightMarker] [Symbol.tape a', Symbol.tape false, Symbol.state q', Symbol.rightMarker]
- moveRight {Q : Type u_1} {M : Machine Q} {q : Q} {a : Bool} {q' : Q} {a' : Bool} (h : M q a = some { next := q', write := a', move := Direction.right }) (b : Bool) : Rule M [Symbol.tape a, Symbol.state q, Symbol.tape b] [Symbol.tape a', Symbol.tape b, Symbol.state q']
Instances For
The Thue system comprising the Post-machine transition and halting rules.
Equations
Instances For
A machine with finitely many states produces a finite Thue system. The proof bounds the actual rules by seven finite families, without requiring the transition function itself to carry any computability data.
The Boolean predicate recognizing control-state letters in the encoded alphabet.
Equations
Instances For
The number of control-state letters in an encoded word.
Instances For
The Boolean marker encoding of a boundary letter, empty for other letters.
Equations
Instances For
The boundary-marker sequence extracted from an encoded word.
Instances For
The complete machine-to-fixed-target symmetric-Thue coding.
Equations
- One or more equations did not get rendered due to their size.