MirrorShard: Proof by Computational Reflection with Verified Hints
Gregory Malecha, Adam Chlipala, Thomas Braibant, Patrick Hulin, Edward, Z. Yang

TL;DR
MirrorShard introduces a verified, extensible framework within Coq for automated reasoning about user-defined predicates, enhancing proof automation with sound extension capabilities and modular hint management.
Contribution
It presents a novel architecture for verified, composable proof procedures in Coq, supporting user-defined hints and integration with tactic-based deduction.
Findings
Implemented in MirrorShard, an open-source framework.
Successfully applied to separation logic for imperative program verification.
Supports sound extension and rich unification handling.
Abstract
We describe a method for building composable and extensible verification procedures within the Coq proof assistant. Unlike traditional methods that rely on run-time generation and checking of proofs, we use verified-correct procedures with Coq soundness proofs. Though they are internalized in Coq's logic, our provers support sound extension by users with hints over new domains, enabling automated reasoning about user-defined abstract predicates. We maintain soundness by developing an architecture for modular packaging, construction, and composition of hint databases, which had previously only been implemented in Coq at the level of its dynamically typed, proof-generating tactic language. Our provers also include rich handling of unification variables, enabling integration with other tactic-based deduction steps within Coq. We have implemented our techniques in MirrorShard, an…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Security and Verification in Computing
