ekpyron / Yul-Isabelle

Isabelle semantics for the Yul language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Verified Solidity ABI Encoder/Decoder

This repository contains a specification, implementation, and verification (in Isabelle) of the Solidity ABI encoder and decoder.

The repository is structured as follows:

  • ABI types and other basic notions: AbiTypes.thy
  • Isabelle syntactic sugar for writing ABI types: AbiTypesSyntax.thy
  • Constructs for error messages used in encoder and decoder implementations: Ok.thy
  • Formal Solidity ABI encoding specification: AbiEncodeSpec.thy
  • Encoder implementation: AbiEncode.thy
  • Decoder implementation: AbiDecode.thy
  • Encoder correctness theorems: AbiEncodeCorrect.thy
  • Decoder correctness theorems: AbiDecodeCorrect.thy
  • "Round-trip" theorems about decoding encoded results (and vice versa): Inverses.thy
  • Isabelle files containing test inputs for encoder and decoder: AbiTest.thy

About

Isabelle semantics for the Yul language

License:BSD 2-Clause "Simplified" License


Languages

Language:Isabelle 68.6%Language:Standard ML 30.7%Language:C++ 0.5%Language:Makefile 0.1%