Compositional Predicate Abstraction from Game Semantics

We introduce a technique for using conventional predicate abstraction methods to reduce the state-space of models produced using game semantics. We focus on an expressive procedural language that has both local store and local control, a language which enjoys a simple game-semantic model yet is expressive enough to allow non-trivial examples. Our compositional approach allows the verification of incomplete programs (e.g. libraries) and offers the opportunity for new heuristics for improved efficiency. Game-semantic predicate abstraction can be embedded in an abstraction-refinement cycle in a standard way, resulting in an improved version of our experimental model-checking tool Mage , and we illustrate it with several toy examples.

[1]  Andrew M. Pitts Reasoning about local variables with operationally-based logical relations , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[2]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[3]  Samson Abramsky,et al.  Linearity, Sharing and State: a fully abstract game semantics for Idealized Algol with active expressions , 1996, Electron. Notes Theor. Comput. Sci..

[4]  James Laird A game semantics of names and pointers , 2008, Ann. Pure Appl. Log..

[5]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[6]  Radha Jagadeesan,et al.  Full Abstraction for PCF , 1994, Inf. Comput..

[7]  David L. Dill,et al.  Experience with Predicate Abstraction , 1999, CAV.

[8]  Dan R. Ghica,et al.  On-the-Fly Techniques for Game-Based Software Model Checking , 2008, TACAS.

[9]  C.-H. Luke Ong,et al.  On Full Abstraction for PCF: I, II, and III , 2000, Inf. Comput..

[10]  James Laird A fully abstract game semantics of local exceptions , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[11]  C.-H. Luke Ong Observational equivalence of 3rd-order Idealized Algol is decidable , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[12]  Andrzej S. Murawski,et al.  Applying Game Semantics to Compositional Software Modeling and Verification , 2004, TACAS.

[13]  Andrzej S. Murawski,et al.  Compositional Model Extraction for Higher-Order Concurrent Programs , 2006, TACAS.

[14]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[15]  Thomas A. Henzinger,et al.  The BLAST Software Verification System , 2005, SPIN.

[16]  Alex Groce,et al.  Predicate Abstraction with Minimum Predicates , 2003, CHARME.

[17]  John C. Reynolds,et al.  The craft of programming , 1981, Prentice Hall International series in computer science.

[18]  Dan R. Ghica,et al.  The regular-language semantics of second-order idealized ALGOL , 2003, Theor. Comput. Sci..

[19]  George J. Milne,et al.  Correct Hardware Design and Verification Methods , 2003, Lecture Notes in Computer Science.

[20]  Sriram K. Rajamani,et al.  SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft , 2004, IFM.

[21]  Peter W. O'Hearn,et al.  Algol-like Languages , 1997, Progress in Theoretical Computer Science.

[22]  Dan R. Ghica,et al.  Data-Abstraction Refinement: A Game Semantic Approach , 2005, SAS.