Documentation

Complexity.Computability.Machines.Turing.MultiTape.OutView

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 #

Main results #

inductive Turing.OutView :

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.

Instances For
    def Turing.instDecidableEqOutView.decEq (x✝ x✝¹ : OutView) :
    Decidable (x✝ = x✝¹)
    Instances For
      @[instance_reducible]

      The view of an output word.

      Instances For

        The view after emitting an optional symbol.

        Instances For

          All four views.

          Instances For

            The index of an output view, for numbering.

            Instances For
              @[simp]

              The output view with a given index (0 for empty, 1 for one false, 2 for one true, and many otherwise).

              Instances For
                theorem Turing.OutView.index_ofIndex {m : ℕ} (hm : m < 4) :