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.

[1]  Viktor Kuncak,et al.  Sets with Cardinality Constraints in Satisfiability Modulo Theories , 2011, VMCAI.

[2]  Jürgen Giesl,et al.  Automated Reasoning, 5th International Joint Conference, IJCAR 2010, Edinburgh, UK, July 16-19, 2010. Proceedings , 2010, IJCAR.

[3]  Roberto Bruttomesso,et al.  The OpenSMT Solver , 2010, TACAS.

[4]  Anindya Banerjee,et al.  Decision Procedures for Region Logic , 2012, VMCAI.

[5]  Leon Henkin,et al.  Completeness in the theory of types , 1950, Journal of Symbolic Logic.

[6]  Albert Oliveras,et al.  On SAT Modulo Theories and Optimization Problems , 2006, SAT.

[7]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[8]  Nikolaj Bjørner,et al.  Satisfiability modulo theories , 2011, Commun. ACM.

[9]  Matthew B. Dwyer,et al.  A Slice-Based Decision Procedure for Type-Based Partial Orders , 2010, IJCAR.

[10]  Nikolaj Bjørner,et al.  Linear Quantifier Elimination as an Abstract Decision Procedure , 2010, IJCAR.

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

[12]  Joseph Gil,et al.  Efficient dynamic dispatching with type slicing , 2007, ACM Trans. Program. Lang. Syst..

[13]  Sanjit A. Seshia,et al.  Modeling and Verification of Out-of-Order Microprocessors in UCLID , 2002, FMCAD.

[14]  Andrei Voronkov,et al.  Interpolation and Symbol Elimination in Vampire , 2010, IJCAR.

[15]  Chad E. Brown Reducing Higher-Order Theorem Proving to a Sequence of SAT Problems , 2013, Journal of Automated Reasoning.

[16]  Nikolai Tillmann,et al.  Automating Software Testing Using Program Analysis , 2008, IEEE Software.