PCP[O(log n), O(1)] ⊆ NP #
A verifier with logarithmic randomness has polynomially many coin strings, so its whole behaviour on an input is captured by a table of answers of polynomial size. This module assembles the checks on such a table — that it has the right width, that it is consistent, and that the verifier accepts on every coin string — into a single polynomial-time verifier language, and hands it to the guess-and-verify bridge.
The completeness and soundness conditions of PCP do the rest: a member has a
proof accepted always, and a non-member has none, since a proof accepted always
would give acceptance probability one rather than at most one half.
Main results #
Complexity.PCP_subset_NP— the easy inclusion of the PCP theorem
The verifier language: the witness has the right shape, is consistent, and is accepted on every coin string.
Equations
- Complexity.witLang r Q V f = Complexity.lenLang r Q ∩ (Complexity.consLang f r Q ∩ Complexity.accLang V f r Q)
Instances For
PCP[O(log n), O(1)] ⊆ NP. A verifier's whole behaviour is a table of
answers of polynomial size; guessing that table and checking it is an NP
computation.