0.1.11 |
|
---|---|
0.1.10 |
|
0.1.8 |
|
0.1.6 |
|
0.1.2 |
|
#33 in #develop
34 downloads per month
225KB
3.5K
SLoC
rust-formal-verification
A rust library that makes it easier to develop, prototype and test new algorithms for formal verification like IC3, PDR, AVY and others.
Publishing a new version
To publish a new version of the library :
- run
cargo fmt --check
(you may runcargo fmt
to fix changes quickly) - run
cargo clippy
(you may runcargo clippy --fix
to fix changes quickly) - run
cargo test
(This also tests doc comments) - run
cargo publish
lib.rs
:
Utilities for the creation and use of bit-level symbolic model checking algorithms.
rust_formal_verification provides utilities to read AIGs, to convert them to useful types such as finite state transition formulas, and some common algorithms. This crate is for developing and prototyping algorithms for formal verification for hardware devices. Algorithms like BMC, IC3, PDR and so on...
Quick Start
To get you started quickly, all you need to do is read an .aig file.
use rust_formal_verification::models::{AndInverterGraph, FiniteStateTransitionSystem};
// read aig file:
let file_path = "tests/examples/ours/counter.aig";
let aig = AndInverterGraph::from_aig_path(file_path);
// create boolean logic formulas that represent aig:
let fsts = FiniteStateTransitionSystem::from_aig(&aig, false);
// the formulas can then be read and turned to strings in DIMACS format.
assert_eq!(fsts.get_initial_relation().to_string(), "p cnf 3 3\n-1 0\n-2 0\n-3 0");
Dependencies
~8–12MB
~226K SLoC