View on GitHub

CertiRocq

A verified compiler for Rocq

CertiRocq blank

Overview

CertiRocq (formerly CertiCoq) is a compiler for Gallina, the specification language of the Rocq Prover. CertiRocq targets WebAssembly and Clight, a subset of the C language that can be compiled with any C compiler, including the CompCert verified compiler.

The goal of the CertiRocq project is to build an end-to-end verified compiler for Gallina, bridging the gap between formally verified source programs and their compiled executables.

Large parts of the CertiRocq compiler have been verified whereas others are in the process of being verified.

You can find CertiRocq’s source code on GitHub. See INSTALL.md for installation instructions. CertiRocq is part of the DeepSpec project.

Current Members

Andrew Appel, Yannick Forster, Joomy Korkut, Zoe Paraskevopoulou, Kathrin Stark, and Matthieu Sozeau.

Past Members and Contributors

Abhishek Anand, Anvay Grover, John Li, Greg Morrisett, Randy Pollack, Olivier Savary Belanger, Matthew Weaver

Documentation

The CertiRocq Wiki has instructions for using the CertiRocq plugin to compile Gallina to C and interfacing with the generated C code.

The Wiki also gives an overview of the compiler and its verification status.

You can also find end-to-end examples in tests/programs/tests.v and tests/axioms/tests.v.

Publications

Funding

The project has been supported by the National Science Foundation, grants CCF-1407790, CCF-1407794, CCF-2005545, and the CIFellows program.

License

CertiRocq is open source and distributed under the MIT license.

Bugs

We use GitHub’s issue tracker to keep track of bugs and feature requests.