English

ConCert: A Smart Contract Certification Framework in Coq

Programming Languages 2020-02-05 v4 Logic in Computer Science

Abstract

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 formalisation of smart contract execution in blockchains.

Keywords

Cite

@article{arxiv.1907.10674,
  title  = {ConCert: A Smart Contract Certification Framework in Coq},
  author = {Danil Annenkov and Jakob Botsch Nielsen and Bas Spitters},
  journal= {arXiv preprint arXiv:1907.10674},
  year   = {2020}
}

Comments

Extended the related work section. Significantly extended sections on translation and semantics. Added more examples and details about the formalisation. Commented of unquote and the trusted computing base. Commented on adequacy

R2 v1 2026-06-23T10:29:54.093Z