ConCert: A Smart Contract Certification Framework in Coq

07/24/2019
by   Danil Annenkov, et al.
0

We present a new way of embedding functional languages into the Coq proof assistant by using meta-programming. This allows us to develop the meta-theory of the language using the deep embedding and provides a convenient way for reasoning about concrete programs using the shallow embedding. We connect the deep and the shallow embeddings by a soundness theorem. As an instance of our approach, we develop an embedding of a core smart contract language into Coq and verify several important properties of a crowdfunding contract based on a previous formalization of smart contract execution in blockchains.

READ FULL TEXT
research
07/24/2019

Towards a Smart Contract Verification Framework in Coq

We propose a novel way of embedding functional smart contract languages ...
research
11/12/2019

Smart Contract Interactions in Coq

We present a model/executable specification of smart contract execution ...
research
12/16/2020

Extracting Smart Contracts Tested and Verified in Coq

We implement extraction of Coq programs to functional languages based on...
research
08/06/2021

Extracting functional programs from Coq, in Coq

We implement extraction of Coq programs to functional languages based on...
research
07/14/2022

Multi: a Formal Playground for Multi-Smart Contract Interaction

Blockchains are maintained by a network of participants that run algorit...
research
05/22/2021

Choosing is Losing: How to combine the benefits of shallow and deep embeddings through reflection

Dependently-typed host languages empower users to verify a wide range of...
research
12/03/2018

Debugging Smart Contract's Business Logic Using Symbolic Model-Checking

Smart contracts are a special type of programs running inside a blockcha...

Please sign up or login with your details

Forgot password? Click here to reset