Title :
Functional SMT solving with Z3 and racket
Author :
Agarwal, Sankalp ; Karkare, Anuj
Author_Institution :
Facebook Inc., Menlo Park, CA, USA
Abstract :
Satisfiability Modulo Theories (SMT) solvers are powerful tools that can quickly solve complex constraints involving Booleans, integers, first-order logic predicates, lists, and other data types. They have a vast number of potential applications, from constraint solving to program analysis and verification. However, they are so complex to use that their power is inaccessible to all but experts in the field. We present an attempt to make using SMT solvers simpler by integrating the Z3 solver into a host language, Racket. The system defines a programmer´s interface in Racket that makes it easy to harness the power of Z3 to discover solutions to logical constraints. The interface, although in Racket, retains the structure and brevity of the SMT-LIB format. This system is expected to be useful for a wide variety of applications, from simple constraint solving to writing tools for debugging, verification, and automatic test generation for functional programs.
Keywords :
computability; program diagnostics; program verification; software engineering; Booleans constraints; Racket; SMT-LIB format; automatic test generation; first-order logic predicates constraints; functional SMT solvers; functional programs; host language; integers constraints; program analysis; program debugging; program verification; satisfiability modulo theories solvers; Arrays; Computers; Context; Games; Libraries; Reactive power; Standards;
Conference_Titel :
Formal Methods in Software Engineering (FormaliSE), 2013 1st FME Workshop on
Conference_Location :
San Francisco, CA
DOI :
10.1109/FormaliSE.2013.6612272