Kha / electrolysis

Simple verification of Rust programs via functional purification in Lean 2(!)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

electrolysis

Gitter

About

A tool for formally verifying Rust programs by transpiling them into definitions in the Lean theorem prover.

Installation

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).

About

Simple verification of Rust programs via functional purification in Lean 2(!)

License:Other


Languages

Language:Lean 45.2%Language:Rust 31.8%Language:JavaScript 10.6%Language:CSS 7.6%Language:TeX 2.5%Language:Python 2.3%