The Probabilistically Checkable Proofs Theorem, introduced by Arora, Lund, Motwani, Szegedy, and Sudan, among others, in 1992, states that every mathematical proof can be written in a format that allows probabilistic checking by making only a constant number of queries to the proof. The theorem – not only extremely interesting by itself – was a breakthrough in proving NP-hardness of approximation problems.

Given a decision problem L(or a language L with its alphabet set Σ), a probabilistically checkable proof system for L with completeness c(n) and soundness s(n), where 0 ≤ s(n) ≤ c(n) ≤ 1, consists of a prover and a verifier. Given a claimed solution x with length n, which might be false, the prover produces a proof π which states x solves L (x ∈ L, the proof is a string ∈ Σ*). The length of x denoted as n. And the verifier is a randomized oracle Turing Machine V (the verifier) that checks the proof π for the statement that x solves L(or x ∈ L) and decides whether to accept the statement. The system has the following properties:

Completeness: For any x ∈ L, given the proof π produced by the prover of the system, the verifier accepts the statement with probability at least c(n),

Soundness: For any x ∉ L, then for any proof π, the verifier mistakenly accepts the statement with probability at most s(n).

For the computational complexity of the verifier, we have the randomness complexity r(n) to measure the maximum number of random bits that V uses over all x of length n and the query complexity q(n) of the verifier is the maximum number of queries that V makes to π over all x of length n.

In the above definition, the length of proof is not mentioned since usually it includes the alphabet set and all the witness. By the way, for the prover, we do not mention how it gets to know the solution to the problem. We only care how can it writes down a proof of it.

The verifier is said to be non-adaptive if it makes all its queries before it receives any of the answers to previous queries.

The complexity class PCPc(n), s(n)[r(n), q(n)] is the class of all decision problems having probabilistically checkable proof systems over binary alphabet of completeness c(n) and soundness s(n), where the verifier is nonadaptive, runs in polynomial time, and it has randomness complexity r(n) and query complexity q(n).

The shorthand notation PCP[r(n), q(n)] is sometimes used for PCP1, ½[r(n), q(n)]. The complexity class PCP is defined as PCP1, ½[O(log n), O(1)].

Great, right?

HOLY FUCK NUGGETS, SPIDERS