Documentation

MIPRE.Foundations.SAT.Pcp

The bespoke PCP for deciders: the statement #

MIPRE.SAT.PcpDecider is blueprint thm:pcp-decider โ€” the paper's theorem of the same name in answer_reduction.tex โ€” the classical half of answer reduction: a verifier that, given a decider specification and a PCP view (a point z โˆˆ ๐”ฝ_q^{m'} and a claimed evaluation of the proof at z), accepts an honest low-degree proof with probability 1 and forces any low-degree proof accepted with probability more than 1/2 to encode answers the decider accepts. It consumes lem:decoupled-5sat โ€” the decoupled 5SAT description of the decider is what the proof's constraint polynomials arithmetize โ€” and lem:schwartz-zippel.

Stated here, before anything is proved, so that the consumers in chapter 6 (ld_compiler.tex's typed PCP sampler, and thm:answer-reduction through it) can be written against it, exactly as SuccinctCookLevin and DecoupledDescriber were stated before being inhabited.

What the statement needs #

Two things this statement carries, and one it does not #

It carries the blueprint's repair of a confirmed source defect (rem:pcp-power-of-two): both m and m' are required to be powers of two dividing q, where the source's padding guarantees it only for the outer m'. Without the inner one the conditionally linear functions of the m-variate test's lines are ill defined.

It does not carry the source's lower bound on q (eq:pcp-q-choice, q โ‰ฅ (max\{Q,2\} ยท a'(d m'(m'+6))^{a'})^{1/b'}), which is stated in terms of the universal constants of thm:lidt-cl-soundness and is consumed not here but in ld_compiler.tex, where the answer-reduced verifier's soundness error is assembled. The blueprint's statement of thm:pcp-decider does not state it either; when the consumer is written it will need to be added here or re-derived there, and that is a deliberate gap rather than an oversight.

One convention fixed here #

The paper identifies {0,1}^m with {1, โ€ฆ, M}, M = 2^m, "using, say, the lexicographic ordering on strings". Any fixed bijection will do, and the one fixed here is the repository's existing little-endian bitsVal/bitsOfNat convention (Cost.bitsVal (List.ofFn w)), so that the low-degree encoding of an answer block agrees with the tape indexing tapeBits that thm:succinct-sat and lem:decoupled-5sat already use. The choice is invisible to the statement's content, since the same bijection appears in the encoding and in the decoding.

Admissible fields with a bit representation #

structure MIPRE.SAT.BinField (k : โ„•) :

A field of size 2^k together with a fixed k-bit representation of its elements.

Instances For
    def MIPRE.SAT.BinField.vecBits {k : โ„•} (E : BinField k) {n : โ„•} (v : Fin n โ†’ E.carrier) :

    A vector of field elements as a list of k-bit blocks.

    Equations
    Instances For
      @[simp]
      theorem MIPRE.SAT.BinField.length_vecBits {k : โ„•} (E : BinField k) {n : โ„•} (v : Fin n โ†’ E.carrier) :
      (E.vecBits v).length = n
      theorem MIPRE.SAT.BinField.width_vecBits {k : โ„•} (E : BinField k) {n : โ„•} (v : Fin n โ†’ E.carrier) {b : Cost.BitStr} (hb : b โˆˆ E.vecBits v) :

      The parameters #

      The PCP parameters (q, m, d, m', s) = pcpparams(n, T, Q, ฯƒ) of def:pcpparams. Only k, m, s are data: q = 2^k, d = 7 and m' = 5m + 5 + s.

      • q = 2^k, k odd for an admissible field size.

      • The number of variables of the answer polynomials; M = 2^m โ‰ฅ 2T.

      • The number of auxiliary variables supplied by the padded succinct describer.

      Instances For

        The individual degree bound of the proof polynomials, d = 7.

        Equations
        Instances For

          The field size q = 2^k.

          Equations
          Instances For

            The number of variables of the constraint polynomials, m' = 5m + 5 + s.

            Equations
            Instances For
              def MIPRE.SAT.PcpParams.block (P : PcpParams) {F : Type u_1} (i : Fin 5) (z : Fin P.m' โ†’ F) :
              Fin P.m โ†’ F

              The i-th of the five m-coordinate blocks xโ‚, โ€ฆ, xโ‚… of a point of F^{m'}.

              Equations
              Instances For

                Proofs and views #

                structure MIPRE.SAT.PcpProof (P : PcpParams) (F : Type u_1) [CommRing F] :
                Type u_1

                A low-degree PCP proof (def:pcp-proof): five m-variate polynomials gโ‚ โ€ฆ gโ‚… and m' + 1 m'-variate polynomials cโ‚€ โ€ฆ c_{m'}, all of individual degree at most d.

                Instances For
                  def MIPRE.SAT.PcpProof.ev {P : PcpParams} {F : Type u_1} [CommRing F] (pf : PcpProof P F) (z : Fin P.m' โ†’ F) :
                  (Fin 5 โ†’ F) ร— (Fin (P.m' + 1) โ†’ F)

                  ev_z(ฮ ) of def:pcp-eval: the five ฮฑแตข = gแตข(xแตข) and the m' + 1 ฮฒโฑผ = cโฑผ(z).

                  Equations
                  Instances For

                    The honest view at z in the verifier's input format: the bits of z, then the bits of ev_z(ฮ ) with the five ฮฑแตข before the m' + 1 ฮฒโฑผ.

                    Equations
                    Instances For
                      @[reducible, inline]

                      The verifier's input: a decider specification (DescInput) together with a PCP view, the point and the claimed evaluation each a list of k-bit blocks.

                      Equations
                      Instances For
                        def MIPRE.SAT.pcpInput (D : Cost.Prog) (n T Q ฯƒ : โ„•) (x y : Cost.BitStr) (z ev : List Cost.BitStr) :

                        The verifier's input, assembled.

                        Equations
                        Instances For

                          The PCP view is formatted correctly: m' blocks for the point, 6 + m' for the claimed evaluation, each of k bits. Item 1 of the theorem asks the verifier to reject otherwise.

                          Instances For
                            theorem MIPRE.SAT.viewFormat_rawView {P : PcpParams} {k : โ„•} (E : BinField k) (hk : P.k = k) (pf : PcpProof P E.carrier) (z : Fin P.m' โ†’ E.carrier) :

                            The answer blocks as subcube-indexed vectors #

                            def MIPRE.SAT.answerVec (F : Type u_1) [CommRing F] (m : โ„•) (ap : Cost.BitStr) :
                            (Fin m โ†’ Bool) โ†’ F

                            The answer block of a string ap, as a {0,1}^m-indexed vector of field elements: the tape encoding tapeBits read at the little-endian index of the subcube point. This is the paper's a = enc_ฮ“(a_prefix, โŠ”^{M/2 - โ„“}), viewed in F^M through {0,1} โІ F.

                            Equations
                            Instances For

                              The theorem #

                              The bespoke PCP for deciders (blueprint thm:pcp-decider). An instance of this structure is the theorem.

                              Instances For