Abstract
In the stepwise development of a distributed system, the problem arises of verifying that a specification at a lower level of abstraction correctly implements a specification at a higher level of abstraction. Forward and backward simulation have been proposed as verification techniques for this problem. In this paper, we study forward and backward simulation in a framework where specifications are given as labeled transition systems with fairness requirements. We aim at clarifying the connection between simulations and the auxiliary variable constructions of Abadi and Lamport. In the paper, we also relax the earlier restriction that backward simulations be finitary. For a simple specification notation, similar to the action system formalism or Unity, we furthermore present proof rules that correspond to forward and backward simulations. Finally, we relate the forward and backward simulation techniques to subset-constructions that can be used in automata theory, e.g. for deciding language containment.
supported in part by the Swedish Board for Technical Development (STU) under contract No. 89-01220P as part of Esprit BRA project SPEC, No. 3096
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
M. Abadi and L. Lamport. The existence of refinement mappings. In Proc. 3 rd IEEE Int. Symp. on Logic in Computer Science, Edinburgh, 1988.
R.J.R. Back and R. Kurki-Suonio. Distributed cooperation with action systems. ACM Trans. on Programming Languages and Systems, 10(4):513–554, Oct. 1988.
R.J.R. Back and K. Sere. Stepwise refinement of parallel algorithms. Technical Report A. 64, Åbo Akademi, Dept. of Computer Science and Mathematics, 1988.
K.M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1988.
R. de Nicola and F.W. Vaandrager. Three logics for branching bisimulation. In Proc. 5 th IEEE Int. Symp. on Logic in Computer Science, pages 118–129, 1990.
R. Gerth. Foundations of compositional program refinement — safety properties. Volume 430 of Lecture Notes in Computer Science, pages 777–808. Springer Verlag, 1990.
C.A.R. Hoare, H. Jifeng, and J.W. Sanders. Prespecification in data refinement. Information Processing Letters, 25:71–76, 1987.
C.A.R. Hoare. Proof of correctness of data representation. Acta Informatica, 1(4):271–281, 1972.
J.E. Hopcroft and J.D. Ullman. Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, 1979.
H. Jifeng. Process simulation and refinement. Formal Aspects of Computing, 1:229–241, 1989.
B. Jonsson. Compositional Verification of Distributed Systems. PhD thesis, Dept. of Computer Systems, Uppsala University, Sweden, Uppsala, Sweden, 1987. Available as report DoCS 87/09.
B. Jonsson. Modular verification of asynchronous networks. In Proc. 6 th ACM Symp. on Principles of Distributed Computing, Vancouver, Canada, pages 152–166, Vancouver, Canada, 1987. Extended Version as SICS Research Report R90010.
B. Jonsson. On decomposing and refining specifications of distributed systems. Volume 430 of Lecture Notes in Computer Science, pages 361–385. Springer Verlag, 1990.
M.B. Josephs. A state-based approach to communicating processes. Distributed Computing, 3:9–18, 1988.
A. Kleinman, Y. Moscowitz, A. Pnueli, and E. Shapiro. Communication with directed logic variables. In Proc. 18 th ACM Symp. on Principles of Programming Languages, 1991.
N. Klarlund and F.B. Schneider. Verifying safety properties using infinite-state automata. Technical Report TR 89-1039, Cornell University, Ithaca, New York, 1989.
L. Lamport. Specifying concurrent program modules. ACM Trans. on Programming Languages and Systems, 5(2):190–222, 1983.
L. Lamport. A simple approach to specifying concurrent systems, Communications of the ACM, 32(1):32–45, Jan. 1989.
S.S. Lam and A.U. Shankar. Protocol verfication via projections. IEEE Trans. on Software Engineering, SE-10(4):325–342, July 1984.
S.S. Lam and A.U. Shankar. Refinement and projection of relational specifications. Volume 430 of Lecture Notes in Computer Science, pages 454–486. Springer Verlag, 1990.
N.A. Lynch and M.R. Tuttle. Hierarchical correctness proofs for distributed algorithms. In Proc. 6 th ACM Symp. on Principles of Distributed Computing, Vancouver, Canada, pages 137–151, 1987.
M. Merritt. Completeness theorems for automata. Volume 430 of Lecture Notes in Computer Science, pages 544–560. Springer Verlag, 1990.
R. Milner. An algebraic definition of simulation between programs. pages 481–489. Also as Report No. CS-205, Computer Science Department, Stanford University.
Z. Manna and A. Pnueli. The temporal framework for concurrent programs. In Boyer and Moore, editors, The Correctness Problem in Computer Science, pages 215–274. Academic Press, 1981.
Z. Manna and A. Pnueli. Adequate proof principles for invariance and liveness properties of concurrent programs. Science of Computer Programming, 4(4):257–289, 1984.
Z. Manna and A. Pnueli. The anchored version of the temporal framework. In de Bakker, de Roever, and Rozenberg, editors, Linear Time, Branching Time and Partial Order in Logics and Models for Concurrency, volume 354 of Lecture Notes in Computer Science, pages 201–284. Springer Verlag, 1989.
T. Nipkow. Non-deterministic data types. Acta Informatica, 22:629–661, 1986.
F. Orava. Verifying safety and deadlock properties of networks of asynchronously communicating processes. In Proc. 9 th IFIP WG6.1 Symp. on Protocol Specification, Testing, and Verification, Twente, Holland, 1989.
G. Plotkin. A structural approach to operational semantics. Technical Report DAIMI FN-19, Computer Science Department, Aarhus University, Denmark, 1981.
A. Pnueli. Applications of temporal logic to the specification and verification of reactive systems: A survey of current trends. Volume 224 of Lecture Notes in Computer Science, pages 510–584. Springer Verlag, 1986.
A.P. Sistla. On verifying that a concurrent program satisfies a non-deterministic specification. Technical Report TR 88-378.01.1, Computer and Intelligent Systems Lab. GTE Laboratories, May 1988.
A.U. Shankar and S.S. Lam. An HDLC protocol specification and its verification using image protocols. ACM Transactions on Computer Systems, 1(4):331–368, Nov. 1983.
E.W. Stark. Foundations of a Theory of Specification for Distributed Systems. PhD thesis, Massachussetts Inst. of Technology, 1984. Available as Report No. MIT/LCS/TR-342.
E.W. Stark. Proving entailment between conceptual state specifications. Theoretical Computer Science, 56:135–154, 1988.
M.Y. Vardi. Verification of concurrent programs: The automata theoretic framework. In Proc. 2 nd IEEE Int. Symp. on Logic in Computer Science, 1987.
J. Lundelius Welch, L. Lamport, and N. Lynch. A lattice-structured proof technique applied to a minimum spanning tree algorithm, July 1988.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jonsson, B. (1991). Simulations between specifications of distributed systems. In: Baeten, J.C.M., Groote, J.F. (eds) CONCUR '91. CONCUR 1991. Lecture Notes in Computer Science, vol 527. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54430-5_99
Download citation
DOI: https://doi.org/10.1007/3-540-54430-5_99
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54430-2
Online ISBN: 978-3-540-38357-4
eBook Packages: Springer Book Archive