Reductions for safety proofs

Program reductions are used widely to simplify reasoning about the correctness of concurrent and distributed programs. 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. The most novel contribution of this paper is the introduction of the concept of context in the definition of program reductions. We demonstrate how commutativity of program steps in some program contexts can be used to define a generic class of sound reductions which can be used to automatically produce proofs for programs whose complete Floyd-Hoare style proofs are theoretically beyond the reach of automated verification technology of today.

[1]  Yves Métivier,et al.  Partial Commutation and Traces , 1997, Handbook of Formal Languages.

[2]  Serdar Tasiran,et al.  Automated and Modular Refinement Reasoning for Concurrent Programs , 2015, CAV.

[3]  Joël Ouaknine,et al.  Verifying multi-threaded software with impact , 2013, 2013 Formal Methods in Computer-Aided Design.

[4]  Gilles Barthe,et al.  Relational Verification Using Product Programs , 2011, FM.

[5]  Azadeh Farzan,et al.  Automated Hypersafety Verification , 2019, CAV.

[6]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[7]  Parosh Aziz Abdulla,et al.  Source Sets , 2017, J. ACM.

[8]  Andrew C. Myers,et al.  Language-based information-flow security , 2003, IEEE J. Sel. Areas Commun..

[9]  Azadeh Farzan,et al.  Reductions for Safety Proofs (Extended Version) , 2019, ArXiv.

[10]  Stephen N. Freund,et al.  Exploiting purity for atomicity , 2004, IEEE Transactions on Software Engineering.

[11]  Thomas A. Henzinger,et al.  Synchronizing the Asynchronous , 2018, CONCUR.

[12]  Franz Baader,et al.  The Inverse Method Implements the Automata Approach for Modal Satisfiability , 2001, IJCAR.

[13]  Isil Dillig,et al.  Consolidation of queries with user-defined functions , 2014, PLDI.

[14]  Swarat Chaudhuri,et al.  Symbolic pruning of concurrent program executions , 2009, ESEC/FSE '09.

[15]  Volker Diekert,et al.  The Book of Traces , 1995 .

[16]  Jochen Hoenicke,et al.  Refinement of Trace Abstraction , 2009, SAS.

[17]  Doron A. Peled,et al.  Defining Conditional Independence Using Collapses , 1992, Theor. Comput. Sci..

[18]  Glynn Winskel,et al.  Deterministic Behavioural Models for Concurrency , 1993, MFCS.

[19]  Pranav Garg,et al.  Natural proofs for asynchronous programs using almost-synchronous reductions , 2014, OOPSLA 2014.

[20]  Anca Muscholl,et al.  On Communicating Automata with Bounded Channels , 2007, Fundam. Informaticae.

[21]  Slawomir Lasota,et al.  Automata theory in nominal sets , 2014, Log. Methods Comput. Sci..

[22]  Andreas Podelski,et al.  Proof Spaces for Unbounded Parallelism , 2015, POPL.

[23]  Richard J. Lipton,et al.  Reduction: a method of proving properties of parallel programs , 1975, CACM.

[24]  Parosh Aziz Abdulla,et al.  Optimal dynamic partial order reduction , 2014, POPL.

[25]  Cormac Flanagan,et al.  A type and effect system for atomicity , 2003, PLDI.

[26]  Isil Dillig,et al.  Cartesian hoare logic for verifying k-safety properties , 2016, PLDI.

[27]  Chao Wang,et al.  Peephole Partial Order Reduction , 2008, TACAS.

[28]  Thomas A. Henzinger,et al.  Antichains: A New Algorithm for Checking Universality of Finite Automata , 2006, CAV.

[29]  Deian Stefan,et al.  Pretend synchrony: synchronous verification of asynchronous distributed programs , 2019, Proc. ACM Program. Lang..

[30]  Volker Diekert,et al.  On First-Order Fragments for Mazurkiewicz Traces , 2007, Fundam. Informaticae.

[31]  Andreas Podelski,et al.  Inductive data flow graphs , 2013, POPL.

[32]  Amir Pnueli,et al.  Translation Validation , 1998, TACAS.