74 char const *
msg()
const {
return m_msg.c_str(); }
96 void set(
char const * param,
bool value) {
Z3_set_param_value(m_cfg, param, value ?
"true" :
"false"); }
100 void set(
char const * param,
int value) {
101 std::ostringstream oss;
146 void set(
char const * param,
int value) {
147 std::ostringstream oss;
190 func_decl function(
char const * name,
unsigned arity,
sort const * domain,
sort const & range);
235 array(
unsigned sz):m_size(sz) { m_array =
new T[sz]; }
237 unsigned size()
const {
return m_size; }
238 T &
operator[](
unsigned i) { assert(i < m_size);
return m_array[i]; }
239 T
const &
operator[](
unsigned i)
const { assert(i < m_size);
return m_array[i]; }
240 T
const *
ptr()
const {
return m_array; }
241 T *
ptr() {
return m_array; }
261 operator Z3_symbol()
const {
return m_sym; }
267 out <<
"k!" << s.
to_int();
269 out << s.
str().c_str();
285 m_params = s.m_params;
304 operator bool()
const {
return m_ast != 0; }
560 Z3_ast args[2] = { a, b };
590 Z3_ast args[2] = { a, b };
629 Z3_ast args[2] = { a, b };
641 Z3_ast args[2] = { a, b };
661 Z3_ast args[2] = { a, b };
714 else if (a.
is_bv()) {
729 Z3_ast args[2] = { a, b };
907 check_context(x1, b); check_context(x2, b);
912 check_context(x1, b); check_context(x2, b); check_context(x3, b);
917 check_context(x1, b); check_context(x2, b); check_context(x3, b); check_context(x4, b);
927 check_context(x1, b); check_context(x2, b);
932 check_context(x1, b); check_context(x2, b); check_context(x3, b);
937 check_context(x1, b); check_context(x2, b); check_context(x3, b); check_context(x4, b);
964 return sort(c, reinterpret_cast<Z3_sort>(a));
972 return func_decl(c, reinterpret_cast<Z3_func_decl>(a));
997 m_vector = s.m_vector;
1023 m_entry = s.m_entry;
1046 m_interp = s.m_interp;
1069 m_model = s.m_model;
1079 throw exception(
"failed to evaluate expression");
1122 m_stats = s.m_stats;
1139 if (r ==
unsat) out <<
"unsat";
1140 else if (r ==
sat) out <<
"sat";
1141 else out <<
"unknown";
1168 m_solver = s.m_solver;
1182 add(e,
ctx().bool_const(p));
1187 for (
unsigned i = 0; i < n; i++) {
1189 _assumptions[i] = assumptions[i];
1196 unsigned n = assumptions.
size();
1198 for (
unsigned i = 0; i < n; i++) {
1200 _assumptions[i] = assumptions[i];
1262 m_apply_result = s.m_apply_result;
1293 m_tactic = s.m_tactic;
1353 m_probe = s.m_probe;
1400 check_context(p, t);
1406 check_context(p, t1); check_context(p, t2);
1409 return tactic(t1.ctx(), r);
1423 for (
unsigned i = 0; i < arity; i++) {
1424 check_context(domain[i], range);
1425 args[i] = domain[i];
1433 return function(range.
ctx().
str_symbol(name), arity, domain, range);
1437 check_context(domain, range);
1445 check_context(d1, range); check_context(d2, range);
1453 check_context(d1, range); check_context(d2, range); check_context(d3, range);
1454 Z3_sort args[3] = { d1, d2, d3 };
1461 check_context(d1, range); check_context(d2, range); check_context(d3, range); check_context(d4, range);
1462 Z3_sort args[4] = { d1, d2, d3, d4 };
1469 check_context(d1, range); check_context(d2, range); check_context(d3, range); check_context(d4, range); check_context(d5, range);
1470 Z3_sort args[5] = { d1, d2, d3, d4, d5 };
1479 return expr(*
this, r);
1512 for (
unsigned i = 0; i < n; i++) {
1536 Z3_ast args[2] = { a1, a2 };
1557 Z3_ast args[3] = { a1, a2, a3 };
1564 Z3_ast args[4] = { a1, a2, a3, a4 };
1571 Z3_ast args[5] = { a1, a2, a3, a4, a5 };
1580 return range.
ctx().
function(name, arity, domain, range);
1582 inline func_decl function(
char const * name,
unsigned arity,
sort const * domain,
sort const & range) {
1583 return range.
ctx().
function(name, arity, domain, range);
1592 return range.
ctx().
function(name, d1, d2, d3, range);
1595 return range.
ctx().
function(name, d1, d2, d3, d4, range);
1598 return range.
ctx().
function(name, d1, d2, d3, d4, d5, range);
1602 check_context(a, i);
1609 check_context(a, i); check_context(a, v);
1620 check_context(d, v);