Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/facebookarchive/Rust-SMT-LIB-API

An API that can be used to expose an SMT-LIB compliant SMT solver to a developer tool written in Rust.
https://github.com/facebookarchive/Rust-SMT-LIB-API

Last synced: 1 day ago
JSON representation

An API that can be used to expose an SMT-LIB compliant SMT solver to a developer tool written in Rust.

Awesome Lists containing this project

README

        

# Rust-SMT-LIB-API [![Build Status](https://travis-ci.com/facebookincubator/Rust-SMT-LIB-API.svg?token=eGmra6RUfZeknKfxxdBS&branch=master)](https://travis-ci.com/facebookincubator/Rust-SMT-LIB-API) [![codecov](https://codecov.io/gh/facebookincubator/Rust-SMT-LIB-API/branch/master/graph/badge.svg?token=ZvGjkOKO5l)](https://codecov.io/gh/facebookincubator/Rust-SMT-LIB-API)

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

## Additional links
* [SMT-LIB standard and documentation](http://smtlib.org).
* [Z3 SMT solver](https://github.com/Z3Prover/z3).

## License
Rust-SMT-LIB-API is MIT licensed, as found in the [LICENSE](https://github.com/facebookincubator/Rust-SMT-LIB-API/blob/master/LICENSE) file.