Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Racket bindings for Z3
Racket
branch: master
Failed to load latest commit information.
examples Switch another use to racket/base
tests Add the Platinum Blonde Sudoku problem as an example
.gitattributes Disable LF normalization
.gitignore Update ignore files
.hgignore Update ignore files
LICENSE Add readme and license
README.md Remove note about the doc directory and add one about the Downloads s…
builtins.rkt Drop the parentheses around nil/s
derived.rkt Make it much, much easier to write a macro
main.rkt Add a comment about config arguments
parser.rkt Add support for #t and #f instead of booleans
run-tests.rkt
utils.rkt Substitute the function even earlier
z3-wrapper.rkt Add support for arbitrary keyword arguments
z3.rkt.sublime-project Fix sublime project path

README.md

z3.rkt: Racket bindings for Z3

We aim to provide a reasonably complete and easy-to-use implementation of Z3 on Racket. The documentation is rather incomplete right now, but here's what's working:

  • Basic assertions on integers, booleans, arrays and integer lists
  • Custom datatypes: only scalar datatypes supported right now
  • Extracting values from generated models
  • A few examples, including Sudoku, n-queens, and bounded model checking for quicksort

Check out the tests and examples subdirectories for examples. For a slightly more involved example, see numbermind, a small web app written using this library.

Important things to do:

  • Better model navigation
  • Assertions on other types of lists and other non-scalar datatypes
  • More examples, a more comprehensive test suite
  • Better debugging and printing

Pull requests are always welcome!

Please see the Downloads section for a downloadable copy of the paper we submitted to TFP'12.

Installing

z3.rkt requires Z3 4.0, which you can download for your platform from the Microsoft Research site. We work on Windows, Mac and Linux. You need to copy or create a symlink to z3.dll, libz3.so or libz3.dylib in this directory.

License

Licensed under the Simplified BSD License. See the LICENSE file for more details.

Please note that this license does not apply to Z3, only to these bindings.

Something went wrong with that request. Please try again.