Efficient verification of sequential and concurrent systems

Formal methods provide means for rigorously specifying the desired behaviour of a hardware or software system, making a precise model of its actual behaviour, and then verifying whether that actual behaviour corresponds to the specification. My habiliation thesis reports on various contributions to this realm, where my main interest has been on algorithmic aspects. This is motivated by the observation that asymptotic worst-case complexity, often used to characterize the difficulty of algorithmic problems, is only loosely related to the difficulty encountered in solving those problems in practice. The two main types of system I have been working on are pushdown systems and Petri nets. Both are fundamental notions of computation, and both offer, in my opinion, particularly nice opportunities for combining theory and algorithmics. Pushdown systems are finite automata equipped with a stack; since the height of the stack is not bounded, they represent a class of infinite-state systems that model programs with (recursive) procedure calls. Moreover, we shall see that specifying authorizations is another, particularly interesting application of pushdown systems. While pushdown systems are primarily suited to express sequential systems, Petri nets model concurrent systems. My contributions in this area all concern unfoldings. In a nutshell, the unfolding of a net N is an acyclic version of N in which loops have been unrolled. Certain verification problems, such as reachability, have a lower complexity on unfoldings than on general Petri nets.

[1]  Jakob Rehof,et al.  Context-Bounded Model Checking of Concurrent Software , 2005, TACAS.

[2]  Edsger W. Dijkstra,et al.  A note on two problems in connexion with graphs , 1959, Numerische Mathematik.

[3]  Javier Esparza,et al.  Abstraction Refinement with Craig Interpolation and Symbolic Pushdown Systems , 2006, J. Satisf. Boolean Model. Comput..

[4]  Javier Esparza,et al.  jMoped: A Test Environment for Java Programs , 2007, CAV.

[5]  Thomas W. Reps,et al.  CodeSurfer/x86-A Platform for Analyzing x86 Executables , 2005, CC.

[6]  Javier Esparza,et al.  Symbolic Context-Bounded Analysis of Multithreaded Java Programs , 2008, SPIN.

[7]  Hao Wang,et al.  Reducing the Dependence of SPKI/SDSI on PKI , 2006, ESORICS.

[8]  Salvatore La Torre,et al.  Reducing Context-Bounded Concurrent Reachability to Sequential Reachability , 2009, CAV.

[9]  Pierre Ganty,et al.  Locality-Based Abstractions , 2005, SAS.

[10]  Stephan Melzer,et al.  Deadlock Checking Using Net Unfoldings , 1997, CAV.

[11]  Universal Turing,et al.  Proposal for Development in the Mathematical Division of an Automatic Computing Engine , 2011 .

[12]  Olivier Serre,et al.  A Saturation Method for Collapsible Pushdown Systems , 2012, ICALP.

[13]  Victor Khomenko,et al.  An Algorithm for Direct Construction of Complete Merged Processes , 2011, Petri Nets.

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

[15]  C. L. Hamblin,et al.  Computer Languages , 1985, Aust. Comput. J..

[16]  Stefan Schwoon,et al.  Model checking pushdown systems , 2002 .

[17]  Helmut Seidl,et al.  Precise interprocedural analysis through linear algebra , 2004, POPL.

[18]  Kenneth L. McMillan,et al.  Interpolation and SAT-Based Model Checking , 2003, CAV.

[19]  C.-H. Luke Ong,et al.  Symbolic Backwards-Reachability Analysis for Higher-Order Pushdown Systems , 2008, Log. Methods Comput. Sci..

[20]  Thomas W. Reps,et al.  Extended Weighted Pushdown Systems , 2005, CAV.

[21]  Dinghao Wu,et al.  KISS: keep it simple and sequential , 2004, PLDI '04.

[22]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[23]  César Rodríguez,et al.  Verification of Petri Nets with Read Arcs , 2012, CONCUR.

[24]  Stefan Schwoon Determinization and Complementation of Streett Automata , 2001, Automata, Logics, and Infinite Games.

[25]  Michel Raynal,et al.  Algorithms for mutual exclusion , 1986 .

[26]  Sriram K. Rajamani,et al.  Bebop: A Symbolic Model Checker for Boolean Programs , 2000, SPIN.

[27]  Rajeev Alur,et al.  Analysis of recursive state machines , 2001, TOPL.

[28]  Pierre Wolper,et al.  Automata theoretic techniques for modal logics of programs: (Extended abstract) , 1984, STOC '84.

[29]  Margherita Napoli,et al.  Reachability of Multistack Pushdown Systems with Scope-Bounded Matching Relations , 2011, CONCUR.

[30]  Maciej Koutny,et al.  Towards an Efficient Algorithm for Unfolding Petri Nets , 2001, CONCUR.

[31]  Simon S. Lam,et al.  A semantic model for authentication protocols , 1993, Proceedings 1993 IEEE Computer Society Symposium on Research in Security and Privacy.

[32]  Javier Esparza,et al.  Implementing LTL model checking with net unfoldings , 2001, SPIN '01.

[33]  Martin Sachenbacher,et al.  Model-based Test Generation Using Quantified CSPs , 2008 .

[34]  Javier Esparza,et al.  Efficient Algorithms for Alternating Pushdown Systems with an Application to the Computation of Certificate Chains , 2006, ATVA.

[35]  T. Lindvall ON A ROUTING PROBLEM , 2004, Probability in the Engineering and Informational Sciences.

[36]  Somesh Jha,et al.  Weighted pushdown systems and their application to interprocedural dataflow analysis , 2003, Sci. Comput. Program..

[37]  Christian Kern,et al.  Computing the reveals relation in occurrence nets , 2013, Theor. Comput. Sci..

[38]  Christof Löding Reachability Problems on Regular Ground Tree Rewriting Graphs , 2004, Theory of Computing Systems.

[39]  Anca Muscholl,et al.  Reachability Analysis of Communicating Pushdown Systems , 2010, FoSSaCS.

[40]  Javier Esparza,et al.  Efficient Algorithms for Model Checking Pushdown Systems , 2000, CAV.

[41]  Stefan Haar Unfold and cover: Qualitative diagnosability for Petri Nets , 2007, 2007 46th IEEE Conference on Decision and Control.

[42]  Vineet Kahlon,et al.  Reasoning About Threads Communicating via Locks , 2005, CAV.

[43]  Sagar Chaki,et al.  Verifying Concurrent Message-Passing C Programs with Recursive Calls , 2006, TACAS.

[44]  Ugo Montanari,et al.  An Event Structure Semantics for P/T Contextual Nets: Asymmetric Event Structures , 1998, FoSSaCS.

[45]  Stefan Schwoon,et al.  Comparison of Algorithms for Checking Emptiness on Büchi Automata , 2009, MEMICS.

[46]  César Rodríguez,et al.  An Improved Construction of Petri Net Unfoldings , 2013, FSFMA.

[47]  Thomas W. Reps,et al.  Reducing Concurrent Analysis Under a Context Bound to Sequential Analysis , 2008, CAV.

[48]  Javier Esparza,et al.  A BDD-Based Model Checker for Recursive Programs , 2001, CAV.

[49]  Didier Caucal,et al.  On the Regular Structure of Prefix Rewriting , 1990, Theor. Comput. Sci..

[50]  Vineet Kahlon Boundedness vs. Unboundedness of Lock Chains: Characterizing Decidability of Pairwise CFL-Reachability for Threads Communicating via Locks , 2009, 2009 24th Annual IEEE Symposium on Logic In Computer Science.

[51]  Ahmed Bouajjani,et al.  Bounded phase analysis of message-passing programs , 2012, International Journal on Software Tools for Technology Transfer.

[52]  Tayssir Touili,et al.  Regular Symbolic Analysis of Dynamic Networks of Pushdown Systems , 2005, CONCUR.

[53]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[54]  Michael Luttenberger,et al.  Newton ’ s Method for ω-Continuous Semirings ⋆ , 2008 .

[55]  Maciej Koutny,et al.  LP Deadlock Checking Using Partial Order Dependencies , 2000, CONCUR.

[56]  Richard Mayr Decidability and complexity of model checking problems for infinite state systems , 1998 .

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

[58]  Andrea Corradini,et al.  Efficient unfolding of contextual Petri nets , 2012, Theor. Comput. Sci..

[59]  Somesh Jha,et al.  Analysis of SPKI/SDSI certificates using model checking , 2002, Proceedings 15th IEEE Computer Security Foundations Workshop. CSFW-15.

[60]  Javier Esparza,et al.  A Note on On-the-Fly Verification Algorithms , 2005, TACAS.

[61]  Albert Benveniste,et al.  Diagnosis of asynchronous discrete-event systems: a net unfolding approach , 2003, IEEE Trans. Autom. Control..

[62]  Markus Holzer,et al.  Assembling molecules in ATOMIX is hard , 2004, Theor. Comput. Sci..

[63]  Salvatore La Torre,et al.  Context-Bounded Analysis of Concurrent Queue Systems , 2008, TACAS.

[64]  Informatyki Pan Reachability in contextual nets , 2014 .

[65]  G. Ramalingam,et al.  Context-sensitive synchronization-sensitive analysis is undecidable , 2000, TOPL.

[66]  Michael Benedikt,et al.  Model Checking of Unrestricted Hierarchical State Machines , 2001, ICALP.

[67]  J. Esparza,et al.  An Extension of Newton ’ s Method to ω-Continuous Semirings ? , 2007 .

[68]  Javier Esparza,et al.  A Uniform Framework for Problems on Context-Free Grammars , 2000, Bull. EATCS.

[69]  Javier Esparza,et al.  jMoped: A Java Bytecode Checker Based on Moped , 2005, TACAS.

[70]  Javier Esparza,et al.  Computation of Summaries Using Net Unfoldings , 2013, FSTTCS.

[71]  Tayssir Touili,et al.  Interprocedural Analysis of Concurrent Programs Under a Context Bound , 2008, TACAS.

[72]  Francesca Rossi,et al.  Contextual nets , 1995, Acta Informatica.

[73]  Maciej Koutny,et al.  Verification of bounded Petri nets using integer programming , 2007, Formal Methods Syst. Des..

[74]  Javier Esparza,et al.  Reachability Analysis of Pushdown Automata: Application to Model-Checking , 1997, CONCUR.

[75]  Glynn Winskel,et al.  Petri Nets, Event Structures and Domains, Part I , 1981, Theor. Comput. Sci..

[76]  L. R. Ford,et al.  NETWORK FLOW THEORY , 1956 .

[77]  Thomas Chatain,et al.  Building Tight Occurrence Nets from Reveals Relations , 2011, 2011 Eleventh International Conference on Application of Concurrency to System Design.

[78]  Walter Vogler,et al.  An Improvement of McMillan's Unfolding Algorithm , 1996, Formal Methods Syst. Des..

[79]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[80]  Igor Walukiewicz,et al.  Pushdown Processes: Games and Model-Checking , 1996, Inf. Comput..

[81]  Pierre Wolper,et al.  A direct symbolic approach to model checking pushdown systems , 1997, INFINITY.

[82]  Keijo Heljanko DEADLOCK AND REACHABILITY CHECKING WITH FINITE COMPLETE PREFIXES , 1999 .

[83]  Francesca Rossi,et al.  Contextual Occurence Nets and Concurrent Constraint Programming , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[84]  Andrea Corradini,et al.  On the Computation of McMillan's Prefix for Contextual Nets and Graph Grammars , 2010, ICGT.

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

[86]  Jens Knoop,et al.  An Automata-Theoretic Approach to Interprocedural Data-Flow Analysis , 1999, FoSSaCS.

[87]  Dexter Kozen,et al.  Parikh's theorem in commutative Kleene algebra , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[88]  Sriram K. Rajamani,et al.  NETRA:: seeing through access control , 2006, FMSE '06.

[89]  Hao Wang,et al.  Weighted Pushdown Systems and Trust-Management Systems , 2006, TACAS.

[90]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[91]  Alexander Wenner,et al.  Weighted Dynamic Pushdown Networks , 2010, MEMICS.

[92]  Grégoire Sutre,et al.  Accelerated Data-Flow Analysis , 2007, SAS.

[93]  Dejvuth Suwimonteerabuth Reachability in pushdown systems: algorithms and applications , 2009 .

[94]  Helmut Seidl,et al.  Precise Fixpoint Computation Through Strategy Iteration , 2007, ESOP.

[95]  Allen Newell,et al.  Report on a general problem-solving program , 1959, IFIP Congress.

[96]  Vineet Kahlon Boundedness vs . Unboundedness of Lock Chains : Characterizing Decidability of CFL-Reachability for Thre ads Communicating via Locks , 2009 .

[97]  Peter J. Stuckey,et al.  A declarative encoding of telecommunications feature subscription in SAT , 2009, PPDP '09.

[98]  Christos T. Karamanolis,et al.  Elements of distributed algorithms-modeling and analysis with petri nets Wolfgang Reisig [Book review] , 1999, IEE Proceedings - Software.

[99]  Andrea Corradini,et al.  McMillan's Complete Prefix for Contextual Nets , 2008, Trans. Petri Nets Other Model. Concurr..

[100]  Maciej Koutny,et al.  Canonical prefixes of Petri net unfoldings , 2002, Acta Informatica.

[101]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[102]  Thomas Reps,et al.  WPDS++: A C++ library for weighted pushdown systems , 2005 .

[103]  Alexandre Yakovlev,et al.  Unfolding and Finite Prefix for Nets with Read Arcs , 1998, CONCUR.

[104]  Akihiko Tozawa,et al.  Complexity Results on Balanced Context-Free Languages , 2007, FoSSaCS.

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

[106]  Javier Esparza,et al.  Reactive and Proactive Diagnosis of Distributed Systems Using Net Unfoldings , 2012, 2012 12th International Conference on Application of Concurrency to System Design.

[107]  Maciej Koutny,et al.  Invariant Semantics of Nets with Inhibitor Arcs , 1991, CONCUR.

[108]  Michael Luttenberger,et al.  On Fixed Point Equations over Commutative Semirings , 2007, STACS.

[109]  Ahmed Bouajjani,et al.  Context-Bounded Analysis of Multithreaded Programs with Dynamic Linked Structures , 2007, CAV.

[110]  Formale Methoden der Informatik,et al.  Erreichbarkeitsanalyse funktionaler Programme mit Grundtermersetzungssystemen , 2008 .

[111]  Kenneth L. McMillan,et al.  Symbolic model checking: an approach to the state explosion problem , 1992 .

[112]  Tayssir Touili,et al.  A generic approach to the static analysis of concurrent programs with procedures , 2003, POPL.

[113]  Paolo Baldan,et al.  Efficient Contextual Unfolding , 2011, CONCUR.

[114]  Igor Walukiewicz Model Checking CTL Properties of Pushdown Systems , 2000, FSTTCS.

[115]  G. Ramalingam Bounded Incremental Computation , 1996, Lecture Notes in Computer Science.

[116]  Maciej Koutny,et al.  Merged processes: a new condensed representation of Petri net behaviour , 2006, Acta Informatica.

[117]  Stefan Haar Types of Asynchronous Diagnosability and the Reveals-Relation in Occurrence Nets , 2010, IEEE Transactions on Automatic Control.

[118]  Stefan Haar,et al.  Reveal Your Faults: It's Only Fair! , 2013, 2013 13th International Conference on Application of Concurrency to System Design.

[119]  Anca Muscholl,et al.  Reachability Analysis of Communicating Pushdown Systems , 2010, FoSSaCS.

[120]  Tayssir Touili,et al.  On the Reachability Analysis of Acyclic Networks of Pushdown Systems , 2008, CONCUR.

[121]  Michael Luttenberger,et al.  An Extension of Newton's Method to omega -Continuous Semirings , 2007, Developments in Language Theory.

[122]  Javier Esparza,et al.  Unfoldings - A Partial-Order Approach to Model Checking , 2008, Monographs in Theoretical Computer Science. An EATCS Series.

[123]  Ugo Montanari,et al.  Contextual Petri Nets, Asymmetric Event Structures, and Processes , 2001, Inf. Comput..

[124]  Somesh Jha,et al.  On generalized authorization problems , 2003, 16th IEEE Computer Security Foundations Workshop, 2003. Proceedings..

[125]  Helmut Seidl,et al.  Precise Relational Invariants Through Strategy Iteration , 2007, CSL.

[126]  Jirí Srba,et al.  Interprocedural Dataflow Analysis over Weight Domains with Infinite Descending Chains , 2009, FoSSaCS.

[127]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[128]  Javier Esparza,et al.  Reachability Analysis of Multithreaded Software with Asynchronous Communication , 2005, FSTTCS.

[129]  Victor Khomenko,et al.  Contextual Merged Processes , 2013, Petri Nets.

[130]  C. Petri Kommunikation mit Automaten , 1962 .

[131]  Javier Esparza,et al.  SDSIrep: A Reputation System Based on SDSI , 2008, TACAS.