Software & Systems Modeling

, Volume 14, Issue 1, pp 101–119 | Cite as

Verifying B proof rules using deep embedding and automated theorem proving

  • Mélanie Jacquel
  • Karim Berkani
  • David Delahaye
  • Catherine Dubois
Special Section Paper


We propose a formal and mechanized framework which consists in verifying proof rules of the B method, which cannot be automatically proved by the elementary prover of Atelier B and using an external automated theorem prover called Zenon. This framework contains in particular a set of tools, named BCARe and developed by Siemens IC-MOL, which relies on a deep embedding of the B theory within the logic of the Coq proof assistant. This toolkit allows us to automatically generate the required properties to be checked for a given proof rule. Currently, this tool chain is able to automatically verify a part of the derived rules of the B-Book, as well as some added rules coming from Atelier B and the rule database maintained by Siemens IC-MOL.


B Method Proof rules Verification  Deep embedding Automated theorem proving Coq Zenon 



The authors wish to thank the anonymous reviewers for their helpful comments and suggestions. They also thank Éric Dubois for his help in the production of the graphics for the benchmarks, as well as Hélène and Dalton Nelson for their careful reading.


  1. 1.
    Abrial, J.-R.: The \(\sf {B}\)-Book, Assigning Programs to Meanings. Cambridge University Press, Cambridge (UK) (1996). ISBN: 0521496195Google Scholar
  2. 2.
    Abrial, J.-R., Butler, M., Hallerstede, S., Hoang, T., Mehta, F., Voisin, L.: \(\sf {Rodin}\): an open toolset for modelling and reasoning in \(\sf {Event}\)-\(\sf {B}\). Softw. Tools Technol. Transf. 12(6), 447–466 (2010)Google Scholar
  3. 3.
    Abrial, J.-R., Mussat, L.: On using conditional definitions in formal theories. In: Formal Specification and Development in \(\sf {Z}\) and \(\sf {B}\) (ZB), vol. 2272 of LNCS, pp. 317–322. Springer, Grenoble (France) Jan (2002)Google Scholar
  4. 4.
    Barendregt, H., Cohen, A.M.: Electronic communication of mathematics and the interaction of computer algebra systems and proof assistants. J. Symbolic Comput. 32(1–2), 3–22 (2001)CrossRefMATHMathSciNetGoogle Scholar
  5. 5.
    Berkani, K., Dubois, C., Faivre, A., Falampin, J.: Validation des règles de base de l’\(\sf {Atelier~B}\). Technique et Science Informatiques 23(7), 855–878 (2004)Google Scholar
  6. 6.
    Bobot, F., Conchon, S., Contejean, V., Iguernelala, M., Lescuyer, S., Mebsout, A.:\(\sf {Alt}\)-\(\sf {Ergo}\), version 0.94. \(\sf {CNRS, INRIA}\), and Université Paris-Sud 11. Dec (2011)
  7. 7.
    Bobot, F., Filliâtre, J.-C., Marché, C., Paskevich, A.: \(\sf {Why3}\): Shepherd your herd of provers. In: International Workshop on Intermediate Verification Languages (BOOGIE), Wrocław (Poland) Aug (2011)Google Scholar
  8. 8.
    Bodeveix, J.-P., Filali, M., Muñoz, C.: A Formalization of the \(\sf {B}\)-method in \(\sf {Coq}\) and \(\sf {PVS}\). In: \(\sf {B}\) Users Group Meeting, Toulouse (France) Sept (1999) Google Scholar
  9. 9.
    Bonichon, R., Delahaye, D., Doligez, D.: \(\sf {Zenon}\): An extensible automated theorem prover producing checkable proofs. In: Logic for Programming Artificial Intelligence and Reasoning (LPAR), vol. 4790 of LNCS/LNAI, pp. 151–165. Springer, Yerevan (Armenia) Oct (2007)Google Scholar
  10. 10.
    Chartier, P.: Formalisation of \(\sf {B}\) in \(\sf {Isabelle/ HOL}\). In: \(\sf {B}\) Conference, vol. 1393 of LNCS, pp. 66–82. Springer, Montpellier (France) Apr (1998)Google Scholar
  11. 11.
    Cirstea, H., Kirchner, C.: Using rewriting and strategies for describing the \(\sf {B}\) predicate prover. In: Strategies in Automated Deduction, pp. 25–36. Lindau (Germany) July (1998)Google Scholar
  12. 12.
    \(\sf {ClearSy: Atelier \ B}\) 4.0. Feb (2009)
  13. 13.
    Couchot, J.-F., Dadeau, F., Déharbe, D., Giorgetti, A., Ranise, S.: Proving and debugging set-based specifications. In: Workshop on Formal Methods, vol. 95 of ENTCS, pp. 189–208. Elsevier, Campina Grande (Brazil) Oct (2003)Google Scholar
  14. 14.
    Delahaye, D.: A tactic language for the system \(\sf { Coq}\). In: Logic for Programming and Automated Reasoning (LPAR), vol. 1955 of LNCS/LNAI, pp. 85–95. Springer, Reunion Island (France) Nov (2000)Google Scholar
  15. 15.
    Déharbe, D.: Automatic verification for a class of proof obligations with SMT-solvers. In: Abstract State Machines, \(\sf {Alloy}\), \(\sf {B}\) and \(\sf {Z}\) (ABZ), vol. 5977 of LNCS, pp. 217–230. Springer, Orford (Canada, QC) Feb (2010)Google Scholar
  16. 16.
    Jaeger, É., Dubois, C.: Why would you trust \(\sf {B?}\) In: Logic for Programming Artificial Intelligence and Reasoning (LPAR), vol. 4790 of LNCS/LNAI, pp 288–302. Springer, Yerevan (Armenia) Oct (2007)Google Scholar
  17. 17.
    Korovin, K.: \(\sf {iProver}\) - An instantiation-based theorem prover for first-order logic (System Description). In: International Joint Conference on Automated Reasoning (IJCAR), vol. 5195 of LNCS/LNAI, pp 292–298. Springer, Sydney (Australia) Aug (2008)Google Scholar
  18. 18.
    Le Lay, É.: Automatiser la validation des règles. Master’s thesis, \(\sf {INSA}\) (Rennes), \(\sf {Siemens \ IC}\)-\(\sf {MOL}\), Sept (2008)Google Scholar
  19. 19.
    Maamria, I., Butler, M., Edmunds, A., Rezazadeh, A.: On an extensible rule-based prover for \(\sf {Event}\)-\(\sf {B}\). In: Abstract State Machines, \(\sf {Alloy}\), \(\sf {B}\) and \(\sf {Z}\) (ABZ), vol. 5977 of LNCS, p 407. Springer, Orford (Canada, QC) Feb (2010)Google Scholar
  20. 20.
    McCune, W., Wos, L.: \(\sf {Otter}\) – the CADE-13 competition incarnations. J. Autom. Reason. 18(2), 211–220 (1997) Google Scholar
  21. 21.
    Mentré, D., Marché, C., Filliâtre, J.-C., Asuka, M.: Discharging proof obligations from \(\sf {Atelier \ B}\) using multiple automated provers. In: Abstract State Machines, \(\sf {Alloy}\), \(\sf {B}\) and \(\sf {Z}\) (ABZ), vol. 7316 of LNCS, pp 238–251. Springer, Pisa (Italy) June (2012)Google Scholar
  22. 22.
    Mikhailov, L., Butler, M.: An approach to combining \(\sf {B}\) and \(\sf {Alloy}\). In: Formal Specification and Development in \(\sf {Z}\) and \(\sf {B}\) (ZB), vol. 2272 of LNCS, pp 140–161. Springer, Grenoble (France) Jan (2002)Google Scholar
  23. 23.
    Riazanov, A., Voronkov, A.: \(\sf {Vampire}\). In: Conference on Automated Deduction (CADE), vol. 1632 of LNCS, pp 292–296. Springer, Trento (Italy) July (1999)Google Scholar
  24. 24.
    Schulz, S.: \(\sf {E}\) – A brainiac theorem prover. AI Commun. 15(2/3), 111–126 (2002)Google Scholar
  25. 25.
    The \(\sf {Coq}\) Development Team: \(\sf {Coq}\), version 8.3. \(\sf {INRIA}\). Oct (2010)

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Mélanie Jacquel
    • 1
  • Karim Berkani
    • 1
  • David Delahaye
    • 2
  • Catherine Dubois
    • 3
  1. 1.Siemens IC-MOLChâtillonFrance
  2. 2.CEDRIC/CNAMParisFrance

Personalised recommendations