Advertisement

Abstract

In this survey paper we present some of the recent developments in the temporal formal system for the specification, verification and development of reactive programs. While the general methodology remains very much the one presented in some earlier works on the subject, such as [MP83c,MP83a,Pnu86], there have been several technical improvements and gained insights in understanding the computational model, the logic itself, the proof system and its presentation, and connections with alternative formalisms, such as finite automata. In this paper we explicate some of these improvements and extensions.

The main difference between this and preceding versions is that here we consider a notion of validity for temporal formulae, which is anchored at the initial state of the computation. The paper discusses some of the consequences of this decision.

Key words

Temporal Logic Reactive Systems Concurrent Programs Specification Verification Proof System Classification of Properties Safety Liveness Recurrence Responsiveness Progress Fairness Fair Transition System 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [AL88]
    M. Abadi and L. Lamport, The existence of refinement mappings, Proc. 3rd IEEE Symp. Logic in Comp. Sci., 1988, pp. 165–175.Google Scholar
  2. [AS85]
    B. Alpern and F.B. Schneider, Defining liveness, Info. Proc. Lett. 21, 1985.Google Scholar
  3. [AS87]
    B. Alpern and F.B. Schneider, Recognizing safety and liveness, Distributed Computing 2, 1987, pp. 117–126.CrossRefGoogle Scholar
  4. [AS89]
    B. Alpern and F.B. Schneider, Verifying temporal properties without temporal logic, ACM Trans. Prog. Lang. Syst. 11, 1989.Google Scholar
  5. [Bac80]
    R.J.R. Back, Correctness preserving program refinements: Proof theory and applications, Mathematical Center Tracts, 131, Center for Mathematics and Computer Science (CWI), Amsterdam, 1980.Google Scholar
  6. [BK83]
    R.J.R Back and R. Kurki-Suonio, Decentralization of process nets with a centalized control, Proc. 2nd ACM Symp. Princ. of Dist. Comp., 1983, pp. 131–142.Google Scholar
  7. [BKP84]
    H. Barringer, R. Kuiper, and A Pnueli, Now you may compose temporal logic specifications, Proc. 16th ACM Symp. Theory of Comp., 1984, pp. 51–63.Google Scholar
  8. [BMP83]
    M. Ben-Ari, Z. Manna, and A Pnueli, The temporal logic of branching time, Acta Informatica 20, 1983, pp. 207–226.CrossRefGoogle Scholar
  9. [CES86]
    E.M. Clarke, E.A. Emerson, and A.P. Sistla, Automatic verification of finite state concurrent systems using temporal logic specifications, ACM Trans. Prog. Lang. Syst. 8, 1986, pp. 244–263.CrossRefGoogle Scholar
  10. [CM88]
    K.M. Chandy and J Misra, Parallel Program Design, Addison-Wesley, 1988.Google Scholar
  11. [Dij76]
    E.W. Dijkstra, A Discipline of Programming, Prentice-Hall, New Jersey, 1976.Google Scholar
  12. [dRZ87]
    W.P. de Roever and J. Zwiers, Different Styles of Compositional and Modular Proof-systems for a CCS/CSP-like Language, Technical Report, Philips Research, 1987.Google Scholar
  13. [EH86]
    E.A. Emerson and J.Y. Halpern, 'sometimes’ and ‘not never’ revisited: On branching time versus linear time, J. ACM 33, 1986, pp. 151–178.CrossRefGoogle Scholar
  14. [GPSS80]
    D. Gabbay, A. Pnueli, S. Shelah, and J. Stavi, On the temporal analysis of fairness, Proc. 6th ACM Symp. Princ. of Prog. Lang., 1980, pp. 163–173.Google Scholar
  15. [Gri81]
    D. Gries, The Science of Programming, Springer, New-York, 1981.Google Scholar
  16. [Jon87]
    B. Jonsson, Compositional Verification of Distributed Systems, Ph.D. thesis, Uppsala University, Sweden, 1987.Google Scholar
  17. [Kam68]
    J.A.W. Kamp, Tense Logic and the Theory of Order, Ph.D. thesis, UCLA, 1968.Google Scholar
  18. [Kam85]
    M. Kaminski, A classification of ω-regular languages, Theor. Comp. Sci. 36, 1985, pp. 217–229.CrossRefGoogle Scholar
  19. [KdR83]
    R. Koymans and W.P. de Roever, Examples of a real-time temporal logic specifications, The Analysis of Concurrent Systems, Springer, 1983, pp. 231–252.Google Scholar
  20. [KP87]
    S. Katz and D. Peled, Interleaving Set Temporal Logic, Technical Report 456, Dept. of Computer Science, Technion, Haifa, Israel, 1987.Google Scholar
  21. [KVdR83]
    R. Koymans, J. Vytopyl, and W.P. de Roever, Real-time programming and asynchronous message passing, Proc. 2nd ACM Symp. Princ. of Dist. Comp., 1983.Google Scholar
  22. [Lam77]
    L. Lamport, Proving the correctness of multiprocess programs, Trans. on Software Engineering 1, 1977.Google Scholar
  23. [Lam83a]
    L. Lamport, Specifying concurrent program modules, ACM Trans. Prog. Lang. Syst. 5, 1983, pp. 190–222.CrossRefGoogle Scholar
  24. [Lam83b]
    L. Lamport, What good is temporal logic, Proc. IFIP Congress (R.E.A. Mason, ed.), North-Holland, 1983, pp. 657–668.Google Scholar
  25. [Lan69]
    L.H. Landweber, Decision problems for ω-automata, Mathematical Systems Theory 4, 1969, pp. 376–384.CrossRefGoogle Scholar
  26. [LP84]
    O. Lichtenstien and A. Pnueli, Checking that finite state concurrent programs satisfy their linear specification, Proc. 10th ACM Symp. Princ. of Prog. Lang., 1984, pp. 97–107.Google Scholar
  27. [LPZ85]
    O. Lichtenstien, A. Pnueli, and L. Zuck, The glory of the past, Proc. Conf. Logics of Programs, Lec. Notes in Comp. Sci. 193, Springer, 1985, pp. 196–218.Google Scholar
  28. [Man74]
    Z. Manna, Mathematical Theory of Computation, McGraw-Hill, 1974.Google Scholar
  29. [MP71]
    R. McNaughton and S. Papert, Counter Free Automata, MIT Press, 1971.Google Scholar
  30. [MP83a]
    Z. Manna and A. Pnueli, How to cook a temporal proof system for your pet language, Proc. 9th ACM Symp. Princ. of Prog. Lang., 1983, pp. 141–154.Google Scholar
  31. [MP83b]
    Z. Manna and A. Pnueli, Proving precedence properties: the temporal way, Proc. 10th Int. Colloq. Aut. Lang. Prog., Lec. Notes in Comp. Sci. 154, Springer, 1983, pp. 491–512.Google Scholar
  32. [MP83c]
    Z. Manna and A. Pnueli, Verification of concurrent programs: A temporal proof system, Foundations of Computer Science IV, Distributed Systems: Part 2 (J.W. De-Bakker and J. Van Leuwen, eds.), Mathematical Centre Tracts 159, Center for Mathematics and Computer Science (CWI), Amsterdam, 1983, pp. 163–255.Google Scholar
  33. [MP84]
    Z. Manna and A. Pnueli, Adequate proof principles for invariance and liveness properties of concurrent programs, Sci. Comp. Prog. 32, 1984, pp. 257–289.CrossRefGoogle Scholar
  34. [MP87]
    Z. Manna and A. Pnueli, Specification and verification of concurrent programs by ∀-automata, Proc. 14th ACM Symp. Princ. of Prog. Lang., 1987, pp. 1–12.Google Scholar
  35. [MW78]
    Z. Manna and R. Waldinger, Is 'sometime’ sometimes better than ‘always'?: intermitent assertions in proving program correctness, Comm. ACM 21, 1978, pp. 159–172.CrossRefGoogle Scholar
  36. [NGO85]
    V. Nguyen, D. Gries, and S. Owicki, A model and temporal proof system for network of processes, Proc. 12th ACM Symp. Princ. of Prog. Lang., 1985, pp. 121–131.Google Scholar
  37. [OL82]
    S. Owicki and L. Lamport, Proving liveness properties of concurrent programs, ACM Trans. Prog. Lang. Syst. 4, 1982, pp. 455–495.CrossRefGoogle Scholar
  38. [Pnu86]
    A. Pnueli, Applications of temporal logic to the specification and verification of reactive systems: A survey of current trends, Current Trends in Concurrency, Lec. Notes in Comp. Sci. 224, Springer, 1986, pp. 510–584.Google Scholar
  39. [QS83]
    J.P. Queille and J. Sifakis, Fairness and related properties in transition systems — A temporal logic to deal with fairness, Acta Informatica 19, 1983, pp. 195–220.CrossRefGoogle Scholar
  40. [Rab72]
    M.O. Rabin, Automata on Infinite Objects and Churc's Problem, Volume 13 of Regional Conference Series in Mathematics, Amer. Math. Soc., 1972.Google Scholar
  41. [Rei85]
    W. Reisig, Petri Nets: An Introduction, Volume 4 of EATCS Monographs on Theoretical Computer Science, Springer, 1985.Google Scholar
  42. [Sis85]
    A.P. Sistla, On caracterization of safety and liveness properties in temporal logic, Proc. 4th ACM Symp. Princ. of Dist. Comp., 1985, pp. 39–48.Google Scholar
  43. [Str82]
    R.S. Street, Propositional dynamic logic with converse, Information and Control 54, 1982, pp. 121–141.CrossRefGoogle Scholar
  44. [Tho81]
    W. Thomas, A combinatorial approach to the theory of ω-automata, Inf. and Cont. 48, 1981, pp. 261–283.CrossRefGoogle Scholar
  45. [VW86]
    M.Y. Vardi and P. Wolper, Automata theoretic techniques for modal logics of programs, J. Comp. Sys. Sci. 32, 1986, pp. 183–221.CrossRefGoogle Scholar
  46. [Wag79]
    K. Wagner, On ω—regular sets, Information and Control 43, 1979, pp. 123–177.CrossRefGoogle Scholar
  47. [WGS87]
    J. Widom, D. Gries, and F.B. Schneider, Completeness and incompleteness of trace-based network proof system, Proc. 14th ACM Symp. Princ. of Prog. Lang., 1987, pp. 27–38.Google Scholar
  48. [Wol83]
    P. Wolper, Temporal logic can be more expressive, Inf. and Cont. 56, 1983, pp. 72–99.CrossRefGoogle Scholar
  49. [Zuc86]
    L. Zuck, Past Temporal Logic, Ph.D. thesis, Weizmann Institute, 1986.Google Scholar
  50. [Zuc87]
    L. Zuck, Manuscript, 1987.Google Scholar
  51. [Zwi88]
    J. Zwiers, Compositionality, Concurrency and Partial Correctness: Proof theories for networks of processes and their connection, Ph.D. thesis, University of Eindhoven, The Netherlands, 1988. To appear in the LNCS-series, Springer.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Zohar Manna
    • 1
    • 2
  • Amir Pnueli
    • 3
  1. 1.Department of Computer ScienceStanford UniversityStanford
  2. 2.Department of Applied MathematicsWeizmann Institute of ScienceRehovot
  3. 3.Department of Applied MathematicsWeizmann Institute of ScienceRehovot

Personalised recommendations