A tool for formally verifying Rust programs by transpiling them into definitions in the Lean theorem prover.
- Masters thesis: Simple Verification of Rust Programs via Functional Purification - thesis|presentation
- Official reference and coverage
- Blog post: A Formal Verification of Rust's Binary Search Implementation
Because electrolysis uses
rustc's unstable private API, you need a nightly compiler. Because the API is highly unstable, you need a very specific nightly version, for which you should use rustup.rs. After installing
rustup, you can build this project by executing
electrolysis$ rustup override add $(cat rust-nightly-version) electrolysis$ rustup component add rust-src electrolysis$ cargo run core
This will build the project and export all code from the
core crate necessary for
binary_search (see also thys/core/config.toml) into thys/core/generated.lean (this file already exists in case you just want to examine the correctness proof).