The output tape up to two symbols #
A decision procedure halts with output [b]. Since the output tape is append-only, whether a run
has produced exactly one symbol, and which one, is determined by a four-valued summary of the
output written so far (Turing.OutView): nothing, one symbol b, or more than one. The summary
is updated symbol by symbol (Turing.OutView.push), which is what lets reductions and circuit
simulations track acceptance with a bounded amount of information per time step.
Main definitions #
Turing.OutView,Turing.OutView.ofList,Turing.OutView.push.Turing.OutView.index,Turing.OutView.ofIndex: numbering output views as0, 1, 2, 3.
Main results #
Turing.OutView.ofList_append_toList: summarising commutes with emitting a symbol.Turing.OutView.ofList_eq_one_iff: the summary isone bexactly for the output[b].Turing.OutView.ofIndex_index,Turing.OutView.index_ofIndex: round-trip between output views and indices below4.
What has been written on the output tape: nothing, a single symbol, or more than one. A
decision procedure halts with output [b], and since the output tape is append-only this view is
all that has to be tracked to see the answer.
- empty : OutView
Nothing has been written.
- one (b : Bool) : OutView
Exactly one symbol has been written.
- many : OutView
At least two symbols have been written.