Mostly Automated Proof Repair for Verified LibrariesDistinguished Paper
The cost of maintaining formally specified and verified software is widely considered prohibitively high due to the need to constantly keep code and the proofs of its correctness in sync—the problem known as proof repair. One of the main challenges in automated proof repair for evolving code is to infer invariants for a new version of a once verified program that are strong enough to establish its full functional correctness.
In this work, we present the first proof repair methodology for higher-order imperative functions, whose initial versions were verified in the Coq proof assistant and whose specifications remained unchanged. Our proof repair procedure is based on the combination of dynamic program alignment, enumerative invariant synthesis, and a novel technique for efficiently pruning the space of invariant candidates, dubbed proof-driven testing, enabled by the constructive nature of Coq’s proof certificates.
We have implemented our approach in a mostly-automated proof repair tool called Sisyphus. Given an OCaml function verified in Coq and its unverified new version, Sisyphus produces a Coq proof for the new version, discharging most of the new proof goals automatically and suggesting high-confidence obligations for the programmer to prove for the cases when automation fails. We have evaluated Sisyphus on 10 ubiquitous OCaml functions taken from popular libraries, that manipulate arrays and mutable data structures, considering their verified original and unverified evolved versions. Sisyphus has managed to repair proofs for all those functions, suggesting correct invariants and generating a small number of easy-to-prove residual obligations.
Wed 21 JunDisplayed time zone: Eastern Time (US & Canada) change
09:00 - 11:00 | PLDI: Testing & VerificationPLDI Research Papers at Royal Chair(s): Yao Li Portland State University | ||
09:00 20mTalk | Mostly Automated Proof Repair for Verified LibrariesDistinguished Paper PLDI Research Papers Kiran Gopinathan National University of Singapore, Mayank Keoliya National University of Singapore, Ilya Sergey National University of Singapore DOI Pre-print | ||
09:20 20mTalk | Proving and Disproving Equivalence of Functional Programming Assignments PLDI Research Papers DOI Pre-print | ||
09:40 20mTalk | Feature-Sensitive Coverage for Conformance Testing of Programming Language Implementations PLDI Research Papers DOI Pre-print | ||
10:00 20mTalk | Psym: Efficient Symbolic Exploration of Distributed Systems PLDI Research Papers Lauren Pick University of Wisconsin-Madison and University of California, Berkeley, Ankush Desai Amazon Web Services, Aarti Gupta Princeton University DOI | ||
10:20 20mTalk | Modular Control Plane Verification via Temporal Invariants PLDI Research Papers Tim Alberdingk Thijm Princeton University, Ryan Beckett Microsoft Research, USA, Aarti Gupta Princeton University, David Walker Princeton University DOI | ||
10:40 20mTalk | Fair Operational Semantics PLDI Research Papers Dongjae Lee Seoul National University, Minki Cho Seoul National University, Jinwoo Kim Seoul National University, Soonwon Moon Inha University, Youngju Song MPI-SWS, Chung-Kil Hur Seoul National University DOI |