Book contents
- Frontmatter
- Contents
- Prologue: Faultless systems – yes we can!
- Acknowledgments
- 1 Introduction
- 2 Controlling cars on a bridge
- 3 A mechanical press controller
- 4 A simple file transfer protocol
- 5 The Event-B modeling notation and proof obligation rules
- 6 Bounded re-transmission protocol
- 7 Development of a concurrent program
- 8 Development of electronic circuits
- 9 Mathematical language
- 10 Leader election on a ring-shaped network
- 11 Synchronizing a tree-shaped network
- 12 Routing algorithm for a mobile agent
- 13 Leader election on a connected graph network
- 14 Mathematical models for proof obligations
- 15 Development of sequential programs
- 16 A location access controller
- 17 Train system
- 18 Problems
- Index
2 - Controlling cars on a bridge
Published online by Cambridge University Press: 05 March 2013
- Frontmatter
- Contents
- Prologue: Faultless systems – yes we can!
- Acknowledgments
- 1 Introduction
- 2 Controlling cars on a bridge
- 3 A mechanical press controller
- 4 A simple file transfer protocol
- 5 The Event-B modeling notation and proof obligation rules
- 6 Bounded re-transmission protocol
- 7 Development of a concurrent program
- 8 Development of electronic circuits
- 9 Mathematical language
- 10 Leader election on a ring-shaped network
- 11 Synchronizing a tree-shaped network
- 12 Routing algorithm for a mobile agent
- 13 Leader election on a connected graph network
- 14 Mathematical models for proof obligations
- 15 Development of sequential programs
- 16 A location access controller
- 17 Train system
- 18 Problems
- Index
Summary
Introduction
The intent of this chapter is to introduce a complete example of a small system development. During this development, we will become aware of the systematic approach we are using: it consists in developing a series of more and more accurate models of the system we want to construct. This technique is called refinement. The reason for building consecutive models is that a unique one would be far too complicated to reason about. Note that each model does not represent the programming of our system using a high-level programming language, it rather formalizes what an external observer of this system could perceive of it.
Each model will be analyzed and proved, thus enabling us to establish that it is correct relative to a number of criteria. As a result, when the last model is finished, we will be able to say that this model is correct by construction. Moreover, this model will be so close to a final implementation that it will be very easy to transform it into a genuine program.
The correctness criteria alluded to above will be made completely clear and systematic by giving a number of proof obligation rules which will be applied on our models. After applying such rules, we shall have to prove formally a number of statements. To this end, we shall also give a reminder of the classical rules of inference of the sequent calculus. Such rules concern propositional logic, equality, and basic arithmetic.
- Type
- Chapter
- Information
- Modeling in Event-BSystem and Software Engineering, pp. 24 - 99Publisher: Cambridge University PressPrint publication year: 2010