All Projects → sushant94 → libsmt.rs

sushant94 / libsmt.rs

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
Rust Bindings to interact with SMTLIB2 compliant solvers

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to libsmt.rs

ruzzle-solver
A python script that solves ruzzle boards
Stars: ✭ 46 (+228.57%)
Mutual labels:  solver
ipc solver
O(N log N)-space IPC solver in OCaml
Stars: ✭ 46 (+228.57%)
Mutual labels:  solver
vim-smt2
A VIM plugin that adds support for the SMT-LIB2 format (including Z3's extensions)
Stars: ✭ 35 (+150%)
Mutual labels:  smtlib
fdtd3d
fdtd3d is an open source 1D, 2D, 3D FDTD electromagnetics solver with MPI, OpenMP and CUDA support for x86, arm, arm64 architectures
Stars: ✭ 77 (+450%)
Mutual labels:  solver
numberlink
Program for generating and solving numberlink / flow free puzzles
Stars: ✭ 47 (+235.71%)
Mutual labels:  solver
salesman.js
Solves the traveling salesman problem using simulated annealing.
Stars: ✭ 38 (+171.43%)
Mutual labels:  solver
voikko-rs
Rust bindings for the Voikko library
Stars: ✭ 16 (+14.29%)
Mutual labels:  rust-bindings
CSDP.jl
Julia Wrapper for CSDP (https://projects.coin-or.org/Csdp/)
Stars: ✭ 18 (+28.57%)
Mutual labels:  solver
ctp-rs
A Rust wrapper of CTP API
Stars: ✭ 74 (+428.57%)
Mutual labels:  rust-bindings
Fluid Simulation
Self advection, external force and pressure solve to a velocity field represented by a MaC grid.
Stars: ✭ 107 (+664.29%)
Mutual labels:  solver
liboqs-rust
Rust bindings for liboqs
Stars: ✭ 46 (+228.57%)
Mutual labels:  rust-bindings
GHOST
General meta-Heuristic Optimization Solving Toolkit
Stars: ✭ 28 (+100%)
Mutual labels:  solver
rekenaar
Idris tactics for (commutative) monoids
Stars: ✭ 21 (+50%)
Mutual labels:  solver
lava-optimization
Constraint Optimization with Lava
Stars: ✭ 23 (+64.29%)
Mutual labels:  solver
featool-multiphysics
FEATool - "Physics Simulation Made Easy" (Fully Integrated FEA, FEniCS, OpenFOAM, SU2 Solver GUI & Multi-Physics Simulation Platform)
Stars: ✭ 190 (+1257.14%)
Mutual labels:  solver
CapMonsterCloud
a C# wrapper for CapMonster Cloud API
Stars: ✭ 17 (+21.43%)
Mutual labels:  solver
csb
A cloth and soft body simulation library, using position based dynamics.
Stars: ✭ 29 (+107.14%)
Mutual labels:  solver
ProxSDP.jl
Semidefinite programming optimization solver
Stars: ✭ 69 (+392.86%)
Mutual labels:  solver
mozjpeg-rust
Safe Rust wrapper for the MozJPEG library
Stars: ✭ 53 (+278.57%)
Mutual labels:  rust-bindings
blend2d-rs
Blend2D Bindings for Rust
Stars: ✭ 20 (+42.86%)
Mutual labels:  rust-bindings

libsmt.rs

Build Status Coverage Status

Rust bindings for SMTLIB2

libsmt.rs allows developers to write and interact with SMT Solvers that conform to the SMTLIB2 Standard.

The current implementation supports Z3 as the default solver, however, it is trivial to use it with other solvers that accept input in the SMTLIB2 format.

Documentation

Some documentation exists here

Documentation will be written lazily. This will remain a task of least priority until the library is stable and robust. If you are interested in using this library and need some documentation, feel free to raise an issue and I'd be more than happy to help you out.

Usage Example

Usage examples are available in examples/

Todo

The current implementation does not expose the full power of SMT Solvers. Here are some items on our roadmap to complete this library:

  • Implement solver features like:

  • declare-const

  • define-fun

  • define-sort

  • declare-sort

  • Allow users to pass options to SMT Solvers

  • Improved Type Checking

However, features unexposed by the API can still be used through raw_read() and raw_write() that exposes the underlying solver directly.

Contributing

Contributions in form of suggestions, issues and (especially) pull requests are most welcome! Please follow the Rust Style of coding and ensure that tests are written while submitting a Pull Request.

License

Licensed under either of

at your option.

Contribution Notice

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].