The Coq code extraction feature produces executable code in conventional functional languages that can be integrated with existing components. Currently, Coq features extraction into OCaml, Haskell and Scheme. Many new target languages are not covered by the standard Coq extraction, such as languages for smart contracts and web development. Moreover, the extraction procedure is written in OCaml and is not verified. Implementing extraction in Coq itself allows for verification of the extraction process. We implement an extraction pipeline by extending the MetaCoq verified erasure with proof-generating passes and verified optimisations. We support several languages from the ML family in our pipeline: two languages for smart contracts (Liquidity and CameLIGO) and the Elm programming language. Our experience shows the pipeline can handle practical use cases and can be extended with more target languages including the ML family.
Slides (extraction-coq-to-ml-slides.pdf) | 433KiB |
Thu 26 AugDisplayed time zone: Seoul change
20:00 - 21:30 | |||
20:00 30mTalk | Formalizing OCaml GADT typing in Coq ML Pre-print File Attached | ||
20:30 30mTalk | Demo Paper : Coqlex, an approach to generate verified lexers ML Wendlasida Ouedraogo Siemens Mobility & Inria Saclay, Danko Ilik Siemens Mobility, Lutz Strassburger Inria Saclay & LIX, Ecole Polytechnique Media Attached File Attached | ||
21:00 30mTalk | Code Extraction from Coq to ML-like languages ML Danil Annenkov Concordium Blockchain Research Center, Aarhus University, Mikkel Milo Concordium Blockchain Research Center, Aarhus University, Bas Spitters Aarhus University Link to publication File Attached |