Procedure-Level Verification of Real-time Concurrent Systems

We want to develop verification techniques for real-time concurrent system specifications with high-level behavior structures. This work identifies two common engineering guidelines respected in the development of real-world software projects, structured programming and local autonomy in concurrent systems, and experiments with special verification algorithm based on those engineering wisdoms. The algorithm we have adopted respects the integrity of program structures, treats each procedure as an entity instead of as a group of statements, allows local state space search to exploit the local autonomy in concurrent systems without calculating the Cartesian products of local state spaces, and derives from each procedure declaration characteristic information which can be utilized in the verification process anywhere the procedure is invoked. We have endeavored to implement our idea, test it against an abstract extension of a real-world protocol in a mobile communication environment, and report the data.

[1]  Farn Wang,et al.  High-Level Execution Time Analysis , 1997, ARTS.

[2]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[3]  Richard Gerber,et al.  Compiling real-time programs into schedulable code , 1993, PLDI '93.

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

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

[6]  Farn Wang,et al.  Timing behavior analysis for real-time systems , 1995, Proceedings of Tenth Annual IEEE Symposium on Logic in Computer Science.

[7]  Cliff B. Jones,et al.  Systematic software development using VDM (2. ed.) , 1990, Prentice Hall International Series in Computer Science.

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

[9]  Ichiro Satoh,et al.  Semantics for a real-time object-oriented programming language , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[10]  Harvey M. Deitel,et al.  An introduction to operating systems , 1984 .

[11]  Andrew J. T. Colin Fundamentals of computer science , 1980 .

[12]  P. Merlin,et al.  Recoverability of Communication Protocols - Implications of a Theoretical Study , 1976, IEEE Transactions on Communications.

[13]  Edmund M. Clarke Automatic Verification of Finite-state Concurrent Systems , 1994, Application and Theory of Petri Nets.

[14]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[15]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[16]  Aloysius K. Mok,et al.  Safety analysis of timing properties in real-time systems , 1986, IEEE Transactions on Software Engineering.

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

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

[19]  Robert S. Boyer,et al.  A computational logic handbook , 1979, Perspectives in computing.

[20]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[21]  M. Gordon HOL: A Proof Generating System for Higher-Order Logic , 1988 .

[22]  Farnam Jahanian,et al.  A Method for Verifying Properties of Modechart Specifications , 1988, RTSS.

[23]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

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

[25]  Zohar Manna,et al.  Verifying Hybrid Systems , 1992, Hybrid Systems.

[26]  E. Horowitz Fundamentals of Programming Languages , 1983, Springer Berlin Heidelberg.

[27]  Zohar Manna,et al.  From Timed to Hybrid Systems , 1991, REX Workshop.

[28]  M. Diaz,et al.  Modeling and Verification of Time Dependent Systems Using Time Petri Nets , 1991, IEEE Trans. Software Eng..

[29]  Thomas A. Henzinger,et al.  Automatic symbolic verification of embedded systems , 1993, 1993 Proceedings Real-Time Systems Symposium.

[30]  Thomas A. Henzinger,et al.  Symbolic Model Checking for Real-Time Systems , 1994, Inf. Comput..

[31]  Ellis Horowitz,et al.  Fundamentals of Programming Languages , 1984, Springer Berlin Heidelberg.

[32]  Harry R. Lewis,et al.  Unsolvable classes of quantificational formulas , 1979 .

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

[34]  Farn Wang,et al.  Distributed real-time system specification and verification in APTL , 1993, TSEM.

[35]  Chin-Laung Lei,et al.  Modalities for Model Checking: Branching Time Logic Strikes Back , 1987, Sci. Comput. Program..

[36]  Farn Wang Reachability Analysis at Procedure Level through Timing Coincidence , 1995, CONCUR.

[37]  Parosh Aziz Abdulla,et al.  Verifying programs with unreliable channels , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[38]  Robert S. Boyer,et al.  Computational Logic , 1990, ESPRIT Basic Research Series.

[39]  Joseph Sifakis,et al.  Integration Graphs: A Class of Decidable Hybrid Systems , 1992, Hybrid Systems.

[40]  R. BurchJ.,et al.  Symbolic model checking , 1992 .

[41]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[42]  Ellis Horowitz,et al.  Fundamentals of programming languages (2. ed.) , 1984, Computer software engineering series.

[43]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.