Proving Event-B Models with Reusable Generic Lemmas

  • Alexei Iliasov
  • Paulius Stankaitis
  • Alexander RomanovskyEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10009)


Event-B is one of more popular notations for model-based, proof-driven specification. It offers a fairly high-level mathematical language based on FOL and ZF set theory and an economical yet expressive modelling notation. Model correctness is established by proving a number of conjectures constructed via a syntactic instantiation of schematic conditions. A significant part of provable conjectures requires proof hints from a user. For larger models this becomes extremely onerous as identical or similar proofs have to be repeated over and over, especially after model refactoring stages. In the paper we discuss an approach to making proofs more generic and thus less fragile and more reusable. The crux of the technique is offering an engineer an opportunity to complete a proof by positing and proving a generic lemma that may be reused in the same or even another project. To assess the technique potential we have developed a plug-in to the Rodin Platform and used it to prove a number of pre-existing Event-B models.


Proofs Automated theorem proving Why3 Rodin plug-in Proof reusability Schematic lemmas 



This work is supported by the RSSB/UK project SafeCap+: SafeCap for integrated optimum capacity, safety and energy strategies at multiple nodes, the EPSRC/UK project STRATA: Layers for Structuring Trustworthy Ambient Systems and the EPSRC IAA account project on Formal Data Analytics in Railway.


  1. 1.
    Event-B and the Rodin Platform.
  2. 2.
    Furst, A.: Event-B model of the Order/Supply Chain A2A Communication.
  3. 3.
    Abrial, J.-R.: The B-Book. Cambridge University Press, Cambridge (1996)CrossRefzbMATHGoogle Scholar
  4. 4.
    Abrial, J.-R.: Modelling in Event-B. Cambridge University Press, Cambridge (2010)CrossRefzbMATHGoogle Scholar
  5. 5.
    de Moura, L., Bjørner, N.S.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  6. 6.
    Butler, M., Maamria, I.: Practical theory extension in Event-B. In: Liu, Z., Woodcock, J., Zhu, H. (eds.) Theories of Programming and Formal Methods. LNCS, vol. 8051, pp. 67–81. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  7. 7.
    Clearsy. Atelier B.: User and Reference Manuals.
  8. 8.
    Marché, C., Paskevich, A., Bobot, F., Filliâtre, J.-C.: Why3: shepherd your herd of provers. In: Boogie 2011: First International Workshop on Intermediate Verification Languages, pp. 53–64, August 2011Google Scholar
  9. 9.
    Hallerstede, S.: On the purpose of Event-B proof obligations. In: Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds.) ABZ 2008. LNCS, vol. 5238, pp. 125–138. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  10. 10.
    Hoang, T.S.: Proof hints for Event-B (2012). CoRR, abs/1211.1172Google Scholar
  11. 11.
    Iliasov, A., Bryans, J.: A proof-based method for modelling timed systems. In: Voronkov, A., Virbitskaite, I. (eds.) PSI 2014. LNCS, vol. 8974, pp. 161–176. Springer, Heidelberg (2015)Google Scholar
  12. 12.
    Industrial deployment of system engineering methods providing high dependability and productivity (DEPLOY), IST FP7 project.
  13. 13.
    Burdy, L.: Automatic refinement. In: Proceedings of BUGM at FM 1999 (1999)Google Scholar
  14. 14.
    Conchon, S., Contejean, É., Kanig, J., Lescuyer, S.: CC(X): semantical combination of congruence closure with solvable theories. In: Post-proceedings of the 5th International Workshop on Satisfiability Modulo Theories (SMT 2007), vol. 198, no. 2 of Electronic Notes in Computer Science, pp. 51–69. Elsevier Science Publishers (2008)Google Scholar
  15. 15.
    Rigorous Open Development Environment for Complex Systems (RODIN), IST FP6 STREP project.
  16. 16.
    Iliasov, A., Stankaitis, P., Adjepon-Yamoah, D., Romanovsky, A.: Rodin platform Why3 plug-in. In: Butler, M., Schewe, K.-D., Mashkoor, A., Biro, M. (eds.) ABZ 2016. LNCS, vol. 9675, pp. 275–281. Springer, Heidelberg (2016). doi: 10.1007/978-3-319-33600-8_21 CrossRefGoogle Scholar
  17. 17.
    Said, M.Y., Butler, M., Snook, C.: Language and tool support for class and state machine refinement in UML-B. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 579–595. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  18. 18.
    Hoang, T.S.: Event-B model of the Buyer/Seller B2B Communication.
  19. 19.
  20. 20.
    TPTP: Thousands of Problems for Theorem Provers.
  21. 21.
    Deharbe, D., Fontaine, P., Guyot, Y., Voisin, L.: Integrating SMT solvers in Rodin. Sci. Comput. Program. 94(Part 2), 130–143 (2014)CrossRefGoogle Scholar
  22. 22.
    Kovács, L., Voronkov, A.: First-order theorem proving and Vampire. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 1–35. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  23. 23.
    Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL - A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002)zbMATHGoogle Scholar
  24. 24.
    Freitas, L., Whiteside, I.: Proof patterns for formal methods. In: Proceedings of FM 2014: Formal Methods - 19th International Symposium, Singapore, 12–16 May 2014, pp. 279–295 (2014)Google Scholar
  25. 25.
    Weidenbach, C., Dimova, D., Fietzke, A., Kumar, R., Suda, M., Wischnewski, P.: SPASS version 3.5. In: Schmidt, R.A. (ed.) CADE-22. LNCS, vol. 5663, pp. 140–145. Springer, Heidelberg (2009)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  • Alexei Iliasov
    • 1
  • Paulius Stankaitis
    • 1
  • Alexander Romanovsky
    • 1
    Email author
  1. 1.Centre for Software Reliability, School of Computing ScienceNewcastle UniversityNewcastle upon TyneUK

Personalised recommendations