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 \textsc{Pumpkin P}i, an extension to the \textsc{Pumpkin Patch} Coq plugin suite for proof repair. We demonstrate \textsc{Pumpkin P}i's flexibility on eight case studies, including supporting a benchmark from a user study,easing development with dependent types, porting functions and proofs between unary and binary numbers, and supporting an industrial proof engineer to interoperate between Coq and other verification tools more easily.
Andres Erbsen Massachusetts Institute of Technology, Samuel Gruetter Massachusetts Institute of Technology, Joonwon Choi Massachusetts Institute of Technology, Clark Wood Massachusetts Institute of Technology, Adam Chlipala Massachusetts Institute of Technology
Andres Erbsen Massachusetts Institute of Technology, Samuel Gruetter Massachusetts Institute of Technology, Joonwon Choi Massachusetts Institute of Technology, Clark Wood Massachusetts Institute of Technology, Adam Chlipala Massachusetts Institute of Technology