Abstract
This chapter presents an overview of the Event-B notations that are used to formalise the cardiac pacemaker case study. Event-B has evolved from the Classical B for specifying and reasoning about reactive systems. Main motivation to select Event-B is targeted at an incremental modelling style where a system is defined abstractly, and later interesting properties are introduced in an incremental fashion using a stepwise refinement. The use of refinement represents a system at different levels of abstraction and the use of mathematical proof verifies consistency between the refinement levels. Event-B is an event-based approach which is defined in terms of a few simple concepts describing a discrete event system and proof obligations that permit verification of properties of an event system. This chapter explains the fundamental concepts and formal notations of Event-B modelling language. Event-B is provided with tool support in the form of an open and extensible Eclipse-based IDE called Rodin, which is a platform for the Event-B specification and verification.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Abrial, J.-R. (1996). Extending B without changing it (for developing distributed systems). In H. Habrias (Ed.), 1st conference on the B method (pp. 169–190).
Abrial, J.-R. (1996). The B-book: Assigning programs to meanings. New York: Cambridge University Press.
Abrial, J.-R. (2003). B#: Toward a synthesis between Z and B. In D. Bert, J. P. Bowen, S. King, & M. Waldén (Eds.), Lecture notes in computer science: Vol. 2651. ZB 2003: Formal specification and development in Z and B (pp. 168–177). Berlin: Springer.
Abrial, J.-R. (2010). Modeling in Event-B: System and software engineering (1st ed.). New York: Cambridge University Press.
Abrial, J.-R., & Mussat, L. (1998). Introducing dynamic constraints in B. In Proceedings of the second international B conference on recent advances in the development and use of the B method, B’98 (pp. 83–128). London: Springer.
Abrial, J.-R., Cansell, D., & Méry, D. (2003). A mechanically proved and incremental development of IEEE 1394 tree identify protocol. Formal Aspects of Computing, 14(3), 215–227.
Back, R. J. R. (1981). On correct refinement of programs. Journal of Computer and System Sciences, 23(1), 49–68.
Back, R. J. R. (1988). A calculus of refinements for program derivations. Acta Informatica, 25, 593–624.
Back, R.-J. J., Akademi, A., & Von Wright, J. (1998). Refinement calculus: A systematic introduction (1st ed.). New York: Springer.
B-Core Ltd. (1996). B-toolkit user’s manual, release 3.2.
Behm, P., Benoit, P., Faivre, A., & Meynadier, J.-M. (1999). Météor: A successful application of B in a large project. In J. Wing, J. Woodcock, & J. Davies (Eds.), Lecture notes in computer science: Vol. 1708. FM’99—formal methods (pp. 369–387). Berlin: Springer.
Börger, E., & Stärk, R. (2003). Abstract state machines: A method for high-level system design and analysis. Berlin: Springer.
Butler, M. J. (1996). Stepwise refinement of communicating systems. Science of Computer Programming, 27(2), 139–173.
Butler, M. (2000). CSP2B: A practical approach to combining CSP and B. Formal Aspects of Computing, 12, 182–196.
Butler, M., & Waldén, M. (1999). Parallel programming with the B method. In E. Sekerinski & K. Sere (Eds.), Formal approaches to computing and information technology (FACIT). Program development by refinement (pp. 183–195). London: Springer.
Cansell, D., & Méry, D. (2007). Proved-patterns-based development for structured programs. In V. Diekert, M. Volkov, & A. Voronkov (Eds.), Lecture notes in computer science: Vol. 4649. Computer science—theory and applications (pp. 104–114). Berlin: Springer.
Cansell, D., & Méry, D. (2008). The Event-B modelling method: Concepts and case studies. In D. Bjørner & M. C. Henson (Eds.), Monographs in theoretical computer science. Logics of specification languages (pp. 47–152). Berlin: Springer.
Cansell, D., Gopalakrishnan, G., Jones, M., Méry, D., & Weinzoepflen, A. (2002). Incremental proof of the producer/consumer property for the PCI protocol. In Proceedings of the 2nd international conference of B and Z users on formal specification and development in Z and B, ZB’02 (pp. 22–41). London: Springer.
Chandy, K. M., & Misra, J. (1988). Parallel program design: A foundation. Reading: Addison-Wesley. ISBN 0-201-05866-9.
Clarke, E. M., Grumberg, O., & Peled, D. (2001). Model checking. Cambridge: MIT Press.
ClearSy. Atelier B. http://www.clearsy.com.
ClearSy, Aix-en-Provence (2004). B4FREE. http://www.b4free.com.
Fitzgerald, J. (2007). The typed logic of partial functions and the Vienna development method. In D. Bjørner & M. C. Henson (Eds.), EATCS textbook in computer science. Logics of specification languages (pp. 431–465). Berlin: Springer.
Gurevitch, Y. (1995). Evolving algebras 1993: Lipari guide. In Specification and validation methods (pp. 9–36). Oxford: Oxford University Press.
Henson, M. C., Deutsch, M., & Reeves, S. (2007). Z logic and its applications. In D. Bjørner & M. C. Henson (Eds.), EATCS textbook in computer science. Logics of specification languages (pp. 467–569). Berlin: Springer.
Hoare, J., Dick, J., Neilson, D., & Holm Sørensen, I. (1996). Applying the B technologies on CICS. In FME 96 (pp. 74–84). Berlin: Springer.
Jones, C. B. (1990). Systematic software development using VDM (2nd ed.). Upper Saddle River: Prentice Hall.
Lamport, L. (1994). A temporal logic of actions. ACM Transactions on Programming Languages and Systems, 16(3), 872–923.
Lamport, L. (2002). Specifying systems: The TLA + language and tools for hardware and software engineers. Reading: Addison-Wesley.
Lano, K., Bicarregui, J., & Sanchez, A. (1999). Invariant-based synthesis and composition of control algorithms using B. In FM’99—B users group meeting—Applying B in an industrial context: Tools, lessons and techniques (pp. 69–86).
Leavens, G. T., Abrial, J.-R., Batory, D., Butler, M., Coglio, A., Fisler, K., et al. (2006). Roadmap for enhanced languages and methods to aid verification. In Fifth international conference on generative programming and component engineering, GPCE 2006 (pp. 221–235). New York: ACM.
Merz, S. (2007). The specification language TLA+. In D. Bjørner & M. C. Henson (Eds.), EATCS textbook in computer science. Logics of specification languages (pp. 381–430). Berlin: Springer.
Moreau, L., & Duprat, J. (2001). A construction of distributed reference counting. Acta Informatica, 37, 563–595.
Morgan, C. (1990). Prentice Hall international series in computer science. Programming from specifications. Upper Saddle River: Prentice Hall.
Reisig, W. (2007). Abstract state machines for the classroom. In D. Bjørner & M. C. Henson (Eds.), EATCS textbook in computer science. Logics of specification languages (pp. 1–32). Berlin: Springer.
RODIN (2004). Rigorous open development environment for complex systems. http://rodin-b-sharp.sourceforge.net.
Spivey, J. M. (1987). Understanding Z: A specification language and its formal semantics.
Stärk, R., Schmid, J., & Börger, E. (2001). Java and the Java virtual machine. Berlin: Springer.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag London
About this chapter
Cite this chapter
Singh, N.K. (2013). The Modelling Framework: Event-B. In: Using Event-B for Critical Device Software Systems. Springer, London. https://doi.org/10.1007/978-1-4471-5260-6_3
Download citation
DOI: https://doi.org/10.1007/978-1-4471-5260-6_3
Publisher Name: Springer, London
Print ISBN: 978-1-4471-5259-0
Online ISBN: 978-1-4471-5260-6
eBook Packages: Computer ScienceComputer Science (R0)