An ACL2s Interface to Z3
Andrew T. Walter (Northeastern University), Panagiotis Manolios (Northeastern University)

TL;DR
Lisp-Z3 is an extension that enables Common Lisp programs to seamlessly interact with the Z3 SMT solver, enhancing theorem proving and solving capabilities within the ACL2s framework.
Contribution
It introduces Lisp-Z3, a novel interface allowing integration of Z3 with Common Lisp and ACL2s, supporting diverse applications without dependency on ACL2s availability.
Findings
Lisp-Z3 successfully integrated Z3 with ACL2s and Common Lisp.
Applications demonstrated include a Sudoku solver, a string solver, and hardware-in-the-loop fuzzing.
Lisp-Z3 improved problem-solving efficiency and enabled new automated reasoning capabilities.
Abstract
We present Lisp-Z3, an extension to the ACL2s systems programming framework (ASPF) that supports the use of the Z3 satisfiability modulo theories (SMT) solver. Lisp-Z3 allows one to develop tools written using the full feature set of Common Lisp that can use both ACL2/s (either ACL2 or ACL2s) and Z3 as services, combining the power of SMT and interactive theorem proving. Lisp-Z3 is usable by anyone who would like to interact with Z3 from Common Lisp, as it does not depend on the availability of ACL2/s. We discuss the use of Lisp-Z3 in three applications. The first is a Sudoku solver. The second is SeqSolve, a string solver which solved a larger number of benchmark problems more quickly than any other existing solver at the time of its publishing. Finally, Lisp-Z3 was also used in the context of hardware-in-the-loop fuzzing of wireless routers, where low latency was an important goal.…
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.
