SMT Solvers for Rodin

  • David Déharbe
  • Pascal Fontaine
  • Yoann Guyot
  • Laurent Voisin
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7316)


Formal development in Event-B generally requires the validation of a large number of proof obligations. Some automatic tools exist to automatically discharge a significant part of them, thus augmenting the efficiency of the formal development. We here investigate the use of SMT (Satisfiability Modulo Theories) solvers in addition to the traditional tools, and detail the techniques used for the cooperation between the Rodin platform and SMT solvers.

Our contribution is the definition of two approaches to use SMT solvers, their implementation in a Rodin plug-in, and an experimental evaluation on a large sample of industrial and academic projects. Adding SMT solvers to Atelier B provers reduces to one fourth the number of sequents that need to be proved interactively.


Proof Obligation Theory Reasoner Proof Rule Instantiation Module Generate Proof Obligation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abrial, J.-R.: Modeling in Event-B: System and Software Engineering. Cambridge University Press (2010)Google Scholar
  2. 2.
    Armand, M., Faure, G., Grégoire, B., Keller, C., Théry, L., Werner, B.: A Modular Integration of SAT/SMT Solvers to Coq through Proof Witnesses. In: Jouannaud, J.-P., Shao, Z. (eds.) CPP 2011. LNCS, vol. 7086, pp. 135–150. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  3. 3.
    Barrett, C., Sebastiani, R., Seshia, S.A., Tinelli, C.: Satisfiability modulo theories. In: Biere, A., Heule, M.J.H., van Maaren, H., Walsh, T. (eds.) Handbook of Satisfiability. Frontiers in Artificial Intelligence and Applications, vol. 185, ch. 26, pp. 825–885. IOS Press (February 2009)Google Scholar
  4. 4.
    Barrett, C., Stump, A., Tinelli, C.: The SMT-LIB Standard Version 2.0 (2010)Google Scholar
  5. 5.
    Biere, A., Heule, M., van Maaren, H., Walsh, T. (eds.): Handbook of Satisfiability. Frontiers in Artificial Intelligence and Applications, vol. 185. IOS Press (2009)Google Scholar
  6. 6.
    Bouton, T., de Oliveira, D.C.B., Déharbe, D., Fontaine, P.: veriT: An Open, Trustable and Efficient SMT-Solver. In: Schmidt, R.A. (ed.) CADE-22. LNCS, vol. 5663, pp. 151–156. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  7. 7.
    Coleman, J., Jones, C., Oliver, I., Romanovsky, A., Troubitsyna, E.: RODIN (Rigorous open Development Environment for Complex Systems). In: Fifth European Dependable Computing Conference: EDCC-5 supplementary volume, pp. 23–26 (2005)Google Scholar
  8. 8.
    Couchot, J.-F., Déharbe, D., Giorgetti, A., Ranise, S.: Scalable Automated Proving and Debugging of Set-Based Specifications. Journal of the Brazilian Computer Society 9, 17–36 (2003)Google Scholar
  9. 9.
    de Moura, L., Bjørner, N.: 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
  10. 10.
    Déharbe, D.: Automatic Verification for a Class of Proof Obligations with SMT-Solvers. In: Frappier, M., Glässer, U., Khurshid, S., Laleau, R., Reeves, S. (eds.) ABZ 2010. LNCS, vol. 5977, pp. 217–230. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  11. 11.
    Déharbe, D.: Integration of SMT-solvers in B and Event-B development environments. Science of Computer Programming (March 2011)Google Scholar
  12. 12.
    Konrad, M., Voisin, L.: Translation from Set-Theory to Predicate Calculus. Technical report, ETH Zurich (2011)Google Scholar
  13. 13.
    Kröning, D., Rümmer, P., Weissenbacher, G.: A Proposal for a Theory of Finite Sets, Lists, and Maps for the SMT-LIB Standard. In: Informal proceedings, 7th Int’l Workshop on Satisfiability Modulo Theories (SMT) at CADE 22 (2009)Google Scholar
  14. 14.
    Métayer, C., Voisin, L.: The Event-B mathematical language (2009),
  15. 15.
    Nelson, G., Oppen, D.C.: Simplifications by cooperating decision procedures. ACM Transactions on Programming Languages and Systems 1(2), 245–257 (1979)zbMATHCrossRefGoogle Scholar
  16. 16.
    Schmalz, M.: The logic of Event-B, Technical report 698, ETH Zürich, Information Security (2011)Google Scholar
  17. 17.
    Schulz, S.: E - A Brainiac Theorem Prover. AI Communications 15(2/3), 111–126 (2002)zbMATHGoogle Scholar
  18. 18.
    The Eclipse Foundation. Eclipse SDK (2009)Google Scholar
  19. 19.
    Tinelli, C., Harandi, M.T.: A new correctness proof of the Nelson–Oppen combination procedure. In: Baader, F., Schulz, K.U. (eds.) Frontiers of Combining Systems (FroCoS), Applied Logic, pp. 103–120. Kluwer Academic Publishers (March 1996)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • David Déharbe
    • 1
  • Pascal Fontaine
    • 2
  • Yoann Guyot
    • 3
  • Laurent Voisin
    • 3
  1. 1.Universidade Federal do Rio Grande do NorteNatalBrazil
  2. 2.University of Nancy and INRIANancyFrance
  3. 3.SysterelFrance

Personalised recommendations