Documentation

Complexity.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 #

@[reducible, inline]

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

Instances For

    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
        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.