Advertisement

Verification by Construction of Distributed Algorithms

  • Dominique MéryEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11884)

Abstract

The verification of distributed algorithms is a challenge for formal techniques supported by tools, as model checkers and proof assistants. The difficulties, even for powerful tools, lie in the derivation of proofs of required properties, such as safety and eventuality, for distributed algorithms. Verification by construction can be achieved by using a formal framework in which models are constructed at different levels of abstraction; each level of abstraction is refined by the one below, and this refinement relationships is documented by an abstraction relation namely a gluing invariant. The highest levels of abstraction are used to express the required behavior in terms of the problem domain and the lowest level of abstraction corresponds to an implementation from which an efficient implementation can be derived automatically. In this paper, we describe a methodology based on the general concept of refinement and used for developing distributed algorithms satisfying a given list of safety and liveness properties. The modelling methodology is defined in the Event-B modelling language using the IDE Rodin.

Keywords

Correct-by-construction Modelling Refinement Distributed algorithms Verification Proof assistant 

Notes

Acknowledgement

The author thanks the organizers and the chairs of the conference ICTAC for the invitation to give a keynote. He especially thanks Mohamed Mosbah, Yves Métivier, Pierre Castéran, Mohamed Tounsi and researchers who have worked in the ANR project RIMEL (http://rimel.loria.fr) and who have made distributed algorithms simpler.

References

  1. 1.
    Abrial, J.R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press, Cambridge (2010)CrossRefGoogle Scholar
  2. 2.
    Abrial, J.R., Butler, M., Hallerstede, S., Hoang, T.S., Mehta, F., Voisin, L.: Rodin: an open toolset for modelling and reasoning in Event-B. Int. J. Softw. Tools Technol. Transf. 12(6), 447–466 (2010)CrossRefGoogle Scholar
  3. 3.
    Abrial, J.R., Cansell, D., Méry, D.: A mechanically proved and incremental development of ieee 1394 tree identify protocol. Formal Asp. Comput. 14(3), 215–227 (2003)CrossRefGoogle Scholar
  4. 4.
    Ameur, Y.A., Méry, D.: Making explicit domain knowledge in formal system development. Sci. Comput. Program. 121, 100–127 (2016).  https://doi.org/10.1016/j.scico.2015.12.004CrossRefGoogle Scholar
  5. 5.
    Andriamiarina, M.B., Méry, D., Singh, N.K.: Analysis of self-\(\star \) and P2P systems using refinement. In: Ameur, Y.A., Schewe, K. (eds.) ABZ 2014. LNCS, vol. 8477, pp. 117–123. Springer, USA (2014).  https://doi.org/10.1007/978-3-662-43652-3_9CrossRefGoogle Scholar
  6. 6.
    Andriamiarina, M.B., Méry, D., Singh, N.K.: Revisiting snapshot algorithms by refinement-based techniques. Comput. Sci. Inf. Syst. 11(1), 251–270 (2014).  https://doi.org/10.2298/CSIS130122007ACrossRefGoogle Scholar
  7. 7.
    Back, R.: On correct refinement of programs. Int. J. Softw. Tools Technol. Transf. 23(1), 49–68 (1979)MathSciNetzbMATHGoogle Scholar
  8. 8.
    Back, R.: A calculus of refinements for program derivations. Acta Informatica 25, 593–624 (1998)MathSciNetCrossRefGoogle Scholar
  9. 9.
    Bjørner, D.: Domain analysis & description - the implicit and explicit semantics problem. In: Laleau, R., Méry, D., Nakajima, S., Troubitsyna, E. (eds.) Proceedings Joint Workshop on Handling IMPlicit and EXplicit Knowledge in Formal System Development (IMPEX) and Formal and Model-Driven Techniques for Developing Trustworthy Systems (FM&MDD), Xi’An, China, 16th November 2017. Electronic Proceedings in Theoretical Computer Science, vol. 271, pp. 1–23. Open Publishing Association (2018).  https://doi.org/10.4204/EPTCS.271.1CrossRefGoogle Scholar
  10. 10.
    Cansell, D., Gibson, J.P., Méry, D.: Formal verification of tamper-evident storage for e-voting. In: Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007), London, England, UK, 10–14 September 2007, pp. 329–338. IEEE Computer Society (2007).  https://doi.org/10.1109/SEFM.2007.21,  https://doi.org/10.1109/SEFM.2007.21
  11. 11.
    Cansell, D., Méry, D.: Formal and incremental construction of distributed algorithms: on the distributed reference counting algorithm. Theor. Comput. Sci. 364(3), 318–337 (2006).  https://doi.org/10.1016/j.tcs.2006.08.015MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Cansell, D., Méry, D.: Designing old and new distributed algorithms by replaying an incremental proof-based development. In: Abrial, J.-R., Glässer, U. (eds.) Rigorous Methods for Software Construction and Analysis. LNCS, vol. 5115, pp. 17–32. Springer, Heidelberg (2009).  https://doi.org/10.1007/978-3-642-11447-2_2CrossRefGoogle Scholar
  13. 13.
    Carriero, N., Gelernter, D.: A computational model of everything. Commun. ACM 44(11), 77–81 (2001).  https://doi.org/10.1145/384150.384165CrossRefGoogle Scholar
  14. 14.
    Casteigts, A., Chaumette, S., Guinand, F., Pigné, Y.: Distributed maintenance of anytime available spanning trees in dynamic networks. CoRR abs/0904.3087 (2009). http://arxiv.org/abs/0904.3087
  15. 15.
    Clearsy System Engineering: Atelier B (2002–2019). http://www.atelierb.eu/
  16. 16.
    Clearsy System Engineering: BART (2010). http://tools.clearsy.com/tools/bart/
  17. 17.
    Dolev, S.: Self-Stabilization. MIT Press, Cambridge (2000)CrossRefGoogle Scholar
  18. 18.
    Fakhfakh, F., Tounsi, M., Mosbah, M., Méry, D., Kacem, A.H.: Proving distributed coloring of forests in dynamic networks. Computación y Sistemas 21(4) (2017). http://www.cys.cic.ipn.mx/ojs/index.php/CyS/article/view/2857
  19. 19.
    Foster, I.T.: Designing and Building Parallel Programs - Concepts and Tools for Parallel Software Engineering. Addison-Wesley, Boston (1995)zbMATHGoogle Scholar
  20. 20.
    Gamma, E., Helm, R., Johnson, R., Vlissides, R., Gamma, P.: Design Patterns: Elements of Reusable Object-Oriented Software Design Patterns. Addison-Wesley Professional Computing, Reading (1994)zbMATHGoogle Scholar
  21. 21.
    Hoang, T.S., Fürst, A., Abrial, J.: Event-B patterns and their tool support. Softw. Syst. Model. 12(2), 229–244 (2013).  https://doi.org/10.1007/s10270-010-0183-7CrossRefGoogle Scholar
  22. 22.
    Hoang, T.S., Kuruma, H., Basin, D.A., Abrial, J.: Developing topology discovery in Event-B. Sci. Comput. Program. 74(11–12), 879–899 (2009).  https://doi.org/10.1016/j.scico.2009.07.006MathSciNetCrossRefzbMATHGoogle Scholar
  23. 23.
    Jones, C.B.: Tentative steps toward a development method for interfering programs. ACM Trans. Program. Lang. Syst. 5(4), 596–619 (1983).  https://doi.org/10.1145/69575.69577CrossRefzbMATHGoogle Scholar
  24. 24.
    Lamport, L.: The temporal logic of actions. ACM Trans. Program. Lang. Syst. 16(3), 872–923 (1994)CrossRefGoogle Scholar
  25. 25.
    Liu, Y.A., Stoller, S.D., Lin, B.: From clarity to efficiency for distributed algorithms. ACM Trans. Program. Lang. Syst. 39(3), 12:1–12:41 (2017).  https://doi.org/10.1145/2994595CrossRefGoogle Scholar
  26. 26.
    Marquezan, C.C., Granville, L.Z.: Self-* and P2P for Network Management - Design Principles and Case Studies. Springer Briefs in Computer Science. Springer, London (2012).  https://doi.org/10.1007/978-1-4471-4201-0CrossRefGoogle Scholar
  27. 27.
    Méry, D.: Refinement-based guidelines for algorithmic systems. Int. J. Softw. Inform. 3(2–3), 197–239 (2009). http://www.ijsi.org/ch/reader/view_abstract.aspx?file_no=197&flag=1
  28. 28.
    Méry, D.: Playing with state-based models for designing better algorithms. Future Gener. Comput. Syst. 68, 445–455 (2017).  https://doi.org/10.1016/j.future.2016.04.019CrossRefGoogle Scholar
  29. 29.
    Méry, D.: Modelling by patterns for correct-by-construction process. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11244, pp. 399–423. Springer, Cham (2018).  https://doi.org/10.1007/978-3-030-03418-4_24CrossRefGoogle Scholar
  30. 30.
    Méry, D., Mosbah, M., Tounsi, M.: Refinement-based verification of local synchronization algorithms. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 338–352. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-21437-0_26CrossRefGoogle Scholar
  31. 31.
    Méry, D., Poppleton, M.: Towards an integrated formal method for verification of liveness properties in distributed systems: with application to population protocols. Softw. Syst. Model. 16(4), 1083–1115 (2017).  https://doi.org/10.1007/s10270-015-0504-yCrossRefGoogle Scholar
  32. 32.
    Méry, D., Singh, N.K.: Analysis of DSR protocol in Event-B. In: Défago, X., Petit, F., Villain, V. (eds.) SSS 2011. LNCS, vol. 6976, pp. 401–415. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-24550-3_30CrossRefGoogle Scholar
  33. 33.
    Owicki, S., Gries, D.: An axiomatic proof technique for parallel programs I. Acta Informatica 6, 319–340 (1976)MathSciNetCrossRefGoogle Scholar
  34. 34.
    Polya, G.: How to Solve It, 2nd edn. Princeton University Press, Princeton (1957). ISBN 0-691-08097-6Google Scholar
  35. 35.
    Tounsi, M., Mosbah, M., Méry, D.: Proving distributed algorithms by combining refinement and local computations. ECEASST 35 (2010).  https://doi.org/10.14279/tuj.eceasst.35.442
  36. 36.
    ViSiDiA (2006–2019). http://visidia.labri.fr

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Université de Lorraine, LORIA UMR CNRS 7503Vandœuvre-lès-NancyFrance

Personalised recommendations