Reasoning about sequences of memory states

Motivated by the verification of programs with pointer variables, we introduce a temporal logic LTLmem whose underlying assertion language is the quantifier-free fragment of separation logic and the temporal logic on the top of it is the standard linear-time temporal logic LTL. We analyze the complexity of various model-checking and satisfiability problems for LTLmem, considering various fragments of separation logic (including pointer arithmetic), various classes of models (with or without constant heap), and the influence of fixing the initial memory state. We provide a complete picture based on these criteria. Our main decidability result is pspace-completeness of the satisfiability problems on the record fragment and on a classical fragment allowing pointer arithmetic. Σ10-completeness or Σ11-completeness results are established for various problems by reducing standard problems for Minsky machines, and underline the tightness of our decidability results.

[1]  Alain Finkel,et al.  From pointer systems to counter systems using shape analysis , 2006 .

[2]  Jean-François Condotta,et al.  Computational Complexity of Propositional Linear Temporal Logics Based on Qualitative Spatial or Temporal Reasoning , 2002, FroCoS.

[3]  Kshitij Bansal,et al.  Beyond Shapes: Lists with Ordered Data , 2009, FoSSaCS.

[4]  Shmuel Sagiv,et al.  TVLA: A System for Implementing Static Analyses , 2000, SAS.

[5]  Alain Finkel,et al.  Towards Model-Checking Programs with Lists , 2007, ILC.

[6]  Stéphane Demri,et al.  Reasoning About Sequences of Memory States , 2007, LFCS.

[7]  Anthony G. Cohn,et al.  Multi-Dimensional Modal Logic as a Framework for Spatio-Temporal Reasoning , 2002, Applied Intelligence.

[8]  Didier Galmiche,et al.  Tableaux and Resource Graphs for Separation Logic , 2010, J. Log. Comput..

[9]  Stéphane Demri,et al.  The Effects of Bounding Syntactic Resources on Presburger LTL , 2007, 14th International Symposium on Temporal Representation and Reasoning (TIME'07).

[10]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[11]  Peter W. O'Hearn,et al.  Symbolic Execution with Separation Logic , 2005, APLAS.

[12]  A. Bouajjani,et al.  On the verification problem of nonregular properties for nonregular processes , 1995, Proceedings of Tenth Annual IEEE Symposium on Logic in Computer Science.

[13]  A. Prasad Sistla,et al.  The complexity of propositional linear temporal logics , 1982, STOC '82.

[14]  Stéphane Demri,et al.  The Effects of Bounding Syntactic Resources on Presburger LTL , 2007, 14th International Symposium on Temporal Representation and Reasoning (TIME'07).

[15]  Peter W. O'Hearn,et al.  BI as an assertion language for mutable data structures , 2001, POPL '01.

[16]  Philippa Gardner,et al.  From Separation Logic to First-Order Logic , 2005, FoSSaCS.

[17]  David Nowak,et al.  Towards symbolic verification of programs handling pointers , 2004 .

[18]  Ahmed Bouajjani,et al.  Programs with lists are counter automata , 2011, Formal Methods Syst. Des..

[19]  J. Bergstra,et al.  Handbook of Process Algebra , 2001 .

[20]  D. Galmiche,et al.  Characterizing Provability in BI ’ s Pointer Logic through Resource Graphs , 2005 .

[21]  Véronique Cortier,et al.  Flatness Is Not a Weakness , 2000, CSL.

[22]  Eran Yahav,et al.  Verifying Temporal Heap Properties Specified via Evolution Logic , 2006, Log. J. IGPL.

[23]  Patrick Brézillon,et al.  Lecture Notes in Artificial Intelligence , 1999 .

[24]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[25]  D. Gabbay,et al.  Many-Dimensional Modal Logics: Theory and Applications , 2003 .

[26]  Pierre Wolper,et al.  An automata-theoretic approach to branching-time model checking , 2000, JACM.

[27]  Yassine Lakhnech,et al.  On Logics of Aliasing , 2004, SAS.

[28]  Peter W. O'Hearn,et al.  Shape Analysis for Composite Data Structures , 2007, CAV.

[29]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[30]  Peter W. O'Hearn,et al.  Computability and Complexity Results for a Spatial Assertion Language for Data Structures , 2001, APLAS.

[31]  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.

[32]  Deepak D'Souza,et al.  An automata-theoretic approach to constraint LTL , 2002, Inf. Comput..

[33]  Peter W. O'Hearn,et al.  BI as an assertion language for mutable data structures , 2001, POPL '01.

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

[35]  Saharon Shelah,et al.  On the temporal analysis of fairness , 1980, POPL '80.

[36]  Peter W. O'Hearn,et al.  Smallfoot: Modular Automatic Assertion Checking with Separation Logic , 2005, FMCO.

[37]  Joost-Pieter Katoen,et al.  Who is Pointing When to Whom? On the Automated Verification of Linked List Structures , 2004 .

[38]  Nils Klarlund,et al.  Automatic verification of pointer programs using monadic second-order logic , 1997, PLDI '97.

[39]  Thomas A. Henzinger,et al.  A really temporal logic , 1994, JACM.