#smt-solver #smt #z3 #satisfiability #modulo #api-bindings #theories

rust_smt

A generic solver-agnostic API for interacting with SMT solvers based on the SMT-LIB standard

3 unstable releases

0.2.0 May 3, 2019
0.1.1 Apr 5, 2019
0.1.0 Mar 29, 2019

#9 in #z3

MIT license

52KB
1K SLoC

Rust-SMT-LIB-API Build Status codecov

This crate provides a generic high-level API for interacting with SMT solvers. The aim of this interface is to be solver-agnostic (i.e. the user can switch between back-end SMT solvers by modifying a single line of code) and to mimic the SMT-LIB standard commands as closely as possible. Currently, Z3 is supported as a back-end. See links below for more information on SMT-LIB and Z3. See tests/test.rs for examples of how to use the interface.

Installing z3

  • Rust-SMT-LIB-API requires the latest nightly build of Z3
  • Follow the install instructions on the Z3 website (see below)

Building

  • Download or clone Rust-SMT-LIB-API
  • cd to the root directory of Rust-SMT-LIB-API and run: cargo test

License

Rust-SMT-LIB-API is MIT licensed, as found in the LICENSE file.

Dependencies

~20MB
~424K SLoC