Proving entailment between conceptual state specifications

Extended abstract
  • Eugene W. Stark
Semantics And Abstract Data Types
Part of the Lecture Notes in Computer Science book series (LNCS, volume 213)


The lack of expressive power of temporal logic as a specification language can be compensated to a certain extent by the introduction of powerful, high-level temporal operators, which are difficult to understand and reason about. A more natural way to increase the expressive power of a temporal specification language is by introducing conceptual state variables, which are auxiliary (unimplemented) variables whose values serve as an abstract representation of the internal state of the process being specified. The kind of specifications resulting from the latter approach are called conceptual state specifications.

This paper considers a central problem in reasoning about conceptual state specifications: the problem of proving entailment between specifications. A technique, based on the notion of simulation between machines, is shown to be sound for proving entailment. A kind of completeness result can also be shown, if specifications are assumed to satisfy certain well-formedness conditions. The role played by entailment in proofs of correctness is illustrated by the problem of proving that the concatenation of two FIFO buffers implements a FIFO buffer.


Temporal Logic Expressive Power Conceptual State Program Variable Liveness Property 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [BK83]
    H. Barringer, R. Kuiper, “A Temporal Logic Specification Method Supporting Hierarchical Development,” Manuscript, University of Manchester Department of Computer Science, November, 1983.Google Scholar
  2. [BK84]
    H. Barringer, R. Kuiper, “Now You May Compose Temporal Specifications,” Proceedings of the Sixteenth ACM Symposium on Theory of Computing, April, 1984, pp. 51–63.Google Scholar
  3. [Gor81]
    J.A. Goree, “Internal Consistency of a Distributed Transaction System with Orphan Detection,” MIT/LCS/TR-286, 1981.Google Scholar
  4. [GHM78]
    J.V. Guttag, E. Horowitz, D.R. Musser, “Abstract Data Types and Software Validation,” Comm. ACM 21, 12 (Dec., 1978), pp. 1048–1064.Google Scholar
  5. [HO80]
    B.T. Hailpern, S. S. Owicki, “Verifying Network Protocols Using Temporal Logic,” Technical Report No. 192, Computer Systems Laboratory, Stanford University, June, 1980.Google Scholar
  6. [Hoa72]
    C.A.R. Hoare, “Proof of Correctness of Data Representations,” Acta Informatica 1, 4 (1972), pp. 271–281.CrossRefGoogle Scholar
  7. [Jon81]
    C. B. Jones, “Development Methods for Computer Programs Including a Notion of Interference,” Wolfson College, June, 1981.Google Scholar
  8. [Lam80]
    L. Lamport, “'sometime’ is Sometimes ‘Not Never',” Seventh ACM Conference on Principles of Programming Languages, 1980.Google Scholar
  9. [Lam83]
    L. Lamport, “Specifying Concurrent Program Modules,” ACM Transactions on Programming Languages and Systems, 5, 2 (April, 1983), pp. 190–222.CrossRefGoogle Scholar
  10. [Lyn83]
    N.A. Lynch, “Concurrency Control for Resilient Nested Transactions,” ACM SIGACTSIGMOD Symposium on Principles of Database Systems, Atlanta, March, 1983.Google Scholar
  11. [MP83]
    Z. Manna, A. Pnueli, “Verification of Concurrent Programs: A Temporal Proof System,” Stanford University Report No. STAN-CS-83-967, June, 1983.Google Scholar
  12. [OL82]
    S. S. Owicki, L. Lamport, “Proving Liveness Properties of Concurrent Programs,” ACM Transactions on Programming Languages and Systems, 4, 3 (July 1982), 455–495.CrossRefGoogle Scholar
  13. [Pnu77]
    A. Pnueli, “The Temporal Logic of Programs,” IEEE Symposium on Foundations of Computer Science, 1977.Google Scholar
  14. [SM81]
    R. L. Schwartz, P. M. Melliar-Smith, “Temporal Logic Specification of Distributed Systems,” Second International Conference on Distributed Systems, INRIA, France, April, 1981.Google Scholar
  15. [Sta84]
    E. W. Stark, “Foundations of a Theory of Specification for Distributed Systems,” M.I.T. Laboratory for Computer Science Technical Report MIT/LCS/TR-342, August, 1984.Google Scholar
  16. [Sta85]
    E. W. Stark, “Proving Entailment Between Conceptual State Specifications,” Department of Computer Science Technical Report 85/15, State University of New York at Stony Brook, May, 1985.Google Scholar
  17. [Wol81]
    P. Wolper, “Temporal Logic Can Be More Expressive,” 22nd Annual Symposium on Foundations of Computer Science (1981), pp. 340–347.Google Scholar
  18. [Yon77]
    A. Yonezawa, “Specification and Verification Techniques for Parallel Programs Based on Message Passing Semantics,” MIT/LCS/TR-191, December, 1977.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Eugene W. Stark
    • 1
  1. 1.Department of Computer ScienceState University of New York at Stony BrookStony BrookUSA

Personalised recommendations