• 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