DocumentCode
3230583
Title
Functional SMT solving with Z3 and racket
Author
Agarwal, Sankalp ; Karkare, Anuj
Author_Institution
Facebook Inc., Menlo Park, CA, USA
fYear
2013
fDate
25-25 May 2013
Firstpage
15
Lastpage
21
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;
fLanguage
English
Publisher
ieee
Conference_Titel
Formal Methods in Software Engineering (FormaliSE), 2013 1st FME Workshop on
Conference_Location
San Francisco, CA
Type
conf
DOI
10.1109/FormaliSE.2013.6612272
Filename
6612272
Link To Document