Kha/electrolysis

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

Lean

340

273 commits

updated Mar 6, 2017

See the code

README

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

Contributors

Kha

272 commits

gitter-badger

1 commits

Kha/electrolysis

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

Lean

340

273 commits

updated Mar 6, 2017

See the code

README

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

Contributors

Kha

272 commits

gitter-badger

1 commits

Languages

Lean

45.2%

Rust

31.8%

JavaScript

10.6%

CSS

7.6%

TeX

2.5%

Python

2.3%