Skip to main content
Log in

Cones and foci: A mechanical framework for protocol verification

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

We define a cones and foci proof method, which rephrases the question whether two system specifications are branching bisimilar in terms of proof obligations on relations between data objects. Compared to the original cones and foci method from Groote and Springintveld, our method is more generally applicable, because it does not require a preprocessing step to eliminate τ-loops. We prove soundness of our approach and present a set of rules to prove the reachability of focus points. Our method has been formalized and proved correct using PVS. Thus we have established a framework for mechanical protocol verification. We apply this framework to the Concurrent Alternating Bit Protocol.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2

Similar content being viewed by others

Notes

  1. To cover μCRL specifications with successful termination, LPEs should include a summand \( \sum_{a\in {\it Act} \cup\{\tau\}}\sum_{\ell: L_a}a(f_a(d,\ell)) \vartriangleleft h_a(d,\ell) \vartriangleright \delta \). The cones and foci method extends to this setting without any complication. However, this extension would complicate the matching criteria in Definition 3.3. For the sake of presentation, successful termination is not taken into account in this paper.

  2. LPEs exclude “unguarded” recursive specifications such as X = X, which can have multiple solutions.

References

  1. F. Baader and T. Nipkow, Term rewriting and all that, Cambridge University Press, 1998.

  2. B. Badban, W.J. Fokkink, J.F. Groote, J. Pang, and J.C. van de Pol, “Verification of a sliding window protocol in μCRL and PVS,” Form. Asp. Comp., Vol. 17, pp. 342–388, 2005.

    Google Scholar 

  3. J.C.M. Baeten J.A. Bergstra, and J.W. Klop, “On the consistency of Koomen's fair abstraction rule,” Theor. Comp. Sci., Vol. 51, pp. 129–176, 1987.

    Google Scholar 

  4. J.C.M. Baeten and W.P. Weijland, Process Algebra, vol. 18 of Cambridge Tracts in Theoretical Computer Science, Cambridge University Press, 1990.

  5. T. Basten, “Branching bisimilarity is an equivalence indeed!,” Inform. Proc. Lett., Vol. 58, pp. 141–147, 1996.

  6. J.A. Bergstra and J.W. Klop, “Algebra of communicating processes with abstraction,” Theor. Comp. Sci., Vol. 37, pp. 77–121, 1985.

    Google Scholar 

  7. M.A. Bezem and J.F. Groote, “Invariants in process algebra with data,” in Proc. 5th Conference on Concurrency Theory, LNCS 836, Springer, 1994, pp. 401–416.

  8. S.C.C. Blom, W.J. Fokkink, J.F. Groote, I.A. van Langevelde, B. Lisser, and J.C. van de Pol,“ μCRL: A toolset for analysing algebraic specifications,” in Proc. 13th Conference on Computer Aided Verification, Springer, LNCS 2102, 2001, pp. 250–254.

  9. S.C.C. Blom and J.C. van de Pol, “State space reduction by proving confluence,” in Proc. 14th Conference on Computer Aided Verification, Springer, LNCS 2404, 2002, pp. 596–609.

  10. K.M. Chandy and J. Misra, Parallel Program Design. A Foundation, Addison Wesley, 1988.

  11. A. Cimatti, F. Giunchiglia, P. Pecchiari, B. Pietra, J. Profeta, D. Romano, P. Traverso, and B. Yu, “A provably correct embedded verifier for the certification of safety critical software,” in Proc. 9th Conference on Computer Aided Verification, Springer, LNCS 1254, 1997, pp. 202–213.

  12. E.M. Clarke, O. Grumberg, and D.A. Peled, Model Checking, MIT Press, 2000.

  13. B. Courcelle, “Recursive applicative program schemes” in Handbook of Theoretical Computer Science, Volume B, Formal Methods and Semantics, Elsevier, 1990, pp. 459–492.

  14. W.J. Fokkink, J.F. Groote, J. Pang, B. Badban, and J.C. van de Pol, “Verifying a sliding window protocol in μCRL,” in Proc. 10th Conference on Algebraic Methodology and Software Technology, Springer, LNCS 3116, 2004, pp. 148–163.

  15. W.J. Fokkink and J. Pang, “Cones and foci for protocol verification revisited,” in Proc. 6th Conference on Foundations of Software Science and Computation Structures, Springer, LNCS 2620, 2003, pp. 267–281.

  16. W.J. Fokkink and J.C. van de Pol, “Simulation as a correct transformation of rewrite systems,” in Proceedings of 22nd Symposium on Mathematical Foundations of Computer Science, Springer, LNCS 1295, 1997, pp. 249–258.

  17. L.-Å. Fredlund, J.F. Groote, and H.P. Korver, “Formal verification of a leader election protocol in process algebra,” Theor. Comp. Sci., Vol. 177, pp. 459–486, 1997.

    Google Scholar 

  18. H. Garavel, F. Lang, and R. Mateescu, “An overview of CADP 2001,” Technical Report RT-0254, INRIA Rhone-Alpes, 2001.

  19. R.J. van Glabbeek and W.P. Weijland, “Branching time and abstraction in bisimulation semantics,” J. ACM, Vol. 43, pp. 555–600, 1996.

    Google Scholar 

  20. M. Glusman and S. Katz, “A mechanized proof environment for the convenient computations proof method,” Form. Meth. Syst. Des., Vol. 23, No. 2, pp. 115–142, 2003.

  21. W. Goerigk and F. Simon, “Towards rigorous compiler implementation verification,” in Collaboration between Human and Artificial Societies, Coordination and Agent-Based Distributed Computing, Springer, LNCS 1624, 1999, pp. 62–73.

  22. J.F. Groote and B. Lisser, “Computer assisted manipulation of algebraic process specifications,” in Proc. 3rd Workshop on Verification and Computational Logic, Technical Report DSSE-TR-2002-5. Department of Electronics and Computer Science, University of Southampton, 2002.

  23. J.F. Groote, F. Monin, and J.C. van de Pol, “Checking verifications of protocols and distributed systems by computer,” in Proc. 9th Conference on Concurrency Theory, Springer, LNCS 1466, 1998, pp. 629–655.

  24. J.F. Groote and A. Ponse, “The syntax and semantics of μCRL,” in Proc. 1st Workshop on the Algebra of Communicating Processes, Workshops in Computing Series, Springer, 1995, pp. 26–62.

  25. J.F. Groote A. Ponse, and Y.S. Usenko, “Linearization in parallel pCRL,” J. Logic Algeb. Prog., Vol. 48, pp. 39–72, 2001.

    Google Scholar 

  26. J.F. Groote and M. Reniers, “Algebraic process verification,” in J.A. Bergstra, A. Ponse, and S.A. Smolka (Eds.), Handbook of Process Algebra, Elsevier, 2001, pp. 1151–1208.

  27. J.F. Groote and J. Springintveld, “Focus points and convergent process operators. A proof strategy for protocol verification,” J. Logic Algeb. Prog., Vol. 49, pp. 31–60, 2001.

    Google Scholar 

  28. J.F. Groote and F.W. Vaandrager, “An efficient algorithm for branching bisimulation and stuttering equivalence,” in Proc. 17th Colloquium on Automata, Languages and Programming, Springer, LNCS 443, 1990, pp. 626–638.

  29. J.F. Groote and J.J. van Wamel, “The parallel composition of uniform processes with data” Theor. Comp. Sci., Vol. 266, pp. 631–652, 2001.

  30. B. Jonsson, Compositional Verification of Distributed Systems. PhD thesis, Department of Computer Science, Uppsala University, 1987.

  31. C.P.J. Koymans and J.C. Mulder, “A modular approach to protocol verification using process algebra” in Applications of Process Algebra, Cambridge Tracts in Theoretical Computer Science 17, Cambridge University Press, 1990, pp. 261–306.

  32. L. Lamport, “The temporal logic of actions,” ACM Trans. Prog. Lang. Syst., Vol. 16, No. 3, pp. 872–923, 1994.

  33. J. Loeckx, H.-D. Ehrich, and M. Wolf, Specification of Abstract Data Types, Wiley/Teubner, 1996.

  34. N.A. Lynch and M.R. Tuttle, “Hierarchical correctness proofs for distributed algorithms,” in Proc. 6th ACM Symposium on Principles of Distributed Computing, ACM, 1987, pp. 137–151.

  35. N.A. Lynch and M.R. Tuttle, “An introduction to input/output automata,” CWI Quarterly, Vol. 2, No. 3, pp. 219–246, 1989.

  36. N.A. Lynch and F.W. Vaandrager, “Forward and backward simulations. Part I: Untimed systems,” Inform. Comp., Vol. 121, pp. 214–233, 1995.

  37. S. Merz, “Mechanizing TLA in Isabelle,” in Proc. Workshop on Verification in New Orientations, University of Maribor, 1995, pp. 54–74.

  38. O. Müller and T. Nipkow, “Traces of I/O-automata in Isabelle/HOLCF,” in Proc. 7th Conference on Theory and Practice of Software Development, Springer, LNCS 1214, 1997, pp. 580–594.

  39. G. Necula, “Translation validation for an optimizing compiler,” in Proc. 2000 ACM SIGPLAN Conference on Programming Language Design and Implementation, SIGPLAN Notices, ACM, Vol. 35, pp. 83–94, 2000.

  40. T. Nipkow and L. Prensa Nieto, “Owicki/Gries in Isabelle/HOL” in Proc. 2nd Conference on Fundamental Approaches in Software Engineering, Springer, LNCS 1577, 1999, pp. 188–203.

  41. T. Nipkow and K. Slind, “I/O automata in Isabelle/HOL,” in Proc. 2nd Workshop on Types for Proofs and Programs, Springer, LNCS 996, 1994, pp. 101–119.

  42. T. Nipkow, L.C. Paulson, and M. Wenzel, Isabelle/HOL: A Proof Assistant for Higher-Order Logic, Springer, LNCS 2283, 2002.

  43. S. Owre, S. Rajan, J.M. Rushby, N. Shankar, and M.K. Srivas, “PVS: Combining specification, proof checking, and model checking,” in Proc. 8th Conference on Computer-Aided Verification, Springer, LNCS 1102, 1996, pp. 411–414.

  44. L.C. Paulson, “Mechanizing UNITY in Isabelle” ACM Transactions on Computational Logic, Vol. 1, No. 1, pp. 3–32, 2000.

  45. A. Pnueli, M. Siegel, and E. Singerman, “Translation validation,” in Proc. 4th Conference on Tools and Algorithms for Construction and Analysis of Systems, Springer, LNCS 1384, 1998, pp. 151–166.

  46. J.C. van de Pol, “A prover for the μCRL toolset with applications—version 0.1,” Technical Report SEN-R0106, CWI Amsterdam, 2001.

  47. C. Röckl and J. Esparza, “Proof-checking protocols using bisimulations,” in Proc. 10th Conference on Concurrency Theory, Springer, LNCS 1664, 1999, pp. 525–540.

  48. C. Shankland and M.B. van der Zwaag, “The tree identify protocol of IEEE 1394 in μCRL,” Form. Asp. Comp., Vol. 10, pp. 509–531,1998.

    Google Scholar 

  49. Y.S. Usenko, “Linearization of μCRL specifications (extended abstract),” in Proc. 3rd Workshop on Verification and Computational Logic, Technical Report DSSE-TR-2002-5. Department of Electronics and Computer Science, University of Southampton, 2002.

Download references

Acknowledgments

Jan Friso Groote is thanked for valuable discussions. This research is supported by the Dutch Technology Foundation STW under the project CES5008: Improving the quality of embedded systems using formal design and systematic testing.

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Fokkink, W., Pang, J. & van de Pol, J. Cones and foci: A mechanical framework for protocol verification. Form Method Syst Des 29, 1–31 (2006). https://doi.org/10.1007/s10703-006-0004-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-006-0004-3

Keywords

Navigation