Engineering Theories with Z3
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.
KeywordsPartial Order Decision Procedure Object Graph Theory Solver Soft Clause
Unable to display preview. Download preview PDF.
- 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.Bjørner, N.: Linear quantifier elimination as an abstract decision procedure. In: Giesl and Hähnle , pp. 316–330Google Scholar
- 6.de Moura, L., Bjørner, N.: Efficient, Generalized Array Decision Procedures. In: FMCAD. IEEE (2009)Google Scholar
- 10.Gil, J., Zibin, Y.: Efficient dynamic dispatching with type slicing. ACM Trans. Program. Lang. Syst. 30(1) (2007)Google Scholar
- 12.Hoder, K., Kovács, L., Voronkov, A.: Interpolation and symbol elimination in vampire. In: Giesl and Hähnle , pp. 188–195Google Scholar
- 16.Rümmer, P., Wintersteiger, C.: Floating-point support for the Z3 SMT Solver, http://www.cprover.org/SMT-LIB-Float
- 17.Sherman, E., Garvin, B.J., Dwyer, M.B.: A slice-based decision procedure for type-based partial orders. In: Giesl and Hähnle , pp. 156–170Google Scholar