Simple verification of Rust programs via functional purification in Lean 2(!)
Lean
340
273 commits
updated Mar 6, 2017
A tool for formally verifying Rust programs by transpiling them into definitions in the Lean theorem prover.
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).
272 commits
1 commits
Lean
45.2%
Rust
31.8%
JavaScript
10.6%
CSS
7.6%
TeX
2.5%
Python
2.3%
Simple verification of Rust programs via functional purification in Lean 2(!)
Lean
340
273 commits
updated Mar 6, 2017
A tool for formally verifying Rust programs by transpiling them into definitions in the Lean theorem prover.
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).
272 commits
1 commits
Lean
45.2%
Rust
31.8%
JavaScript
10.6%
CSS
7.6%
TeX
2.5%
Python
2.3%