Completeness
Of a proof system. A proof system is complete if, for every
TRUE
statement, the Prover can always produce an accepting proof.
Completeness is a property of a proof system best understood as: “an honest Prover should always be able to convince an honest Verifier of a valid statement”. Here we emphasize that the verifier must be honest. A malicious or faulty verifier (e.g., the implementation has bugs) may reject valid proofs.
Perfect completeness vs Completeness. The definition above imposes that the honest prover always convince the honest verifier (i.e. the probability is 1). We call this property perfect completeness. Sometimes this is not necessary, nor is it achievable. In those cases, we can relax the success probability to be greater than , where is something small.
The math version.
More formally, given a relation and the associated language , the mathematical expression for completeness looks often like the equation below: where and are the honest Prover and Verifier respectively, and denotes the bit output by at the end of the interaction with for the instance .