SMT Solvers for Rodin

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.

[1]  Sarfraz Khurshid,et al.  Proceedings of the Third international conference on Abstract State Machines, Alloy, B, VDM, and Z , 2012 .

[2]  Cesare Tinelli,et al.  A New Correctness Proof of the {Nelson-Oppen} Combination Procedure , 1996, FroCoS.

[3]  Cesare Tinelli,et al.  The SMT-LIB Standard: Version 1.2 , 2005 .

[4]  David Déharbe Integration of SMT-solvers in B and Event-B development environments , 2013, Sci. Comput. Program..

[5]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[6]  David Déharbe Automatic Verification for a Class of Proof Obligations with SMT-Solvers , 2010, ASM.

[7]  Jean-Raymond Abrial,et al.  Modeling in event-b - system and software engineering by Jean-Raymond Abrial , 2010, SOEN.

[8]  Cliff B. Jones,et al.  RODIN (Rigorous Open Development Environment for Complex Systems) , 2005 .

[9]  Matthias Schmalz The logic of event-B , 2011 .

[10]  Jean-François Couchot,et al.  Scalable Automated Proving and Debugging of Set-Based Specifications , 2003, J. Braz. Comput. Soc..

[11]  Benjamin Grégoire,et al.  A Modular Integration of SAT/SMT Solvers to Coq through Proof Witnesses , 2011, CPP.

[12]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[13]  Greg Nelson,et al.  Simplification by Cooperating Decision Procedures , 1979, TOPL.

[14]  Toby Walsh,et al.  Handbook of satisfiability , 2009 .

[15]  Pascal Fontaine,et al.  veriT: An Open, Trustable and Efficient SMT-Solver , 2009, CADE.

[16]  Stephan Schulz,et al.  E - a brainiac theorem prover , 2002, AI Commun..

[17]  Brian Campbell,et al.  An Executable Semantics for CompCert C , 2012, CPP.

[18]  Clark W. Barrett,et al.  The SMT-LIB Standard Version 2.0 , 2010 .

[19]  Christophe Metayer,et al.  The Event-B Mathematical Language , 2009 .

[20]  Daniel Kroening,et al.  A Theory of Finite Sets, Lists, and Maps for the SMT-LIB Standard , 2009 .

[21]  Cesare Tinelli,et al.  Satisfiability Modulo Theories , 2021, Handbook of Satisfiability.

[22]  Renate A. Schmidt Automated Deduction - CADE-22, 22nd International Conference on Automated Deduction, Montreal, Canada, August 2-7, 2009. Proceedings , 2009, CADE.

[23]  Toby Walsh,et al.  Handbook of Satisfiability: Volume 185 Frontiers in Artificial Intelligence and Applications , 2009 .