Documentation

MIPRE.TM.CookLevin.Kinds

The kinds of variables, on fields and as formulas #

For the fields F of an index, the predicates IsCell, IsHead, … saying that F denotes a variable of that kind (with its range checks), the characterization of decodeVar by them (decodeVar_cell_iff, …), and the formulas computing all of these on the field formulas of a literal (isCellF, numEqF, …) with their semantics (planning/succinct-cook-levin.md, S3).

Numeric equality of fields #

The lengths of the field formulas of a literal.

Instances For

    The formula: the numeric fields of A and B agree.

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

      Kinds #

      The fields denote a cell variable.

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

        The fields denote a head variable.

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

          The fields denote a state variable.

          Equations
          Instances For

            The fields denote an emitOne variable.

            Equations
            Instances For

              The fields denote an emitBad variable.

              Equations
              Instances For

                The fields denote an emitted variable.

                Equations
                Instances For

                  The fields denote a gate variable.

                  Equations
                  Instances For

                    Decoding by kind #

                    theorem MIPRE.TM.CookLevin.Desc.decodeVar_cell_iff (e G : ℕ) (F : Fields) (t : Fin (Sof e + 1)) (d : Tape 7 6) (p : Pos (Sof e)) (v : CellVal Interp.Sym) :
                    decodeVar e G F = some (TabVar.cell t d p v) ↔ IsCell e F ∧ F.t = ↑t ∧ F.d = tapeCode d ∧ F.p = ↑p ∧ F.v = symCode v
                    theorem MIPRE.TM.CookLevin.Desc.decodeVar_head_iff (e G : ℕ) (F : Fields) (t : Fin (Sof e + 1)) (d : Tape 7 6) (p : Pos (Sof e)) :
                    decodeVar e G F = some (TabVar.head t d p) ↔ IsHead e F ∧ F.t = ↑t ∧ F.d = tapeCode d ∧ F.p = ↑p
                    theorem MIPRE.TM.CookLevin.Desc.decodeVar_state_iff (e G : ℕ) (F : Fields) (t : Fin (Sof e + 1)) (q : Option Interp.Ctl) :
                    decodeVar e G F = some (TabVar.state t q) ↔ IsState e F ∧ F.t = ↑t ∧ F.q = qCode q
                    theorem MIPRE.TM.CookLevin.Desc.decodeVar_aux_iff (e G : ℕ) (F : Fields) (t : Fin (Sof e)) (js : Tape 7 6 → Center (Sof e)) (g : Fin G) :
                    decodeVar e G F = some (TabVar.aux t js g) ↔ IsAux e G F ∧ F.t = ↑t ∧ (∀ (d : Tape 7 6), F.js ⟨tapeCode d, ⋯⟩ = ↑(js d)) ∧ F.g = ↑g

                    Kinds as formulas #

                    The formula: A denotes a cell variable.

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

                      The formula: A denotes a head variable.

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

                        The formula: A denotes a state variable.

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

                          The formula: A denotes an emitOne variable.

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

                            The formula: A denotes an emitBad variable.

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

                              The formula: A denotes an emitted variable.

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

                                The formula: A denotes a gate variable.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  theorem MIPRE.TM.CookLevin.Desc.eval_eqTag (e G : ℕ) {A : FieldsF} (hA : FieldsF.Lengths e G A) (x : ℕ → Bool) (k : ℕ) (hk : k < 8) :
                                  theorem MIPRE.TM.CookLevin.Desc.eval_ltT (e G : ℕ) {A : FieldsF} (hA : FieldsF.Lengths e G A) (x : ℕ → Bool) (k : ℕ) (hk : k < 2 ^ W e) :
                                  theorem MIPRE.TM.CookLevin.Desc.eval_ltD (e G : ℕ) {A : FieldsF} (hA : FieldsF.Lengths e G A) (x : ℕ → Bool) (k : ℕ) (hk : k < 16) :
                                  theorem MIPRE.TM.CookLevin.Desc.eval_ltP (e G : ℕ) {A : FieldsF} (hA : FieldsF.Lengths e G A) (x : ℕ → Bool) (k : ℕ) (hk : k < 2 ^ W e) :
                                  theorem MIPRE.TM.CookLevin.Desc.eval_ltV (e G : ℕ) {A : FieldsF} (hA : FieldsF.Lengths e G A) (x : ℕ → Bool) (k : ℕ) (hk : k < 8) :
                                  theorem MIPRE.TM.CookLevin.Desc.eval_isAuxF (e G : ℕ) {A : FieldsF} (hA : FieldsF.Lengths e G A) (x : ℕ → Bool) :