When I read about zero knowledge proof, I keep encountering the term NP-statement. I am aware of complexity classes but I am a little unclear on how it ties up to NP-statement.
I came across the following here: C++ library for zkSNARKs
A computation can be expressed as an NP statement, in forms such as the following:
"The C program foo, when executed, returns exit code 0 if given the input bar and some additional input qux."
"The Boolean circuit foo is satisfiable by some input qux."
"The arithmetic circuit foo accepts the partial assignment bar, when extended into some full assignment qux."
"The set of constraints foo is satisfiable by the partial assignment bar, when extended into some full assignment qux."
A prover who knows the witness for the NP statement (i.e., a satisfying input/assignment) can produce a short proof attesting to the truth of the NP statement.
Can any body show how an NP problem can be described in the form of an NP statement with an example?