Integration of SMT-solvers in B and Event-B development environments

Software development in B and Event-B generates proof obligations that have to be discharged using theorem provers. The cost of such developments depends directly on the degree of automation and efficiency of theorem proving techniques for the logics in which these lemmas are expressed. This paper presents and formalizes an approach to transform a class of proof obligations essentially similar to those generated in the Rodin platform into the input language of a category of automatic theorem provers known as SMT-solvers. The work presented in the paper handles proof obligations with Booleans, integer arithmetics, basic sets and relations and has been implemented as a plug-in for Rodin.

[1]  Nikolaj Bjørner,et al.  Satisfiability Modulo Theories: An Appetizer , 2009, SBMF.

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

[3]  Christophe Ringeissen,et al.  Decision Procedures for the Formal Analysis of Software , 2006, ICTAC.

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

[5]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

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

[7]  Stephan Merz,et al.  Practical Proof Reconstruction for First-order Logic and Set-Theoretical Constructions , 2006 .

[8]  Sylvain Conchon,et al.  Implementing polymorphism in SMT solvers , 2008, SMT '08/BPR '08.

[9]  Pascal Fontaine Combinations of Theories for Decidable Fragments of First-Order Logic , 2009, FroCoS.

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

[11]  Albert Oliveras,et al.  The Barcelogic SMT Solver , 2008, CAV.

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

[13]  Natarajan Shankar,et al.  A Tutorial on Satisfiability Modulo Theories , 2007, CAV.

[14]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

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

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

[17]  Mana Taghdiri,et al.  Analyzing Alloy Constraints using an SMT Solver: A Case Study , 2010 .

[18]  L. D. Moura,et al.  The YICES SMT Solver , 2006 .

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

[20]  Albert Oliveras,et al.  DPLL(T) with Exhaustive Theory Propagation and Its Application to Difference Logic , 2005, CAV.

[21]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[22]  Alexander Romanovsky,et al.  SAL, Kodkod, and BDDs for Validation of B Models. Lessons and Outlook. , 2009 .

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

[24]  Michael J. Butler,et al.  ProB: an automated analysis toolset for the B method , 2008, International Journal on Software Tools for Technology Transfer.

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

[26]  Greg Nelson,et al.  Fast Decision Procedures Based on Congruence Closure , 1980, JACM.