sorryfreeLast reviewed 2026-09-13

Circuit completeness

Direct answerA circuit is complete with respect to a specification if every input the specification allows has a satisfying witness, so an honest prover is never blocked from proving a true statement.

In more detail

Completeness failures are availability bugs: a wallet that cannot spend, a bridge that cannot finalise, a rollup that cannot include a legitimate transaction. They are less discussed than soundness bugs because they do not lose funds directly, but they are common when constraints are tightened during a fix.

A sound-and-complete theorem pins the circuit to its specification exactly, which is what allows untrusted optimisation, including by AI agents, without loss of correctness.

Frameworks that address it

Clean, Garden, zk.golf.

Circuit soundness, Underconstrained circuit, Overconstrained circuit, Symbolic vs computational model, Specification gap, Trusted computing base and verification boundary, Proof assistant vs SMT-based verifier, Bounded model checking, Equivalence checking, Refinement, Constant-time verification, Arithmetization (R1CS, PLONKish, AIR), Extraction (code to model), Witness generation vs constraints

Getting help

Firms on this index that handle this in practice: zkSecurity, Galois, Veridise, Nethermind (Formal Verification team).