skip to main content
research-article
Open Access

Experiments in program verification using Event-B

Authors Info & Claims
Published:01 January 2012Publication History
Skip Abstract Section

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.

References

  1. ABHV06 Abrial J-RButler MHallerstede SVoisin LLiu ZHe JAn open extensible tool environment for Event-BICFEM 2006, vol 42602006BerlinSpringer588605Google ScholarGoogle Scholar
  2. Abr96 Abrial J-RThe B-book: assigning programs to meanings1996CambridgeCUP10.1017/CBO97805116241620915.68015Google ScholarGoogle ScholarCross RefCross Ref
  3. 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 ScholarGoogle Scholar
  4. Abr10 Abrial J-RModeling in Event-B: system and software engineering2010CambridgeCUP1213.68214Google ScholarGoogle ScholarCross RefCross Ref
  5. 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 ScholarGoogle Scholar
  6. AdBO09a Apt KRde Boer FSOlderog E-RGrumberg OKaminski MKatz SWintner SModular verification of recursive programsLanguages: from formal to natural. LNCS, vol 55332009BerlinSpringer12110.1007/978-3-642-01748-3_1Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. AdBO09b Apt KRde Boer FSOlderog E-RVerification of sequential and concurrent programs2009BerlinSpringer10.1007/978-1-84882-745-51183.68361Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. AH07 Abrial J-RHallerstede SRefinement decomposition and instantiation of discrete models: application to Event-BFundam Inform2007771–21281118.683922329272Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Bac89 Back R-Jde Bakker JWde Roever WPRozenberg GRefinement calculus II: parallel and reactive programsIn: Stepwise refinement of distributed systems. LNCS, vol 4301989BerlinSpringer6793Google ScholarGoogle Scholar
  10. BC04 Bertot YCastéran PInteractive theorem proving and program development. Coq’Art: the calculus of inductive constructions. Texts in theoretical computer science2004BerlinSpringerGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  11. BKS88 Back R-JKurki-Suonio RDistributed co-operation with action systemsACM Trans Program Lang Syst19881051355410.1145/48022.480230663.68028Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. BS03 Börger EStärk RAbstract state machines: a method for high-level system design and analysis2003BerlinSpringer1040.68042Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Cle01 ClearSy (2001) PEA 98—conception et Codage ref ClearSy-ATB-PEA/1.1 18/12/2001. Internal Report (2001)Google ScholarGoogle Scholar
  14. Dar78 Darlington JA synthesis of several sorting algorithmsActa Inform197811113010.1007/BF002645970389.68037514751Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Dij76 Dijkstra EWA discipline of programming1976New JerseyPrentice-Hall0368.68005Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. FH71 Foley MHoare CARProof of a recursive program: QuicksortComput J197114439139510.1093/comjnl/14.4.3910231.68011371135Google ScholarGoogle ScholarCross RefCross Ref
  17. 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 ScholarGoogle Scholar
  18. Hal08a Hallerstede Sde Boer FSBonsangue MMMadelaine EIncremental system modelling in Event-BFMCO. LNCS, vol 57512008BerlinSpringer139158Google ScholarGoogle Scholar
  19. Hal08b Hallerstede SBörger EButler MJBowen JPBoca POn the purpose of Event-B proof obligationsABZ. LNCS, vol 52382008BerlinSpringer125138Google ScholarGoogle Scholar
  20. 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 ScholarGoogle Scholar
  21. Hal09b Hallerstede SProving quicksort correct in Event-BElectr Notes Theor Comput Sci2009259476510.1016/j.entcs.2009.12.017Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle Scholar
  23. Jon90 Jones CBSystematic software development using VDM19902New JerseyPrentice Hall0743.68048Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Kal90 Kaldewaij AProgramming: the derivation of algorithms1990New JerseyPrentice-HallGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  25. LB03 Leuschel MButler MAraki KGnesi SMandrioli DPro B: a model checker for BFME 2003: formal methods. LNCS, vol 28052003BerlinSpringer85587410.1007/978-3-540-45236-2_46Google ScholarGoogle Scholar
  26. LB08 Leuschel MButler MJProB: an automated analysis toolset for the B methodSTTT200810218520310.1007/s10009-007-0063-9Google ScholarGoogle ScholarCross RefCross Ref
  27. Mér09 Méry DRefinement-based guidelines for algorithmic systemsInt J Softw Inform200932–3197239Google ScholarGoogle Scholar
  28. MJ84 Morris FLJones CBAn early program proof by Alan TuringAnn Hist Comput19846214319310.1109/MAHC.1984.10017741062Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Mor94 Morgan CCProgramming from specifications19942New JerseyPrentice Hall0829.68083Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. RE98 de Roever WPEngelhardt KData refinement: model-oriented proof methods and their comparison. Cambridge tracts in theoretical computer science, vol 471998CambridgeCUP10.1017/CBO9780511663079Google ScholarGoogle Scholar
  31. SB06 Snook CFButler MJUML-B: formal modeling and design aided by UMLACM Trans Softw Eng Methodol20061519212210.1145/1125808.1125811Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Smi00 Smith GThe Object-Z specification language2000DordrechtKluwer0944.68124Google ScholarGoogle ScholarCross RefCross Ref
  33. Spi92 Spivey JMThe Z notation: a reference manual19922New JerseyPrentice HallGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  34. SWC02 Sampaio AWoodcock JCavalcanti AEriksson L-HLindsay PARefinement in circusFormal methods—getting IT right. LNCS, vol 23912002BerlinSpringer45147010.1007/3-540-45614-7_26Google ScholarGoogle Scholar
  35. 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 ScholarGoogle Scholar
  36. 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 ScholarGoogle Scholar
  37. 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 ScholarGoogle Scholar
  38. WD96 Woodcock JDavies JUsing Z. specification, refinement, and proof1996New JerseyPrentice-Hall0855.68060Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Experiments in program verification using Event-B
        Index terms have been assigned to the content through auto-classification.

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Article Metrics

          • Downloads (Last 12 months)5
          • Downloads (Last 6 weeks)1

          Other Metrics

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader