Documentation

MIPRE.TM.CookLevin.Params

The parameters of the describer: the check circuit and the tableau length #

Two constants and one choice.

The check circuit #

The local check predicate of the interpreter machine as a Boolean function of the window bits, in the canonical order.

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    The check circuit of the interpreter machine: a truth-table circuit of chkFun, taken from Fml.exists_circuit. It is never unfolded: its defining term mentions Fintype.card (WinVar 7 6 Sym Ctl), whose evaluation does not terminate in practice.

    Equations
    Instances For
      noncomputable def MIPRE.TM.CookLevin.Desc.Gc :

      The number of gates of the check circuit.

      Equations
      Instances For

        The check circuit computes the local check predicate: the hypothesis of the correctness of the tableau (IsCheckCircuit, lem:correct-tableau).

        The tableau length #

        theorem MIPRE.TM.CookLevin.Desc.mul_le_mul_pow {a b c d i j M : ℕ} (ha : a ≤ c * M ^ i) (hb : b ≤ d * M ^ j) :
        a * b ≤ c * d * M ^ (i + j)

        a ≤ c · M ^ i and b ≤ d · M ^ j give a · b ≤ c d · M ^ (i + j).

        theorem MIPRE.TM.CookLevin.Desc.le_mul_pow_of_le {a c i j M : ℕ} (hM : 1 ≤ M) (h : a ≤ c * M ^ i) (hij : i ≤ j) :
        a ≤ c * M ^ j

        Raising the exponent of a majorant.

        theorem MIPRE.TM.CookLevin.Desc.runBound_le (D : Cost.Prog) (n T Q σ : ℕ) (x y a b : Cost.BitStr) (hV : SAT.Valid D n T Q σ x y) (ha : List.length a ≤ T) (hb : List.length b ≤ T) :
        Interp.runBound D n x y a b T ≤ 400000 * (T + σ + 1) ^ 5

        A fifth-power majorant of the run bound of the interpreter machine under the validity hypotheses and |a|, |b| ≤ T.

        The exponent of the tableau length: 5 (⌈log T⌉ + ⌈log σ⌉) + 24.

        Equations
        Instances For
          theorem MIPRE.TM.CookLevin.Desc.sum_le_two_pow (T σ : ℕ) :
          T + σ + 1 ≤ 2 ^ (T.size + σ.size + 1)
          theorem MIPRE.TM.CookLevin.Desc.runBound_le_two_pow (D : Cost.Prog) (n T Q σ : ℕ) (x y a b : Cost.BitStr) (hV : SAT.Valid D n T Q σ x y) (ha : List.length a ≤ T) (hb : List.length b ≤ T) :
          Interp.runBound D n x y a b T ≤ Sof (eOf T σ)

          The run of the interpreter machine fits in the tableau: under the validity hypotheses and |a|, |b| ≤ T, its accepting run is at most Sof (eOf T σ) steps.