An Expressive Verification Framework for State/Event Systems

Abstract : Specification languages for concurrent software systems need to combine practical algorithmic efficiency with high expressive power and the ability to reason about both states and events. We address this question by defining a new branching-time temporal logic SE-A(OMEGA) which integrates both state-based and action-based properties. SE-A(OMEGA) is universal, i.e., preserved by the simulation relation, and thus amenable to counterexample-guided abstraction refinement. We provide a model-checking algorithm for this logic, and describe a compositional abstraction-refinement loop which exploits the natural decomposition of the concurrent system; the abstraction and refinement steps were performed over each component separately, and only the model checking step requires an explicit composition of the abstracted components. For experimental evaluation, we have integrated the presented algorithms in the software verification tool MAGIC, and determined a previously unknown race condition error in a piece of an industrial robot control software.

[1]  Mads Dam CTL* and ECTL* as Fragments of the Modal mu-Calculus , 1994, Theor. Comput. Sci..

[2]  Joël Ouaknine,et al.  Automated Compositional Abstraction Refinement for Concurrent C Programs: A Two-Level Approach , 2003, SoftMC@CAV.

[3]  Edmund M. Clarke,et al.  A Synthesis of Two Approaches for Verifying Finite State Concurrent Systems , 1989, J. Log. Comput..

[4]  Grzegorz Rozenberg,et al.  Linear Time, Branching Time and Partial Order in Logics and Models for Concurrency , 1988, Lecture Notes in Computer Science.

[5]  Lori A. Clarke,et al.  Verification of concurrent software with FLAVERS , 1997, ICSE '97.

[6]  Rocco De Nicola,et al.  Three logics for branching bisimulation , 1995, JACM.

[7]  Pierre Wolper,et al.  Reasoning About Infinite Computations , 1994, Inf. Comput..

[8]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[9]  Joël Ouaknine,et al.  State/Event-Based Software Model Checking , 2004, IFM.

[10]  Helmut Veith,et al.  Tree-like counterexamples in model checking , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[11]  Alex Groce,et al.  Modular verification of software components in C , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[12]  Pierre Wolper,et al.  Yet Another Process Logic (Preliminary Version) , 1983, Logic of Programs.

[13]  Edmund M. Clarke,et al.  Model checking and abstraction , 1994, TOPL.

[14]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[15]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[16]  Sriram K. Rajamani,et al.  Automatically validating temporal safety properties of interfaces , 2001, SPIN '01.

[17]  Matthew B. Dwyer,et al.  Finding Feasible Counter-examples when Model Checking Abstracted Java Programs , 2001, TACAS.

[18]  Thomas A. Henzinger,et al.  Lazy abstraction , 2002, POPL '02.

[19]  Pierre Wolper Temporal Logic Can Be More Expressive , 1983, Inf. Control..

[20]  Yassine Lakhnech,et al.  Incremental Verification by Abstraction , 2001, TACAS.

[21]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[22]  Ofer Strichman,et al.  SAT Based Abstraction-Refinement Using ILP and Machine Learning Techniques , 2002, CAV.

[23]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[24]  Ekkart Kindler,et al.  ESTL: A Temporal Logic for Events and States , 1998, ICATPN.

[25]  Robert P. Kurshan,et al.  Analysis of Discrete Event Coordination , 1989, REX Workshop.

[26]  Wolfgang Thomas Computation tree logic and regular omega-languages , 1988, REX Workshop.

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

[28]  Mads Dam,et al.  CTL* and ECTL* as Fragments of the Modal µ-Calculus , 1992, CAAP.

[29]  Radha Jagadeesan,et al.  Modal Transition Systems: A Foundation for Three-Valued Program Analysis , 2001, ESOP.

[30]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[31]  Edmund M. Clarke,et al.  A Synthesis of Two Approaches for Verifying Finite State Concurrent Systems , 1989, J. Log. Comput..

[32]  Helmut Veith,et al.  Automated Abstraction Refinement for Model Checking Large State Spaces Using SAT Based Conflict Analysis , 2002, FMCAD.