A verified compiler for Gallina (Rocq Prover's specification language) that targets WebAssembly and Clight.
CertiRocq is a verified compiler for Gallina, the specification language used in the Rocq Prover. It translates Gallina code into executable formats like WebAssembly and Clight (a C subset), allowing formally verified specifications to be run as programs. The compiler itself is largely formally verified, ensuring the correctness of its transformations.
Researchers and developers working with the Rocq Prover or Coq who need to compile formally verified Gallina specifications into executable code for deployment or testing.
It provides a formally verified compilation pipeline for Gallina, offering high assurance of correctness and supporting multiple target languages (WebAssembly and C), which is unique among compilers for proof assistant languages.
A Verified Compiler for Gallina, Written in Gallina
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Core components are formally verified, providing high assurance of correctness as stated in the README, which notes large parts have been verified.
Compiles Gallina to both WebAssembly and Clight (a C subset), offering flexibility for web and embedded systems deployment per the overview.
Includes a plugin for the Rocq Prover to compile Gallina directly, streamlining the workflow from specification to executable code.
The compiler is written in Gallina and can bootstrap itself, demonstrating self-consistency and robustness in verified systems.
The README admits that only large parts are verified, with others still in progress, reducing the overall assurance compared to fully verified compilers.
Requires integration with the Rocq Prover and potentially CompCert for C compilation, making installation non-trivial as hinted in INSTALL.md.
Specifically designed for Rocq's Gallina, so it's unusable for general-purpose programming languages or projects outside formal verification.