Skip to main content

Playing with State-Based Models for Designing Better Algorithms

  • Conference paper
Model and Data Engineering (MEDI 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8748))

Included in the following conference series:

  • 867 Accesses

Abstract

Distributed algorithms are present in our daily life and we depend on the correct functioning of complex distributed computing systems as, for instance, communication protocols for establishing sessions between a smartphone and a bank account or synchronisation and management of shared resources among competing processes. Generally, the design and the implementation of distributed algorithms are still error prone and it is mainly due to the relationship between the theory of distributed computing and practical techniques for designing and verifying the correctness of reliable distributed systems. Formal proofs of distributed algorithms are long, hard and tedious and the gap between the real algorithm and its formal proof is very important. In this talk, we consider the correct-by-construction approach based on the refinement of state-based models, which are progressively transformed, in order to obtain a state-based model that is translated into a distributed algorithm.

The stepwise development of algorithms has been first initiated in the seminal works of Dijkstra [15], Back [7] or Morgan [23]. Next, UNITY [14] has proposed a rich framework for designing distributed algorithms combining a simple temporal logic for expressing required properties and a simple language for expressing actions modifying state variables under fairness assumption. TLA/TLA +  [18] proposes a general modelling language based on a temporal ogic of actions combined with a set-theoretical modelling language for data and is extended by a specific algorithmic language namely PlusCAL, which is translated into TLA +  and which is closer to the classical way to express a distributed algorithm. Finally, Event-B [2,12] is a modelling language which can describe state-based models and required safety properties. The main objective is to provide a technique for incremental and proof-based development of reactive systems. It integrates set-theoretical notations and a first-order predicate calculus, models called machines; it includes the concept of refinement expressing the simulation of machine by another one. An Event-B machine models a reactive system i.e. a system driven by its environment and reacting to its stimuli. An important property of these machines is that its events preserve the invariant properties defining a set of reachable states. The Event-B method has been developed from the classical B method [1] and it offers a general framework for developing the correct-by-construction systems by using an incremental approach for designing the models by refinement. Refinement [7,15] is a relationship relating two models such that one model is refining or simulating the other one. When an abstract model is refined by a concrete model, it means that the concrete model simulates the abstract model and that any safety property of the abstract model is also a safety property of the concrete model. In particular, the concrete model preserves the invariant properties of the abstract model. Event-B aims to express models of systems characterized by its invariant and by a list of safety properties. However, we can consider liveness properties as in UNITY [14] or TLA +  [18,17] but in a restricted way.

In our talk, we will summarize results related to proof-based patterns in Event-B (see for instance http://rimel.loria.fr) and ongoing works on translations of Event-B models into (distributed) algorithms. Proof-based patterns help for using refinement and for developing models from a very abstract one. The strategy for refining is a very crucial activity, when using Event-B, and the problem is to choose the abstract models that will be refined into implementable state-based models (see http://eb2all.loria.fr). We focus on the design of dustributed algorithms. For instance, the leader election protocol [3] is the kick-off case study which has led to questions on the use of Event-B for developing correct distributed algorithms: introduction of time constraints [13], probabilistic Event-B [16]. Moreover, the local computation model [25] (see http://visidia.labri.fr) has been integrated to the refinement-based approach. More recently, our joint work [21] leads to a general plugin for producing sequential algorithms from Event-B models and implement the call-as-event paradigm [19]. More recently, we extend the call-as-event paradigm by the service-as-event paradigm [22,6,4,5] and we take into account the design of distributed algorithms. Finally, we will compare the classical method [24] for verifying distributed programs and the refinement-based method that we have used in many case studies [11]. These results are used for lectures in school of cmputing engineering and master programmes and we will give some feedbacks from these experiences. Case studies [9,8,20] play a fundamental role for helping us to discover new strategies, namely proof-based patterns, for developing distributed algorithms.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Abrial, J.-R.: The B book - Assigning Programs to Meanings. Cambridge University Press (1996)

    Google Scholar 

  2. Abrial, J.-R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press (2010)

    Google Scholar 

  3. Abrial, J.-R., Cansell, D., Méry, D.: A Mechanically Proved and Incremental Development of IEEE 1394 Tree Identify Protocol. Formal Aspects of Computing 14(3), 215–227 (2003), Article dans revue scientifique avec comité de lecture

    Article  Google Scholar 

  4. Andriamiarina, M.B., Méry, D., Singh, N.K.: Integrating Proved State-Based Models for Constructing Correct Distributed Algorithms. In: Johnsen, E.B., Petre, L. (eds.) IFM 2013. LNCS, vol. 7940, pp. 268–284. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  5. Andriamiarina, M.B., Méry, D., Singh, N.K.: Analysis of Self-⋆ and P2P Systems Using Refinement. In: Ait Ameur, Y., Schewe, K.-D. (eds.) ABZ 2014. LNCS, vol. 8477, pp. 117–123. Springer, Heidelberg (2014)

    Chapter  Google Scholar 

  6. Andriamiarina, M.B., Méry, D., Singh, N.K.: Revisiting Snapshot Algorithms by Refinement-based Techniques (Extended Version). Computer Science and Information Systems (2014)

    Google Scholar 

  7. Back, R.: On correct refinement of programs. Journal of Computer and System Sciences 23(1), 49–68 (1979)

    Article  MathSciNet  Google Scholar 

  8. Benaïssa, N., Cansell, D., Méry, D.: Integration of security policy into system modeling. In: Julliand, J., Kouchnarenko, O. (eds.) B 2007. LNCS, vol. 4355, pp. 232–247. Springer, Heidelberg (2006)

    Google Scholar 

  9. Benaissa, N., Méry, D.: Cryptographic protocols analysis in Event-B. In: Pnueli, A., Virbitskaite, I., Voronkov, A. (eds.) PSI 2009. LNCS, vol. 5947, pp. 282–293. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  10. Bjørner, D., Henson, M.C. (eds.): Logics of Specification Languages. EATCS Textbook in Computer Science. Springer (2007)

    Google Scholar 

  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)

    Article  MATH  Google Scholar 

  12. Cansell, D., Méry, D.: The Event-B Modelling Method: Concepts and Case Studies, pp. 33–140. Springer (2007), See [10]

    Google Scholar 

  13. Cansell, D., Méry, D., Rehm, J.: Time Constraint Patterns for Event B Development. In: Julliand, J., Kouchnarenko, O. (eds.) B 2007. LNCS, vol. 4355, pp. 140–154. Springer, Heidelberg (2006)

    Google Scholar 

  14. Chandy, K.M., Misra, J.: Parallel Program Design A Foundation. Addison-Wesley Publishing Company (1988) ISBN 0-201-05866-9

    Google Scholar 

  15. Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall (1976)

    Google Scholar 

  16. Hallerstede, S., Hoang, T.S.: Qualitative probabilistic modelling in event-b. In: Davies, J., Gibbons, J. (eds.) IFM 2007. LNCS, vol. 4591, pp. 293–312. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  17. Lamport, L.: A temporal logic of actions. Transactions on Programming Languages and Systems 16(3), 872–923 (1994)

    Article  Google Scholar 

  18. Lamport, L.: Specifying Systems: The TLA +  + Language and Tools for Hardware and Software Engineers. Addison-Wesley (2002)

    Google Scholar 

  19. Méry, D.: Refinement-Based Guidelines for Algorithmic Systems. International Journal of Software and Informatics 3(2-3), 197–239 (2009)

    Google Scholar 

  20. Méry, D., Poppleton, M.: Formal Modelling and Verification of Population Protocols. In: Johnsen, E.B., Petre, L. (eds.) IFM 2013. LNCS, vol. 7940, pp. 208–222. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  21. Méry, D., Rosemary, M.: Transforming EVENT B Models into Verified C# Implementations. In: Lisitsa, A., Nemytykh, A. (eds.) VPT 2013 - First International Workshop on Verification and Program Transformation, Saint Petersburg, Russie, Fédération De. EPIC, vol. 16, pp. 57–73 (2013)

    Google Scholar 

  22. 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)

    Chapter  Google Scholar 

  23. Morgan, C.: Programming from Specifications. Prentice Hall International Series in Computer Science. Prentice Hall (1990)

    Google Scholar 

  24. Owicki, S., Gries, D.: An axiomatic proof technique for parallel programs i. Acta Informatica 6, 319–340 (1976)

    Article  MathSciNet  MATH  Google Scholar 

  25. Tounsi, M., Mosbah, M., Méry, D.: Proving Distributed Algorithms by Combining Refinement and Local Computations. Electronic Communications of the EASST 35 (November 2011) ISSN 1863–2122

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Méry, D. (2014). Playing with State-Based Models for Designing Better Algorithms. In: Ait Ameur, Y., Bellatreche, L., Papadopoulos, G.A. (eds) Model and Data Engineering. MEDI 2014. Lecture Notes in Computer Science, vol 8748. Springer, Cham. https://doi.org/10.1007/978-3-319-11587-0_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-11587-0_1

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-11586-3

  • Online ISBN: 978-3-319-11587-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics