Integrating SMT-Solvers in Z and B Tools

  • Alessandro Cavalcante Gurgel
  • Valério Gutemberg de MedeirosJr.
  • Marcel Vinicius Medeiros Oliveira
  • David Boris Paul Déharbe
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5977)

Abstract

An important frequent task in both Z and B is the proof of verification conditions (VCs). In Z and B, VCs can be predicates to be discharged as a result of refinement steps, some proof about initialization properties or domain checking. Ideally, a tool that supports any Z and B technique should automatically discharge as many VCs as possible. Here, we present ZB2SMT, a Java package designed to clearly and directly integrate both Z and B tools to the satisfiability module theory (SMT) solvers such as veriT [1], a first-order logic (FOL) theorem prover that accepts the SMT syntax [4] as input. By having the SMT syntax as target we are able to easily integrate with further eleven automatic theorem provers. ZB2SMT is currently used by Batcave [2], an open source tool that generates VCs for the B method and CRefine [3], a tool that supports the Circus refinement calculus. Much of the VCs generated to validate the refinement law applications, are based on FOL predicates. Hence, CRefine uses the ZB2SMT package to automatically prove such predicates. The package integrates elements of Z and B predicates in a common language and transforms these predicates into SMT syntax. In this process, a SMT file is generated containing the predicate and some definitions. It is sent to a chosen SMT solver which yields a Boolean value for the predicate or it can be sent to several SMT solvers in a parallel approach. In order to improve the performance of the proof system, ZB2SMT has a module that can call different instances of solvers at different computers, according to a configuration file. It improves the proof process by allowing different strategies to be performed in parallel, reducing the verification time.

References

  1. 1.
    Bouton, T., Caminha, D., de Oliveira, B., Déharbe, D., Fontaine, P.: veriT: An open, trustable and efficient SMT-solver. In: CADE-22, pp. 151–156 (2009)Google Scholar
  2. 2.
    Marinho, E.S., Medeiros Jr., V.G., Tavares, C., Déharbe, D.: Um ambiente de verificação automática para o método B. In: SBMF 2007 (2007)Google Scholar
  3. 3.
    Oliveira, M.V.M., Gurgel, A.C., de Castro, C.G.: CRefine: Support for the Circus Refinement Calculus. In: 6th IEEE on SEFM, pp. 281–290. IEEE, Los Alamitos (2008)Google Scholar
  4. 4.
    Ranise, S., Tinelli, C.: The SMT-LIB Standard: Version 1.2 (2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Alessandro Cavalcante Gurgel
    • 1
  • Valério Gutemberg de MedeirosJr.
    • 2
  • Marcel Vinicius Medeiros Oliveira
    • 1
  • David Boris Paul Déharbe
    • 1
  1. 1.Departamento de Informática e Matemática AplicadaUFRNBrazil
  2. 2.Instituto Federal de Educação, Ciência e Tecnologia, IFRNBrazil

Personalised recommendations