Documentation

CslibFrontier.Computability.Machines.Turing.MultiTape.Universal.Bound

The size of the simulated configurations #

After j steps, the configuration of the simulation is bounded in the length of the encoded description, the length of the input and j: the state and all symbols on the work tapes and the output are numbers from the description, the input head stays on the input, every head moves by at most one cell per step, and every zipper grows by at most two cells per step.

Main definitions #

Main results #

Numbers in the description #

A symbol is at most the length of its encoding.

@[reducible, inline]

The length of the encoded description, which bounds all numbers in it.

Instances For

    An action of a transition of a description is encoded within its length.

    The next state of a transition of a description is within its length.

    The output symbol of a transition of a description is within its length.

    theorem Turing.MultiTapeTM.Universal.write_le {d : Desc} {e : Key × Act} (he : e ∈ d.table) {ta : TapeAct} (hta : ta ∈ e.2.workTapes) :
    (ta.1.getD none).getD 0 ≤ descLen d

    A symbol written by a transition of a description is within its length.

    The initial state of a description is within its length.

    The number of work tapes of a description is within its length.

    The number of transitions of a description is within its length.

    The invariant #

    A work tape after at most j steps, with symbols at most D: the head is within [-j, j] and the zipper holds at most 2 * j cells.

    Instances For
      structure Turing.MultiTapeTM.Universal.Inv (D X j : ℕ) (c : SCfg) :

      A configuration after at most j steps, for a description of length D and an input of length X.

      Instances For

        The initial configuration satisfies the invariant.

        theorem Turing.MultiTapeTM.Universal.Inv.apply {d : Desc} {x : List ℕ} {j : ℕ} {c : SCfg} (h : Inv (descLen d) x.length j c) {e : Key × Act} (he : e ∈ d.table) :
        Inv (descLen d) x.length (j + 1) (e.2.apply x c)

        Firing an entry of the description preserves the invariant, with one more step.

        theorem Turing.MultiTapeTM.Universal.inv_iterate (d : Desc) (x : List ℕ) (j : ℕ) :
        Inv (descLen d) x.length j ((stepOut d x)^[j] (init d, [])).1 ∧ ((stepOut d x)^[j] (init d, [])).2.length ≤ j ∧ ∀ o ∈ ((stepOut d x)^[j] (init d, [])).2, o ≤ descLen d

        The configuration and the output after j steps.

        The size bound #

        theorem Turing.MultiTapeTM.Universal.length_cells_le {D : ℕ} {l : List (Option ℕ)} (h : ∀ o ∈ l, o.getD 0 ≤ D) :
        ((encList eSym) l).length ≤ l.length * (2 * D + 3)
        @[reducible, inline]

        The bound on the encoded work tapes.

        Instances For
          @[reducible, inline]

          The bound on the encoded configurations, after j steps.

          Instances For

            The size of the simulated configurations after j steps.

            The time of a step #

            @[reducible, inline]

            The bound on the context of a step after j steps, for a description of length D and an input of encoded length N.

            Instances For

              The bound on the time of a step after j steps, for a description of length D and an input of encoded length N: Turing.MultiTapeTM.Universal.stepTime at the largest sizes the invariant allows.

              Instances For
                theorem Turing.MultiTapeTM.Universal.stepBound_mono {D N j D' N' j' : ℕ} (hD : D ≤ D') (hN : N ≤ N') (hj : j ≤ j') :
                stepBound D N j ≤ stepBound D' N' j'

                The time of a step after j steps, in the length of the description, the length of the encoded input and j.