TL;DR
This paper introduces a verified rewriting engine framework in Coq that accelerates compiler development by modularly proving rewrite rules, resulting in faster, simpler cryptographic compiler tools.
Contribution
It presents the first practical framework for modular verified rewriting in Coq, enabling faster compiler development with independent proof management.
Findings
Achieved 1000x faster cryptographic compiler generation.
Simplified proofs for compiler-specific rewrite rules.
Enabled modular proof composition for verified compilers.
Abstract
Compilers are a prime target for formal verification, since compiler bugs invalidate higher-level correctness guarantees, but compiler changes may become more labor-intensive to implement, if they must come with proof patches. One appealing approach is to present compilers as sets of algebraic rewrite rules, which a generic engine can apply efficiently. Now each rewrite rule can be proved separately, with no need to revisit past proofs for other parts of the compiler. We present the first realization of this idea, in the form of a framework for the Coq proof assistant. Our new Coq command takes normal proved theorems and combines them automatically into fast compilers with proofs. We applied our framework to improve the Fiat Cryptography toolchain for generating cryptographic arithmetic, producing an extracted command-line compiler that is about 1000 faster while actually…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
