Model Checking Software Programs with First Order Logic Specifications using AIG Solvers
Fadi A. Zaraket, Mohamad Noureddine

TL;DR
This paper introduces a novel approach for software model checking that uses sequential circuits and their synthesis frameworks to verify programs against first order logic specifications, overcoming limitations of traditional SAT/SMT methods.
Contribution
The authors propose a method leveraging sequential circuits for program verification, preserving high-level structure and enabling advanced analysis techniques not available with standard Boolean formulae.
Findings
Sequential circuits are more succinct than Boolean formulae without memory.
Encoding programs as sequential circuits allows use of powerful automated analysis techniques.
The method effectively verifies programs against first order logic specifications within variable bounds.
Abstract
Static verification techniques leverage Boolean formula satisfiability solvers such as SAT and SMT solvers that operate on conjunctive normal form and first order logic formulae, respectively, to validate programs. They force bounds on variable ranges and execution time and translate the program and its specifications into a Boolean formula. They are limited to programs of relatively low complexity for the following reasons. (1) A small increase in the bounds can cause a large increase in the size of the translated formula. (2) Boolean satisfiability solvers are restricted to using optimizations that apply at the level of the formula. Finally, (3) the Boolean formulae often need to be regenerated with higher bounds to ensure the correctness of the translation. We present a method that uses sequential circuits, Boolean formulae with memory elements and hierarchical structure, and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Software Testing and Debugging Techniques · Software Reliability and Analysis Research
