Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/awslabs/rust-smt-ir-examples
https://github.com/awslabs/rust-smt-ir-examples
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/awslabs/rust-smt-ir-examples
- Owner: awslabs
- License: apache-2.0
- Created: 2022-02-02T17:21:54.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-08T00:51:44.000Z (6 months ago)
- Last Synced: 2024-05-22T22:34:49.171Z (6 months ago)
- Language: SMT
- Size: 12.4 MB
- Stars: 7
- Watchers: 9
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-rust-formalized-reasoning - rust-smt-ir-examples - examples of using a rust-smt-ir, a Rust intermediate representation (IR) for SMT-LIB. (Resources / Demos)
README
## rust-smt-ir-examples
This project provides examples of using a [rust-smt-ir](https://github.com/awslabs/rust-smt-ir),
a Rust intermediate representation (IR) for [SMT-LIB](http://smtlib.cs.uiowa.edu/about.shtml).
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](amzn-smt-string-transformer/src/string_fcts.rs)
module. The tool and its usage are described
[here](amzn-smt-string-transformer).2. A tool to transform SMT-LIB queries in supported subsets of the
language into
[SAT](https://en.wikipedia.org/wiki/Boolean_satisfiability_problem)
problems. The tool and its usage are described
[here](amzn-smt-eager-arithmetic).
The IR is described/documented
[here](https://github.com/awslabs/rust-smt-ir/tree/main/amzn-smt-ir).3. A tool to translate between an older "dialect" of SMT into the
current standard. The tool and its usage are described
[here](amzn-smt-string-fct-updater).## Security
See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.
## License
This project is licensed under the Apache-2.0 License.