Wed 21 Jun 2023 09:00 - 09:20 at Royal - PLDI: Testing & Verification Chair(s): Yao Li

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 Jun

Displayed 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

#pldi-wed-0900-testing-royal Discord icon small YouTube icon small

09:00
20m
Talk
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
20m
Talk
Proving and Disproving Equivalence of Functional Programming Assignments
PLDI Research Papers
Dragana Milovancevic EPFL, Viktor Kunčak EPFL, Switzerland
DOI Pre-print
09:40
20m
Talk
Feature-Sensitive Coverage for Conformance Testing of Programming Language Implementations
PLDI Research Papers
Jihyeok Park Korea University, Dongjun Youn KAIST, Kanguk Lee KAIST, Sukyoung Ryu KAIST
DOI Pre-print
10:00
20m
Talk
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
20m
Talk
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
20m
Talk
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