Every chip that ships, every safety-critical controller that runs, rests on a question: can the system ever reach a bad state? Formal verification tools try to answer "no" with a mathematical proof. For decades, the dominant approach was bounded model checking — unroll the system step by step and ask a SAT solver "is a bad state reachable in steps?" It works, but answering "never" requires , which is expensive.
In 2011, Aaron R. Bradley published a radically different idea: IC3 (Incremental Construction of Inductive Clauses for Indubitable Correctness), also called PDR (Property-Directed Reachability). Instead of unrolling time, IC3 builds a sequence of frames — each a set of clauses over the state variables — and incrementally pushes blocking clauses forward until one frame becomes an inductive invariant: a set of states that cannot reach the bad property and is closed under the transition relation.
The key insight is laziness: IC3 only reasons about states that are one step away from the bad property, blocking them with clauses and then checking whether those clauses can be pushed earlier in the frame sequence. When two adjacent frames become equal, the algorithm has found a proof — without ever constructing the full reachable set.
Comments
Loading comments...