Linux | Windows | Chat | Coveralls | Codecov | Metrics |
---|---|---|---|---|---|
This is a brave attempt to write a simple SMT solver in the Rust (github) programming language.
It is based on the design of:
Currently the solver is in very early development phase.
The combined theory in SMT notation is called QF_ABV
.
Stevia supports word-level transformations, called simplifications, that it applies throughout the solving process. In the following is an example of what is possible with the WIP implementation of the simplifier.
The arithmetic expression in LISP syntax:
(+ x 42 (- x y) (* y (-5)) (- (+ x 10 y)))
Is simplified to:
(+ 32 (* -7 y) x)
This output can then be further processed by other simplification and solving processes.
These features need to be stabilized before this crate can be used on the stable channel.
Current State: Rust version 1.26
Simplifier
Bitblaster
Licensed under either of
at your option.
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.