Engineering Theories with Z3

  • Nikolaj Bjørner
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7078)

Abstract

Modern Satisfiability Modulo Theories (SMT) solvers are fundamental to many program analysis, verification, design and testing tools. They are a good fit for the domain of software and hardware engineering because they support many domains that are commonly used by the tools. The meaning of domains are captured by theories that can be axiomatized or supported by efficient theory solvers. Nevertheless, not all domains are handled by all solvers and many domains and theories will never be native to any solver. We here explore different theories that extend Microsoft Research’s SMT solver Z3’s basic support. Some can be directly encoded or axiomatized, others make use of user theory plug-ins. Plug-ins are a powerful way for tools to supply their custom domains.

Keywords

Partial Order Decision Procedure Object Graph Theory Solver Soft Clause 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Church, A.: A Formulation of the Simple Theory of Types. Journal of Symbolic Logic 5, 56–68 (1940)MathSciNetCrossRefMATHGoogle Scholar
  2. 2.
    Banerjee, A., Naumann, D., Rosenberg, S.: Decision Procedures for Region Logic. In: Submission (August 2011), http://www.cs.stevens.edu/~naumann/publications/dprlSubm.pdf
  3. 3.
    Bjørner, N.: Linear quantifier elimination as an abstract decision procedure. In: Giesl and Hähnle [9], pp. 316–330Google Scholar
  4. 4.
    Brown, C.E.: Reducing Higher-Order Theorem Proving to a Sequence of SAT Problems. In: Bjørner, N., Sofronie-Stokkermans, V. (eds.) CADE 2011. LNCS, vol. 6803, pp. 147–161. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  5. 5.
    Bruttomesso, R., Pek, E., Sharygina, N., Tsitovich, A.: The Opensmt Solver. In: Esparza, J., Majumdar, R. (eds.) TACAS 2010. LNCS, vol. 6015, pp. 150–153. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  6. 6.
    de Moura, L., Bjørner, N.: Efficient, Generalized Array Decision Procedures. In: FMCAD. IEEE (2009)Google Scholar
  7. 7.
    de Moura, L., Bjørner, N.S.: 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
  8. 8.
    de Moura, L.M., Bjørner, N.: Satisfiability modulo theories: introduction and applications. Commun. ACM 54(9), 69–77 (2011)CrossRefGoogle Scholar
  9. 9.
    Giesl, J., Hähnle, R. (eds.): IJCAR 2010. LNCS, vol. 6173, pp. 91–106. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  10. 10.
    Gil, J., Zibin, Y.: Efficient dynamic dispatching with type slicing. ACM Trans. Program. Lang. Syst. 30(1) (2007)Google Scholar
  11. 11.
    Godefroid, P., de Halleux, J., Nori, A.V., Rajamani, S.K., Schulte, W., Tillmann, N., Levin, M.Y.: Automating Software Testing Using Program Analysis. IEEE Software 25(5), 30–37 (2008)CrossRefGoogle Scholar
  12. 12.
    Hoder, K., Kovács, L., Voronkov, A.: Interpolation and symbol elimination in vampire. In: Giesl and Hähnle [9], pp. 188–195Google Scholar
  13. 13.
    Henkin, L.: Completeness in the theory of types. Journal of Symbolic Logic 15, 81–91 (1950)MathSciNetCrossRefMATHGoogle Scholar
  14. 14.
    Lahiri, S.K., Seshia, S.A., Bryant, R.E.: Modeling and Verification of Out-of-Order Microprocessors in Uclid. In: Aagaard, M.D., O’Leary, J.W. (eds.) FMCAD 2002. LNCS, vol. 2517, pp. 142–159. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  15. 15.
    Nieuwenhuis, R., Oliveras, A.: On SAT Modulo Theories and Optimization Problems. In: Biere, A., Gomes, C.P. (eds.) SAT 2006. LNCS, vol. 4121, pp. 156–169. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  16. 16.
    Rümmer, P., Wintersteiger, C.: Floating-point support for the Z3 SMT Solver, http://www.cprover.org/SMT-LIB-Float
  17. 17.
    Sherman, E., Garvin, B.J., Dwyer, M.B.: A slice-based decision procedure for type-based partial orders. In: Giesl and Hähnle [9], pp. 156–170Google Scholar
  18. 18.
    Suter, P., Steiger, R., Kuncak, V.: Sets with Cardinality Constraints in Satisfiability Modulo Theories. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 403–418. Springer, Heidelberg (2011)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Nikolaj Bjørner
    • 1
  1. 1.Microsoft ResearchUSA

Personalised recommendations