Tape-symbol acceptance equals state acceptance #
This file proves that the tape-acceptance characterization is_Recursive_byTape
(defined in Automata.Recursive.Basic.TapeCharacterization) agrees with the
state-based is_Recursive: is_Recursive_byTape L → is_Recursive L.
The forward direction is the useful one — it lets a construction that produces the
decision on the tape (which is what the Code → TM translation chain exposes) be
repackaged into the state-based is_Recursive.
Construction #
Given a machine M that halts with the answer under the head, readerMachine M acceptSym runs M; the instant M would halt it instead reads the current symbol
γ and moves to the distinguished halting state Sum.inr (decide (γ = acceptSym)),
which records the verdict. The acceptance predicate just reads that Boolean off the
state.
Lift a TM0 configuration to the reader's state space Λ ⊕ Bool.
Instances For
Turn a machine that signals acceptance by leaving acceptSym under the head into
one that signals acceptance by its final state. When M would halt, the reader reads
the current symbol and halts in state Sum.inr b where b records whether the symbol
was acceptSym.
Equations
- One or more equations did not get rendered due to their size.
- AcceptByTape.readerMachine M acceptSym (Sum.inr val) γ = none
Instances For
The state-based acceptance predicate of the reader.
Equations
- AcceptByTape.readerAccept (Sum.inl q_1) = false
- AcceptByTape.readerAccept (Sum.inr val) = val
Instances For
The reader halts whenever M does, and its final state records whether the
symbol under the head at M's halting configuration was acceptSym.
The two conventions agree #
Tape acceptance implies state acceptance: every is_Recursive_byTape language is
is_Recursive.