Documentation

MIPRE.Tailored.ClassPolyTab

The paper's class TMIP* is contained in the computable one: tabulation #

TMIPStar L → TMIPStarComputable L, hence TMIPStar ⊆ RE through TMIPStarComputable.isRE, as Foundations/ClassMIPStarTab.lean gives it for MIP*. On the input z, run the three programs of a polynomial-time tailored verifier under the budgets Efficient supplies and write the doubled game (V.tgame z).doubled down as a TailoredGameData (tabOfP):

presents_tabOfP: on an efficient input the tabulation presents the doubled game, so it has a perfect ZPC strategy when the doubled game does and the value of the game (MIPRE.Tailored.Presents).

The table #

The question at the vertex v: the (v mod N)-th string of length at most T, the vertex of the tagged question (tg, x) being qIdx T tg x = idxOf x + N · tg.

Equations
Instances For

    The length the calculator outputs on (z, x, κ) under the budget P(|z| + |x|), read in unary; 0 when the budget is missed.

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

      The constraints the processor outputs on (z, x, y, a^R, b^R) under the budget P(|z| + |x| + |y| + |a^R| + |b^R|); [] when the budget is missed.

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

        The lengths at the vertices.

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

          The constraint entries at a pair of vertices and a readable part.

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

            The constraint entries.

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

              The table of the doubled game of a polynomial-time tailored verifier, from its three programs and its polynomial: the vertices and weights of PolyVerifier.tabOf, the lengths and constraints by budgeted runs.

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

                The table is primitive recursive in the input #

                theorem MIPRE.Tailored.primrec_lenRunP (ld : Cost.Data) (P : Polynomial ℕ) (κ : Bool) :
                Primrec fun (q : Cost.BitStr × Cost.BitStr) => lenRunP ld P q.1 q.2 κ
                theorem MIPRE.Tailored.primrec_lpRunP (pd : Cost.Data) (P : Polynomial ℕ) {α : Type u_1} [Primcodable α] {z x y aR bR : α → Cost.BitStr} (hz : Primrec z) (hx : Primrec x) (hy : Primrec y) (haR : Primrec aR) (hbR : Primrec bR) :
                Primrec fun (a : α) => lpRunP pd P (z a) (x a) (y a) (aR a) (bR a)
                theorem MIPRE.Tailored.primrec_consAtP (pd : Cost.Data) (P : Polynomial ℕ) :
                Primrec fun (q : ((Cost.BitStr × List ℕ) × ℕ × ℕ) × Cost.BitStr) => consAtP pd P q.1.1.1 q.1.1.2 q.1.2.1 q.1.2.2 q.2
                theorem MIPRE.Tailored.primrec_tabOfP (sd ld pd : Cost.Data) (P : Polynomial ℕ) :
                Primrec (tabOfP sd ld pd P)

                The table is primitive recursive in the input.

                The vertices #

                theorem MIPRE.Tailored.qOfIdx_qEquiv (T : ℕ) (i : Fin (2 * PolyVerifier.N T)) :
                qOfIdx T ↑i = ↑((PolyVerifier.qEquiv T) i).2

                The question of the vertex i of qEquiv is the string it names.

                The runs, under the efficiency bounds #

                theorem MIPRE.Tailored.TPolyVerifier.consOf_eq_lpRunP (V : TPolyVerifier) {z : Cost.BitStr} (h : V.Efficient z) (x y aR bR : Cost.BitStr) :
                V.consOf z x y aR bR = lpRunP (Cost.encode V.lp) V.bound z x y aR bR

                The presentation #

                The vertices of the table, as the doubled questions: PolyVerifier.eX.

                Equations
                Instances For
                  theorem MIPRE.Tailored.TPolyVerifier.qOfIdx_eP (V : TPolyVerifier) (z : Cost.BitStr) (i : Fin ((V.tabP z).nV + 1)) :
                  qOfIdx (V.B z) ↑i = ↑((V.eP z) i).2
                  theorem MIPRE.Tailored.TPolyVerifier.lenList_getD_eP (V : TPolyVerifier) (z : Cost.BitStr) (κ : Bool) (i : Fin ((V.tabP z).nV + 1)) :
                  (lenListP (Cost.encode V.len) V.bound z κ).getD (↑i) 0 = lenRunP (Cost.encode V.len) V.bound z (↑((V.eP z) i).2) κ

                  The table presents the doubled game, on an efficient input.

                  TMIP* ⊆ TMIP*_computable: the table of the doubled game is a computable map with a perfect ZPC strategy on the members and the value of the game off them.

                  TMIP* ⊆ RE (II:1838), for the paper's class.