Skip to content

awslabs/rust-smt-ir-examples

rust-smt-ir-examples

This project provides examples of using a rust-smt-ir, a Rust intermediate representation (IR) for SMT-LIB. To demonstrate the benefit to the automated reasoning community, the project includes three sample applications:

  1. A tool to perform homomorphic transformations on SMT-LIB queries, with a focus on string theory. String function applications are extracted into variables, and variable names are canonicalized. Most importantly, the string literals themselves are modified. The string properties that have to be maintained when transforming a string literal depend on the context in which this literal is used; this context is determined through a callgraph representation of the SMT query. The string properties themselves and the string functions they depend on are described in the string_fcts module. The tool and its usage are described here.

  2. A tool to transform SMT-LIB queries in supported subsets of the language into SAT problems. The tool and its usage are described here. The IR is described/documented here.

  3. A tool to translate between an older "dialect" of SMT into the current standard. The tool and its usage are described here.

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •