Skip to main content

One post tagged with "effects"

View All Tags

ยท 9 min read

We present improvements we made to our tool coq-of-solidity to formally verify Solidity smart contracts for any advanced properties, relying on the proof assistant ๐Ÿ“ย Coq. The idea is to be able to prove the full absence of bugsย โœจ in very complex contracts, like L1 verifiers for zero-knowledge L2sย ๐Ÿ•ต๏ธ, or contracts with very large amounts of moneyย ๐Ÿ’ฐ (in the billions).

In this blog post, we present how we developed an effect inference mechanism to translate optimized Yul code combining variable mutations and control flow with loops and nested premature returns (break, continue, and leave) to a cleanย ๐Ÿงผ purely functional representation in the proof system Coq.