Graph models for reachability analysis of concurrent programs

The problem of analyzing concurrent systems has been investigated by many researchers, and several solutions have been proposed. Among the proposed techniques, reachability analysis—systematic enumeration of reachable states in a finite-state model—is attractive because it is conceptually simple and relatively straightforward to automate and can be used m conjunction with model-checking procedures to check for application-specific as well as general properties. This article shows that the nature of the translation from source code to a modeling formalism is of greater practical importance than the underlying formalism. Features ldentitled as pragmatically important are the representation of internal choice, selection of a dynamic or static matching rule, and the ease of applying reductions. Since combinatorial explosion is the primary impediment to application of reachability analysls, a particular concern in choosing a model is facilitating divide-and-conquer analysis of large programs. Recently, much interest in finite-state verification systems has centered on algebraic theories of concurrency. Algebraic structure can be used to decompose reachability analysis based on a flowgraph model. The semantic equivalence of graph and Petri net-based models suggests that one ought to be able to apply a similar strategy for decomposing Petri nets. We describe how category-theoretic treatments of Petri nets provide a basis for decomposition of Petri net reachability analysis.

[1]  Jan A. Bergstra,et al.  Process Algebra for Synchronous Communication , 1984, Inf. Control..

[2]  Richard M. Karp,et al.  Parallel Program Schemata , 1969, J. Comput. Syst. Sci..

[3]  Michal Young,et al.  Compositional reachability analysis using process algebra , 1991, TAV4.

[4]  Ernst-Rüdiger Olderog,et al.  Strong bisimilarity on nets: a new concept for comparing net semantics , 1988, REX Workshop.

[5]  Nicolas Halbwachs,et al.  Programming and verifying critical systems by means of the synchronous data-flow language LUSTRE , 1991 .

[6]  Thomas Filkorn,et al.  Generating BDDs for Symbolic Model Checking in CCS , 1991, CAV.

[7]  James L. Peterson,et al.  Petri net theory and the modeling of systems , 1981 .

[8]  M. Young,et al.  How to leave out details: error-preserving abstractions of state-space models , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[9]  José Meseguer,et al.  Petri Nets Are Monoids , 1990, Inf. Comput..

[10]  Richard N. Taylor,et al.  Separations of concerns in the Chiron-1 user interface development and management system , 1993, INTERCHI.

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

[12]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[13]  Krzysztof R. Apt,et al.  A Static Analysis of CSP Programs , 1983, Logic of Programs.

[14]  Sol M. Shatz,et al.  Design and Implementation of a Petri Net Based Toolkit for Ada Tasking Analysis , 1990, IEEE Trans. Parallel Distributed Syst..

[15]  Lori A. Clarke,et al.  A Compact Petri Net Representation for Concurrent Programs , 1995, 1995 17th International Conference on Software Engineering.

[16]  Richard N. Taylor,et al.  A concurrency analysis tool suite for Ada programs: rationale, design, and preliminary experience , 1995, TSEM.

[17]  Rance Cleaveland,et al.  A Semantics Based Verification Tool for Finite State Systems , 1989, PSTV.

[18]  N. Halbwachs,et al.  Programming and verifying critical systems by means of the synchronous data-flow language LUSTRE , 1991, SIGSOFT '91.

[19]  Wei Jen Yeh,et al.  Re‐designing tasking structures of Ada programs for analysis: A case study , 1994, Softw. Test. Verification Reliab..

[20]  Barbara G. Ryder,et al.  Static Infinite Wait Anomaly Detection in Polynomial Time , 1990, ICPP.

[21]  Joseph Sifakis,et al.  A Toolbox For The Verification Of LOTOS Programs , 1992, International Conference on Software Engineering.

[22]  Kevin Smith,et al.  Start/Pat: a parallel-programming toolkit , 1989, IEEE Software.

[23]  George S. Avrunin,et al.  Constrained expressions: Adding analysis capabilities to design methods for concurrent software systems , 1986, IEEE Transactions on Software Engineering.

[24]  Philippe Schnoebelen,et al.  Strong Bisimilarity on Nets Revisited , 1991, PARLE.

[25]  Lori A. Clarke,et al.  Data flow analysis for verifying properties of concurrent programs , 1994, SIGSOFT '94.

[26]  Richard N. Taylor,et al.  User interface development and software environments: the Chiron-1 system , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[27]  Charles E. McDowell,et al.  Computing reachable states of parallel programs , 1991, PADD '91.

[28]  Rami R. Razouk,et al.  Interactive State-Space Analysis of Concurrent Systems , 1987, IEEE Transactions on Software Engineering.

[29]  Charles E. McDowell,et al.  A Practical Algorithm for Static Analysis of Parallel Programs , 1989, J. Parallel Distributed Comput..

[30]  Jos C. M. Baeten,et al.  Another Look at Abstraction in Process Algebra (Extended Abstract) , 1987, ICALP.

[31]  Dan C. Marinescu,et al.  Modeling concurrent programs with colored Petri nets , 1994, J. Syst. Softw..

[32]  Wei Jen Yeh Controlling state explosion in reachability analysis , 1993 .

[33]  Dan C. Marinescu,et al.  VERT-verification of real-time programs , 1991, [1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference.

[34]  Glynn Winskel,et al.  Petri Nets, Algebras, Morphisms, and Compositionality , 1987, Inf. Comput..

[35]  Pierre Wolper,et al.  Expressing interesting properties of programs in propositional temporal logic , 1986, POPL '86.

[36]  Rance Cleaveland,et al.  The concurrency workbench: a semantics-based tool for the verification of concurrent systems , 1993, TOPL.

[37]  Sol M. Shatz,et al.  A petri net framework for automated static analysis of Ada tasking behavior , 1988, J. Syst. Softw..

[38]  Tadao Murata,et al.  Use of Petri-Net Invariants to Detect Static Deadlocks in Ada Programs , 1986, FJCC.

[39]  Gerard J. Holzmann,et al.  Automated Protocol Validation in Argos: Assertion Proving and Scatter Searching , 1987, IEEE Transactions on Software Engineering.

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

[41]  Lori A. Clarke,et al.  Data flow analysis of concurrent systems that use the rendezvous model of synchronization , 1991, TAV4.

[42]  Scott A. Smolka,et al.  Winston: A Tool for Hierarchical Design and Simulation of Concurrent Systems , 1988, Specification and Verification of Concurrent Systems.

[43]  Richard E. Ladner,et al.  The Complexity of Problems in Systems of Communicating Sequential Processes , 1980, J. Comput. Syst. Sci..

[44]  Barbara G. Ryder,et al.  A model of Ada programs for static deadlock detection in polynomial times , 1991, PADD '91.

[45]  Richard N. Taylor,et al.  Structural Testing of Concurrent Programs , 1992, IEEE Trans. Software Eng..

[46]  C. A. R. Hoare,et al.  A Theory of Communicating Sequential Processes , 1984, JACM.

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

[48]  Lori A. Clarke,et al.  Task interaction graphs for concurrency analysis , 1989, ICSE '89.

[49]  George S. Avrunin,et al.  Automated Analysis of Concurrent Systems With the Constrained Expression Toolset , 1991, IEEE Trans. Software Eng..