Proof repair across type equivalences

  title={Proof repair across type equivalences},
  author={Talia Ringer and Randair Porter and Nathaniel Yazdani and J. Leo and Dan Grossman},
  journal={Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation},
  • T. Ringer, Randair Porter, +2 authors D. Grossman
  • Published 2 October 2020
  • Computer Science
  • Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation
We describe a new approach to automatically repairing broken proofs in the Coq proof assistant in response to changes in types. Our approach combines a configurable proof term transformation with a decompiler from proof terms to suggested tactic scripts. The proof term transformation implements transport across equivalences in a way that removes references to the old version of the changed type and does not rely on axioms beyond those Coq assumes. We have implemented this approach in Pumpkin Pi… 

Figures and Tables from this paper


Adapting proof automation to adapt proofs
This work identifies and implements five core components that are key to searching for a patch that can be applied to other specifications and proofs that need to change in analogous ways and builds a patch finding procedure from these components.
REPLica: REPL instrumentation for Coq analysis
A tool is built that instruments Coq’s interaction model in order to collect fine-grained data on proof developments as they happen, and is decoupled from the user interface, and designed in a way that generalizes to other interactive theorem provers with similar interaction models.
Theorem Reuse by Proof Term Transformation
This paper proposes an approach where theorems are generalised by abstracting their proofs from the original setting, based on a representation of proofs as logical framework proof terms, using the theorem prover Isabelle.
Certified Programming with Dependent Types - A Pragmatic Introduction to the Coq Proof Assistant
This book provides an introduction to the Coq software for writing and checking mathematical proofs, with a practical engineering focus throughout, emphasizing techniques that will help users to build, understand, and maintain large Coq developments and minimize the cost of code change over time.
Generalization and Reuse of Tactic Proofs
A prototype of a generic interactive theorem-proving system that supports the construction and manipulation of tactic proofs containing metavariables is described, with the emphasis on proof reuse.
Challenges and Experiences in Managing Large-Scale Proofs
The main challenges in large-scale proofs are identified, possible solutions are proposed, and the Levity tool, which was developed to automatically move lemmas to appropriate theories, is discussed, as an example of the kind of tool required by such proofs.
TacTok: semantics-aware proof synthesis
  • Yuriy Brun
  • Computer Science
    Proc. ACM Program. Lang.
  • 2020
TacTok is presented, the first technique that attempts to fully automate proof script synthesis by modeling proof scripts using both the partial proof script written thus far and the semantics of the proof state, and evidence that metaheuristic search is a promising direction forProof script synthesis is provided.
QED at Large: A Survey of Engineering of Formally Verified Software
A survey of the literature presents a holistic understanding of proof engineering for program correctness, covering impact in practice, foundations, proof automation, proof organization, and practical proof development.
Refinements for Free!
This work introduces a framework where correctness is established in a proof-oriented context and automatically transported to computation-oriented data structures and the rich formalism of the Coq proof assistant enables this to be developed within Coq, without having to maintain an external tool.
CoqPIE: An IDE Aimed at Improving Proof Development Productivity - (Rough Diamond)
A new development environment for Coq which delivers editing functionality centered around common prover usage workflow not found in existing tools, and includes tools to carry out complex editing functions such as lemma extraction and replay.