Abstract Patterns of Compositional Reasoning

Compositional Reasoning – reducing reasoning about a concurrent system to reasoning about its individual components – is an essential tool for managing proof complexity and state explosion in model checking. Typically, such reasoning is carried out in an assume-guarantee manner: each component guarantees its behavior based on assumptions about the behavior of other components. Restrictions imposed on such methods to avoid unsoundness usually also result in incompleteness – i.e., one is unable to prove certain properties. In this paper, we construct an abstract framework for reasoning about process composition, formulate an assume-guarantee method, and show that it is sound and semantically complete. We then show how to instantiate the framework for several common notions of process behavior and composition. For these notions, the instantiations result in the first methods known to be complete for mutually inductive, assume-guarantee reasoning.

[1]  Martín Abadi,et al.  Conjoining specifications , 1995, TOPL.

[2]  Kedar S. Namjoshi,et al.  On the Competeness of Compositional Reasoning , 2000, CAV.

[3]  Robin Milner,et al.  An Algebraic Definition of Simulation Between Programs , 1971, IJCAI.

[4]  Patrick Maier Compositional Circular Assume-Guarantee Rules Cannot Be Sound and Complete , 2003, FoSSaCS.

[5]  Edsger W. Dijkstra,et al.  Predicate Calculus and Program Semantics , 1989, Texts and Monographs in Computer Science.

[6]  Robert P. Kurshan,et al.  Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach , 2014 .

[7]  Joseph Sifakis,et al.  Specification and verification of concurrent systems in CESAR , 1982, Symposium on Programming.

[8]  Panagiotis Manolios,et al.  Safety and liveness in branching time , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[9]  Mahesh Viswanathan,et al.  Foundations for Circular Compositional Reasoning , 2001, ICALP.

[10]  Patrick Maier A Set-Theoretic Framework for Assume-Guarantee Reasoning , 2001, ICALP.

[11]  K. Mani Chandy,et al.  Proofs of Networks of Processes , 1981, IEEE Transactions on Software Engineering.

[12]  Martín Abadi,et al.  An Abstract Account of Composition , 1995, MFCS.

[13]  L. McMillanmcmillan Circular Compositional Reasoning about Liveness , 1999 .

[14]  Jozef Hooman,et al.  Concurrency Verification: Introduction to Compositional and Noncompositional Methods , 2001, Cambridge Tracts in Theoretical Computer Science.

[15]  Thomas A. Henzinger,et al.  Reactive Modules , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[16]  Kedar S. Namjoshi,et al.  On the completeness of compositional reasoning , 2000 .

[17]  Martín Abadi,et al.  A logical view of composition and refinement , 1991, POPL '91.

[18]  Thomas A. Henzinger,et al.  Fair Simulation , 1997, Inf. Comput..

[19]  Cliff B. Jones,et al.  Developing methods for computer programs including a notion of interference , 1981 .

[20]  Bowen Alpern,et al.  Defining Liveness , 1984, Inf. Process. Lett..

[21]  Martín Abadi,et al.  The existence of refinement mappings , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[22]  Richard Banach,et al.  Book Review: "Concurrency Verification: Introduction to Compositional and Non-compositional Methods" by Willem-Paul de Roever, Frank de Boer, Ulrich Hanneman, Jozef Hooman, Yassine Lakhnech, Mannes Poel and Job Zwiers (eds.) , 2003, J. Log. Comput..

[23]  Kedar S. Namjoshi,et al.  Assume-Guarantee Based Compositional Reasoning for Synchronous Timing Diagrams , 2001, TACAS.

[24]  Thomas A. Henzinger,et al.  An assume-guarantee rule for checking simulation , 1998, TOPL.

[25]  C. Rattray,et al.  Specification and Verification of Concurrent Systems , 1990, Workshops in Computing.

[26]  Kedar S. Namjoshi,et al.  Visual Specifications for Modular Reasoning about Asynchronous Systems , 2002, FORTE.