Verifying Concurrent Systems with Symbolic Execution

Current techniques for interactively proving temporal properties of concurrent systems translate transition systems into temporal formulas by introducing program counter variables. Proofs are not intuitive, because control flow is not explicitly considered. For sequential programs symbolic execution is a very intuitive, interactive proof strategy. In this paper we will adopt this technique for parallel programs. Properties are formulated in interval temporal logic. An inplementation in the interactive theorem prover KIV has shown that this technique offers a high degree of automation and allows simple, local invariants.

[1]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[2]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[3]  Amnon Naamad,et al.  The STATEMATE semantics of statecharts , 1996, TSEM.

[4]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[5]  Rod M. Burstall,et al.  Program Proving as Hand Simulation with a Little Induction , 1974, IFIP Congress.

[6]  Maritta Heisel,et al.  A Dynamic Logic for Program Verification , 1989, Logic at Botik.

[7]  Anne Elisabeth Haxthausen,et al.  CASL - The CoFI Algebraic Specification Language (Tentative Design, version 0.95) - Language Summary, with annotations concerning the semantics of constructs , 1997 .

[8]  Bernd Finkbeiner,et al.  Verifying Temporal Properties of Reactive Systems: A STeP Tutorial , 2000, Formal Methods Syst. Des..

[9]  Ernst-Rüdiger Olderog,et al.  Verification of Sequential and Concurrent Programs , 1997, Graduate Texts in Computer Science.

[10]  A. Udaya Shankar,et al.  An introduction to assertional reasoning for concurrent systems , 1993, CSUR.

[11]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[12]  Ben C. Moszkowski,et al.  A Temporal Logic for Multilevel Reasoning about Hardware , 1985, Computer.

[13]  Zohar Manna,et al.  Temporal verification of reactive systems - safety , 1995 .

[14]  Kurt Stenzel,et al.  Formal System Development with KIV , 2000, FASE.

[15]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[16]  Zohar Manna,et al.  Automatic Generation of Invariants and Intermediate Assertions , 1997, Theor. Comput. Sci..

[17]  Werner Stephan,et al.  Modular reasoning about structured TLA specifications , 1998, Tool Support for System Specification, Development and Verification.

[18]  Ben C. Moszkowski,et al.  Executing temporal logic programs , 1986, Seminar on Concurrency.

[19]  C. A. R. Hoare,et al.  A Calculus of Durations , 1991, Inf. Process. Lett..

[20]  Luca Aceto,et al.  Structural Operational Semantics , 1999, Handbook of Process Algebra.

[21]  Dieter Hutter,et al.  VSE: Controlling the Complexity in Formal Software Developments , 1998, FM-Trends.

[22]  Wolfgang Reif,et al.  The KIV-Approach to Software Verification , 1995, KORSO Book.

[23]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[24]  Zohar Manna,et al.  Temporal Verification Diagrams , 1994, TACS.

[25]  E. Clarke,et al.  Symbolic Model Checking : IO * ’ States and Beyond * , 1992 .

[26]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

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

[28]  Jana Koehler,et al.  Deductive Planning and Plan Reuse in a Command Language Environment , 1992, ECAI.

[29]  Z. Manna,et al.  Diagram-based verification of discrete, real-time and hybrid systems , 1999 .

[30]  Andreas Thums,et al.  Formale Fehlerbaumanalyse , 2004 .