Program reductions are used widely to simplify reasoning about the correctness of concurrent and distributed programs. Different reduction techniques are often tailored towards specific classes of programs, for example message passing vs shared memory. In this paper, we propose a general approach to proof simplification of concurrent programs based on exploring generic classes of reductions. We introduce two classes of sound program reductions, study their theoretical properties, show how they can be effectively used in algorithmic verification, and demonstrate that they are very effective in producing proofs of a diverse class of programs without targeting specific syntactic properties of these programs. We modify the classic counterexample-guided refinement loop of automated program verification so that, in addition to proof search, it also searches for a program reduction that admits a substantially simpler proof of correctness compared to the original program. This methodology, hence, succeeds in automatically generating proofs for programs whose full proofs are theoretically outside the reach of current automated verification technology.
Wed 22 JanDisplayed time zone: Saskatchewan, Central America change
15:35 - 16:40 | Concurrency / MemoryResearch Papers at Ile de France III (IDF III) Chair(s): Susmit Sarkar University of St. Andrews | ||
15:35 21mTalk | Persistency Semantics of the Intel-x86 Architecture Research Papers Azalea Raad MPI-SWS, Germany, John Wickerson Imperial College London, Gil Neiger Intel Corporation, Viktor Vafeiadis MPI-SWS, Germany Link to publication DOI Media Attached | ||
15:56 21mTalk | Reductions for Safety Proofs Research Papers Link to publication DOI Media Attached | ||
16:18 21mTalk | RustBelt Meets Relaxed Memory Research Papers Hoang-Hai Dang MPI-SWS, Jacques-Henri Jourdan CNRS, LRI, Université Paris-Sud, Jan-Oliver Kaiser MPI-SWS, Derek Dreyer MPI-SWS Link to publication DOI Media Attached |