This repository contains
- a Keccak-256 implementation in Isabelle/HOL
KEC.thy
- a RLP implementation (in progress)
RLP.thy
- an EVM implementation
ContractSem.thy
- a relational semantics that captures the callee's nondeterministic behavior
RelationalSem.thy
- some example verified contracts in
example
When you see \<Rightarrow>
in the source, try using the Isabelle2016 interface. There you see ⇒
instead.
make deed
produces a verified PDF document for the Deed contract inoutput/document.pdf
.make doc
producesoutput/document.pdf
as well aslem/*.pdf
.make lem-thy
compiles the Lem sources into Isabelle/HOLmake all-isabelle
checks all Isabelle/HOL sources (but not the ones compiled from Lem)make
does everything above
- For a bigger picture, see overview of Yoichi's formal verification efforts on smart contracts
- For updates, visit a gitter channel