Z3 is an automated theorem prover and satisfiability modulo theories (SMT) solver. Given a formula in first-order logic, it attempts to either prove the formula or find a counterexample. Z3 supports arithmetic, reasoning about arrays, and several other built-in theories. Input problems are written in SMT-LIB format. This package includes the z3 program as well as the C++, Python2, and Python3 APIs.