-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Basic block program logic #462
Conversation
+ progress on a composition lemma.
…e proof of soundness
A Jump(i) block can be empty so rewrite this property
Conflicts: EvmFacts.thy
We are working on getting SimpleWallet working again. |
@pirapira I just ran `make lem-thy && make simplewallet' successfully. |
@seed something similar happened to me a while ago. Isabelle2017 in Travis behaved differently from one on my local machine. I think I should check this branch on my machine and then merge the PR. |
(sorry, my previous message was about |
Thank you very much! |
This adds basic block program logic described in the paper "Towards Verifying Ethereum Smart Contract
Bytecode in Isabelle/HOL" published at CPP'18 and available at https://github.com/seed/ethbbl.
The logic facilitate formal reasoning about bytecode by structuring bytecode sequences
into blocks of straight-line code.
We proved the logic sound and have used it to formally verify the functional correctness of an escrow agreement smart contract implemented in Solidity.