Abstract
Abstract
The Event-B method can be used to model all sorts of discrete event systems, among them sequential programs. In this article we describe our experiences with using Event-B by way of two examples. We present a simple model of a factorial program, explaining the method, and a more intricate model of the Quicksort algorithm, providing some insights into strengths and weaknesses of Event-B. The two models are interspersed with our observations and some suggestions of how, we believe, Event-B could evolve. This evaluation of Event-B is intended to serve for determining directions for the evolution of Event-B and judging progress. It is our hope that the observations and suggestions can also be put to use for similar modelling formalisms, such as Z, ASM or VDM.
- ABHV06 An open extensible tool environment for Event-BICFEM 2006, vol 42602006BerlinSpringer588605Google Scholar
- Abr96 The B-book: assigning programs to meanings1996CambridgeCUP10.1017/CBO97805116241620915.68015Google ScholarCross Ref
- Abr03 Abrial J-R Event based sequential program development: application to constructing a pointer program. In: Araki K, Gnesi S, Mandrioli D (eds) FME 2003: formal methods. LNCS, vol 2805. Springer, Berlin, pp 51–74Google Scholar
- Abr10 Modeling in Event-B: system and software engineering2010CambridgeCUP1213.68214Google ScholarCross Ref
- ACM05 Abrial J-R, Cansell D, Dominique M (2005) Refinement and reachability in Event B. In: Treharne H, King S, Henson M, Schneider S (eds) ZB 2005. LNCS, vol 3455, pp 222–241Google Scholar
- AdBO09a Modular verification of recursive programsLanguages: from formal to natural. LNCS, vol 55332009BerlinSpringer12110.1007/978-3-642-01748-3_1Google ScholarDigital Library
- AdBO09b Verification of sequential and concurrent programs2009BerlinSpringer10.1007/978-1-84882-745-51183.68361Google ScholarDigital Library
- AH07 Refinement decomposition and instantiation of discrete models: application to Event-BFundam Inform2007771–21281118.683922329272Google ScholarDigital Library
- Bac89 Refinement calculus II: parallel and reactive programsIn: Stepwise refinement of distributed systems. LNCS, vol 4301989BerlinSpringer6793Google Scholar
- BC04 Interactive theorem proving and program development. Coq’Art: the calculus of inductive constructions. Texts in theoretical computer science2004BerlinSpringerGoogle ScholarDigital Library
- BKS88 Distributed co-operation with action systemsACM Trans Program Lang Syst19881051355410.1145/48022.480230663.68028Google ScholarDigital Library
- BS03 Abstract state machines: a method for high-level system design and analysis2003BerlinSpringer1040.68042Google ScholarDigital Library
- Cle01 ClearSy (2001) PEA 98—conception et Codage ref ClearSy-ATB-PEA/1.1 18/12/2001. Internal Report (2001)Google Scholar
- Dar78 A synthesis of several sorting algorithmsActa Inform197811113010.1007/BF002645970389.68037514751Google ScholarDigital Library
- Dij76 A discipline of programming1976New JerseyPrentice-Hall0368.68005Google ScholarDigital Library
- FH71 Proof of a recursive program: QuicksortComput J197114439139510.1093/comjnl/14.4.3910231.68011371135Google ScholarCross Ref
- Hal07 Hallerstede S (2007) Justifications for the Event-B modelling notation. In: Julliand J, Kouchnarenko O (eds) B 2007. LNCS, vol 4355. Springer, Berlin, pp 49–63Google Scholar
- Hal08a Incremental system modelling in Event-BFMCO. LNCS, vol 57512008BerlinSpringer139158Google Scholar
- Hal08b On the purpose of Event-B proof obligationsABZ. LNCS, vol 52382008BerlinSpringer125138Google Scholar
- Hal09a Hallerstede S (2009) A (small) improvement of Event-B? In: Dagstuhl seminar on refinement based methods for the construction of dependable systems (09381), pp 48–52Google Scholar
- Hal09b Proving quicksort correct in Event-BElectr Notes Theor Comput Sci2009259476510.1016/j.entcs.2009.12.017Google ScholarDigital Library
- HLP10 Hallerstede S, Leuschel M, Daniel P (2010) Refinement-animation for Event-B—towards a method of validation. In: Frappier M, Glässer U, Khurshid S, Laleau R, Reeves S (eds) ABZ 2010. LNCS, vol 5977. Springer, Berlin, pp 287–301Google Scholar
- Jon90 Systematic software development using VDM19902New JerseyPrentice Hall0743.68048Google ScholarDigital Library
- Kal90 Programming: the derivation of algorithms1990New JerseyPrentice-HallGoogle ScholarDigital Library
- LB03 Pro B: a model checker for BFME 2003: formal methods. LNCS, vol 28052003BerlinSpringer85587410.1007/978-3-540-45236-2_46Google Scholar
- LB08 ProB: an automated analysis toolset for the B methodSTTT200810218520310.1007/s10009-007-0063-9Google ScholarCross Ref
- Mér09 Refinement-based guidelines for algorithmic systemsInt J Softw Inform200932–3197239Google Scholar
- MJ84 An early program proof by Alan TuringAnn Hist Comput19846214319310.1109/MAHC.1984.10017741062Google ScholarDigital Library
- Mor94 Programming from specifications19942New JerseyPrentice Hall0829.68083Google ScholarDigital Library
- RE98 Data refinement: model-oriented proof methods and their comparison. Cambridge tracts in theoretical computer science, vol 471998CambridgeCUP10.1017/CBO9780511663079Google Scholar
- SB06 UML-B: formal modeling and design aided by UMLACM Trans Softw Eng Methodol20061519212210.1145/1125808.1125811Google ScholarDigital Library
- Smi00 The Object-Z specification language2000DordrechtKluwer0944.68124Google ScholarCross Ref
- Spi92 The Z notation: a reference manual19922New JerseyPrentice HallGoogle ScholarDigital Library
- SWC02 Refinement in circusFormal methods—getting IT right. LNCS, vol 23912002BerlinSpringer45147010.1007/3-540-45614-7_26Google Scholar
- TBL10 Turner E, Butler M, Leuschel M (2010) A refinement-based correctness proof of symmetry reduced model checking. In: ABZ 2010. LNCS, Springer, Berlin, pp 231–244Google Scholar
- Tur49 Turing AM (1949) Checking a large routine. In: Report of a conference on high speed automatic calculating machines. EDSAC inaugural conference, University Mathematical Laboratory, Cambridge, pp 67–69Google Scholar
- WC01 Woodcock JCP, Cavalcanti ALC (2001) A concurrent language for refinement. In: Butterfield A, Pahl C (eds) IWFM’01: 5th Irish workshop in formal methods. BCS Electronic Workshops in ComputingGoogle Scholar
- WD96 Using Z. specification, refinement, and proof1996New JerseyPrentice-Hall0855.68060Google ScholarDigital Library
Index Terms
- Experiments in program verification using Event-B
Recommendations
Towards the Composition of Specifications in Event-B
The development of a system can start with the creation of a specification. Following this viewpoint, we claim that often a specification can be constructed from the combination of specifications which can be seen as composition. Event-B is a formal ...
Formal Specification and Verification of Concurrent Agents in Event-B
CSCS '13: Proceedings of the 2013 19th International Conference on Control Systems and Computer ScienceThis paper presents a formal modeling and proof of a multi-agent system for requesting services, in which agents performs operations concurrently. The concurrent operations made by agents are specified and validated using a formal specification method ...
Applying Event and Machine Decomposition to a Flash-Based Filestore in Event-B
Formal Methods: Foundations and ApplicationsEvent-B is a formal method used for specifying and reasoning about systems. Rodin is a toolset for developing system models in Event-B. Our experiment which is outlined in this paper is aimed at applying Event-B and Rodin to a flash-based filestore. ...
Comments