3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

merge with master

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-03-25 14:57:01 -07:00
commit c513f3ca09
883 changed files with 13979 additions and 16480 deletions

View file

@ -20,13 +20,13 @@ void tst_check_assumptions()
reg_decl_plugins(mgr);
sort_ref b(mgr.mk_bool_sort(), mgr);
func_decl_ref pPred(mgr.mk_func_decl(symbol("p"), 0, static_cast<sort * const *>(0), b), mgr);
func_decl_ref qPred(mgr.mk_func_decl(symbol("q"), 0, static_cast<sort * const *>(0), b), mgr);
func_decl_ref rPred(mgr.mk_func_decl(symbol("r"), 0, static_cast<sort * const *>(0), b), mgr);
func_decl_ref pPred(mgr.mk_func_decl(symbol("p"), 0, static_cast<sort * const *>(nullptr), b), mgr);
func_decl_ref qPred(mgr.mk_func_decl(symbol("q"), 0, static_cast<sort * const *>(nullptr), b), mgr);
func_decl_ref rPred(mgr.mk_func_decl(symbol("r"), 0, static_cast<sort * const *>(nullptr), b), mgr);
app_ref p(mgr.mk_app(pPred,0,static_cast<expr * const *>(0)), mgr);
app_ref q(mgr.mk_app(qPred,0,static_cast<expr * const *>(0)), mgr);
app_ref r(mgr.mk_app(rPred,0,static_cast<expr * const *>(0)), mgr);
app_ref p(mgr.mk_app(pPred,0,static_cast<expr * const *>(nullptr)), mgr);
app_ref q(mgr.mk_app(qPred,0,static_cast<expr * const *>(nullptr)), mgr);
app_ref r(mgr.mk_app(rPred,0,static_cast<expr * const *>(nullptr)), mgr);
app_ref pOqOr(mgr.mk_or(p,q,r), mgr);
app_ref np(mgr.mk_not(p), mgr);

View file

@ -11,7 +11,7 @@ Copyright (c) 2017 Microsoft Corporation
#include "sat/sat_solver.h"
#include "util/gparams.h"
static sat::solver * g_solver = 0;
static sat::solver * g_solver = nullptr;
static clock_t g_start_time;
static void display_statistics() {

View file

@ -26,7 +26,7 @@ void read_nums(std::istream& is, unsigned & x, unsigned& y) {
std::getline(is, line);
}
static char const* g_file = 0;
static char const* g_file = nullptr;
void create_forwarding(

View file

@ -30,6 +30,6 @@ void tst_escaped() {
std::cout << "[" << escaped("\n") << "]\n";
std::cout << "[" << escaped("", true) << "]\n";
std::cout << "[" << escaped("") << "]\n";
std::cout << "[" << escaped(0, true) << "]\n";
std::cout << "[" << escaped(0) << "]\n";
std::cout << "[" << escaped(nullptr, true) << "]\n";
std::cout << "[" << escaped(nullptr) << "]\n";
}

View file

@ -29,14 +29,14 @@ class ex1 : public ex {
char const * m_msg;
public:
ex1(char const * m):m_msg(m) {}
virtual char const * msg() const { return m_msg; }
char const * msg() const override { return m_msg; }
};
class ex2 : public ex {
std::string m_msg;
public:
ex2(char const * m):m_msg(m) {}
virtual char const * msg() const { return m_msg.c_str(); }
char const * msg() const override { return m_msg.c_str(); }
};
static void th() {

View file

@ -25,8 +25,8 @@ void tst_expr_arith(unsigned num_files) {
er.initialize_arith(20);
family_id fid = m.mk_family_id("arith");
sort* int_ty = m.mk_sort(fid, INT_SORT, 0, 0);
sort* real_ty = m.mk_sort(fid, REAL_SORT, 0, 0);
sort* int_ty = m.mk_sort(fid, INT_SORT, 0, nullptr);
sort* real_ty = m.mk_sort(fid, REAL_SORT, 0, nullptr);
er.initialize_array(3, int_ty, int_ty);
er.initialize_array(3, int_ty, real_ty);
@ -40,10 +40,10 @@ void tst_expr_arith(unsigned num_files) {
pp.set_logic(symbol("QF_AUFLIA"));
std::ostringstream buffer;
buffer << "random_arith_" << i << ".smt";
buffer << "random_arith_" << i << ".smt2";
std::cout << buffer.str() << "\n";
std::ofstream file(buffer.str().c_str());
pp.display(file, e.get());
pp.display_smt2(file, e.get());
file.close();
}
@ -83,10 +83,10 @@ void tst_expr_rand(unsigned num_files) {
pp.set_logic(symbol("QF_AUFBV"));
std::ostringstream buffer;
buffer << "random_bv_" << i << ".smt";
buffer << "random_bv_" << i << ".smt2";
std::cout << buffer.str() << "\n";
std::ofstream file(buffer.str().c_str());
pp.display(file, e.get());
pp.display_smt2(file, e.get());
file.close();
}

View file

@ -35,7 +35,7 @@ void expr_rand::add_func_decl(func_decl* f) {
void expr_rand::add_expr(expr* t) {
sort* s = m_manager.get_sort(t);
expr_ref_vector* vals = 0;
expr_ref_vector* vals = nullptr;
if (!m_nodes.find(s, vals)) {
vals = alloc(expr_ref_vector, m_manager);
m_nodes.insert(s, vals);
@ -71,7 +71,7 @@ func_decl* expr_rand::choose_func_decl() {
}
expr* expr_rand::choose_expr(sort* s) {
expr_ref_vector* vals = 0;
expr_ref_vector* vals = nullptr;
if (!m_nodes.find(s, vals)) {
add_var(s);
if (!m_nodes.find(s, vals)) {
@ -86,14 +86,14 @@ expr* expr_rand::choose_expr(sort* s) {
void expr_rand::initialize_arith(unsigned num_vars) {
arith_util u(m_manager);
family_id afid = m_manager.mk_family_id("arith");
sort* i_ty = m_manager.mk_sort(afid, INT_SORT, 0, 0);
sort* i_ty = m_manager.mk_sort(afid, INT_SORT, 0, nullptr);
for(unsigned i = 0; i < num_vars; ++i) {
add_var(i_ty);
}
sort* is[2] = { i_ty, i_ty };
decl_kind kinds[7] = {OP_ADD, OP_MUL, OP_SUB, OP_LE, OP_LT, OP_GE, OP_GT };
for (unsigned i = 0; i < 7; ++i) {
add_func_decl(m_manager.mk_func_decl(afid, kinds[i], 0, 0, 2, is));
add_func_decl(m_manager.mk_func_decl(afid, kinds[i], 0, nullptr, 2, is));
}
add_expr(u.mk_numeral(rational(0), true));
@ -137,37 +137,37 @@ void expr_rand::initialize_bv(unsigned num_vars) {
sort* s = m_manager.mk_sort(bvfid, BV_SORT, 1, &param);
sort* ss[3] = { s, s, s };
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BNEG, 0, 0, 1, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BADD, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BSUB, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BMUL, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BSDIV, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BUDIV, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BSREM, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BUREM, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BSMOD, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_ULEQ, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_SLEQ, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_UGEQ, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_SGEQ, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_ULT, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_SLT, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_UGT, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_SGT, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BAND, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BOR, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BNOT, 0, 0, 1, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BXOR, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BXNOR, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BNAND, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BCOMP, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BREDAND, 0, 0, 1, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BREDOR, 0, 0, 1, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BSHL, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BLSHR, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BASHR, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BNEG, 0, nullptr, 1, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BADD, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BSUB, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BMUL, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BSDIV, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BUDIV, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BSREM, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BUREM, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BSMOD, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_ULEQ, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_SLEQ, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_UGEQ, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_SGEQ, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_ULT, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_SLT, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_UGT, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_SGT, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BAND, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BOR, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BNOT, 0, nullptr, 1, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BXOR, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BXNOR, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BNAND, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BCOMP, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BREDAND, 0, nullptr, 1, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BREDOR, 0, nullptr, 1, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BSHL, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BLSHR, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_BASHR, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bfid, OP_EQ, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bfid, OP_EQ, 0, nullptr, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_ROTATE_LEFT, 1, &p1, 1, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_ROTATE_RIGHT, 1, &p1, 1, ss));
@ -182,22 +182,22 @@ void expr_rand::initialize_bv(unsigned num_vars) {
// OP_CONCAT:
{
sort* ss[2] = { b8, b8 };
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, nullptr, 2, ss));
ss[0] = b16;
ss[1] = b8;
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, nullptr, 2, ss));
ss[0] = b8;
ss[1] = b16;
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, nullptr, 2, ss));
ss[0] = b16;
ss[1] = b16;
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, nullptr, 2, ss));
ss[0] = b24;
ss[1] = b8;
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, nullptr, 2, ss));
ss[0] = b8;
ss[1] = b24;
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(bvfid, OP_CONCAT, 0, nullptr, 2, ss));
}
@ -246,8 +246,8 @@ void expr_rand::initialize_array(unsigned num_vars, sort* dom, sort* rng) {
sort* a = m_manager.mk_sort(afid, ARRAY_SORT, 2, ps);
sort* ss[3] = { a, dom, rng };
add_func_decl(m_manager.mk_func_decl(afid, OP_STORE, 0, 0, 3, ss));
add_func_decl(m_manager.mk_func_decl(afid, OP_SELECT, 0, 0, 2, ss));
add_func_decl(m_manager.mk_func_decl(afid, OP_STORE, 0, nullptr, 3, ss));
add_func_decl(m_manager.mk_func_decl(afid, OP_SELECT, 0, nullptr, 2, ss));
for (unsigned i = 0; i < num_vars; ++i) {
add_var(a);
@ -258,14 +258,14 @@ void expr_rand::initialize_basic(unsigned amplification) {
family_id bfid = m_manager.get_basic_family_id();
sort* bools[2] = { m_manager.mk_bool_sort(), m_manager.mk_bool_sort() };
for (unsigned i = 0; i < amplification; ++i) {
add_func_decl(m_manager.mk_func_decl(bfid, OP_OR, 0, 0, 2, bools));
add_func_decl(m_manager.mk_func_decl(bfid, OP_NOT, 0, 0, 1, bools));
add_func_decl(m_manager.mk_func_decl(bfid, OP_OR, 0, nullptr, 2, bools));
add_func_decl(m_manager.mk_func_decl(bfid, OP_NOT, 0, nullptr, 1, bools));
}
map_t::iterator it = m_nodes.begin();
map_t::iterator end = m_nodes.end();
for (; it != end; ++it) {
sort* s = it->m_key;
sort* ites[3] = { bools[0], s, s };
add_func_decl(m_manager.mk_func_decl(bfid, OP_ITE, 0, 0, 3, ites));
add_func_decl(m_manager.mk_func_decl(bfid, OP_ITE, 0, nullptr, 3, ites));
}
}

View file

@ -61,12 +61,12 @@ void test2() {
datatype_decl_plugin & dt = *(static_cast<datatype_decl_plugin*>(m.get_plugin(m.get_family_id("datatype"))));
sort_ref_vector new_sorts(m);
constructor_decl* R = mk_constructor_decl(symbol("R"), symbol("is-R"), 0, 0);
constructor_decl* G = mk_constructor_decl(symbol("G"), symbol("is-G"), 0, 0);
constructor_decl* B = mk_constructor_decl(symbol("B"), symbol("is-B"), 0, 0);
constructor_decl* R = mk_constructor_decl(symbol("R"), symbol("is-R"), 0, nullptr);
constructor_decl* G = mk_constructor_decl(symbol("G"), symbol("is-G"), 0, nullptr);
constructor_decl* B = mk_constructor_decl(symbol("B"), symbol("is-B"), 0, nullptr);
constructor_decl* constrs[3] = { R, G, B };
datatype_decl * enum_sort = mk_datatype_decl(dtutil, symbol("RGB"), 0, nullptr, 3, constrs);
VERIFY(dt.mk_datatypes(1, &enum_sort, 0, nullptr, new_sorts));
VERIFY(dt.mk_datatypes(1, &enum_sort, 0, nullptr, new_sorts));
sort* rgb = new_sorts[0].get();
expr_ref x = mk_const(m, "x", rgb), y = mk_const(m, "y", rgb), z = mk_const(m, "z", rgb);
@ -89,7 +89,7 @@ void test2() {
fd_solver->push();
fd_solver->assert_expr(m.mk_not(m.mk_eq(x, g)));
VERIFY(l_false == fd_solver->check_sat(0,0));
VERIFY(l_false == fd_solver->check_sat(0,nullptr));
fd_solver->pop(1);
VERIFY(l_true == fd_solver->get_consequences(asms, vars, conseq));
@ -101,7 +101,7 @@ void test2() {
fd_solver->get_model(mr);
model_smt2_pp(std::cout << "model:\n", m, *mr.get(), 0);
VERIFY(l_true == fd_solver->check_sat(0,0));
VERIFY(l_true == fd_solver->check_sat(0,nullptr));
fd_solver->get_model(mr);
ENSURE(mr.get());
model_smt2_pp(std::cout, m, *mr.get(), 0);

View file

@ -19,20 +19,22 @@ Revision History:
#include<iostream>
#include "util/util.h"
#include "util/heap.h"
#include "util/hashtable.h"
#include "util/trace.h"
#include "util/uint_set.h"
// include "util/hashtable.h"
struct lt_proc { bool operator()(int v1, int v2) const { return v1 < v2; } };
//struct int_hash_proc { unsigned operator()(int v) const { std::cout << "hash " << v << "\n"; VERIFY(v >= 0); return v; }};
//typedef int_hashtable<int_hash_proc, default_eq<int> > int_set;
typedef heap<lt_proc> int_heap;
struct int_hash_proc { unsigned operator()(int v) const { return v * 17; }};
typedef int_hashtable<int_hash_proc, default_eq<int> > int_set;
#define N 10000
static random_gen heap_rand(1);
static void tst1() {
int_heap h(N);
int_set t;
// int_set t;
uint_set t;
for (int i = 0; i < N * 3; i++) {
int val = heap_rand() % N;
if (!h.contains(val)) {
@ -41,14 +43,15 @@ static void tst1() {
t.insert(val);
}
else {
if (!t.contains(val)) {
for (int v : t) std::cout << v << "\n";
}
ENSURE(t.contains(val));
}
}
ENSURE(h.check_invariant());
int_set::iterator it = t.begin();
int_set::iterator end = t.end();
for (; it != end; ++it) {
ENSURE(h.contains(*it));
for (int v : t) {
ENSURE(h.contains(v));
}
while (!h.empty()) {
int m1 = h.min_value();
@ -84,6 +87,8 @@ static void dump_heap(const int_heap2 & h, std::ostream & out) {
static void tst2() {
int_heap2 h(N);
for (int i = 0; i < N * 10; i++) {
if (i % 1 == 0) std::cout << "i: " << i << std::endl;
if (i % 1000 == 0) std::cout << "i: " << i << std::endl;
int cmd = heap_rand() % 10;
if (cmd <= 3) {
@ -134,6 +139,7 @@ void tst_heap() {
enable_trace("heap");
unsigned i = 0;
while (i < 3) {
IF_VERBOSE(1, verbose_stream() << "test\n";);
heap_rand.set_seed(i++);
tst1();
init_values();

View file

@ -210,7 +210,7 @@ expr_ref hilbert_basis_validate::mk_validate(hilbert_basis& hb) {
}
hilbert_basis* g_hb = 0;
hilbert_basis* g_hb = nullptr;
static double g_start_time;
static void display_statistics(hilbert_basis& hb) {

View file

@ -27,10 +27,10 @@ static void tst1() {
list<int> * l2 = new (r) list<int>(20, l1);
list<int> * l3 = new (r) list<int>(30);
list<int> * l4 = new (r) list<int>(40, l3);
ENSURE(append(r, l1, static_cast<list<int> *>(0)) == l1);
ENSURE(append(r, l2, static_cast<list<int> *>(0)) == l2);
ENSURE(append(r, static_cast<list<int> *>(0), l2) == l2);
ENSURE(append(r, static_cast<list<int> *>(0), static_cast<list<int> *>(0)) == 0);
ENSURE(append(r, l1, static_cast<list<int> *>(nullptr)) == l1);
ENSURE(append(r, l2, static_cast<list<int> *>(nullptr)) == l2);
ENSURE(append(r, static_cast<list<int> *>(nullptr), l2) == l2);
ENSURE(append(r, static_cast<list<int> *>(nullptr), static_cast<list<int> *>(nullptr)) == nullptr);
TRACE("list", display(tout, l2->begin(), l2->end()); tout << "\n";);
list<int> * l5 = append(r, l4, l2);
TRACE("list", display(tout, l5->begin(), l5->end()); tout << "\n";);

View file

@ -272,7 +272,7 @@ static void tst4() {
static void tst5() {
params_ref ps;
reslimit rlim;
nlsat::solver s(rlim, ps);
nlsat::solver s(rlim, ps, false);
anum_manager & am = s.am();
nlsat::pmanager & pm = s.pm();
nlsat::assignment as(am);
@ -293,7 +293,7 @@ static void tst5() {
bool is_even[1] = { false };
nlsat::bool_var b = s.mk_ineq_atom(nlsat::atom::GT, 1, _p, is_even);
nlsat::atom * a = s.bool_var2atom(b);
ENSURE(a != 0);
ENSURE(a != nullptr);
scoped_anum zero(am);
am.set(zero, 0);
as.set(0, zero);
@ -330,7 +330,7 @@ static nlsat::literal mk_eq(nlsat::solver& s, nlsat::poly* p) {
static void tst6() {
params_ref ps;
reslimit rlim;
nlsat::solver s(rlim, ps);
nlsat::solver s(rlim, ps, false);
anum_manager & am = s.am();
nlsat::pmanager & pm = s.pm();
nlsat::assignment as(am);
@ -390,7 +390,7 @@ static void tst6() {
static void tst7() {
params_ref ps;
reslimit rlim;
nlsat::solver s(rlim, ps);
nlsat::solver s(rlim, ps, false);
nlsat::pmanager & pm = s.pm();
nlsat::var x0, x1, x2, a, b, c, d;
a = s.mk_var(false);
@ -443,7 +443,7 @@ static void tst7() {
static void tst8() {
params_ref ps;
reslimit rlim;
nlsat::solver s(rlim, ps);
nlsat::solver s(rlim, ps, false);
anum_manager & am = s.am();
nlsat::pmanager & pm = s.pm();
nlsat::assignment as(am);
@ -492,7 +492,7 @@ static void tst8() {
static void tst9() {
params_ref ps;
reslimit rlim;
nlsat::solver s(rlim, ps);
nlsat::solver s(rlim, ps, false);
anum_manager & am = s.am();
nlsat::pmanager & pm = s.pm();
nlsat::assignment as(am);
@ -624,7 +624,7 @@ static bool satisfies_root(nlsat::solver& s, nlsat::atom::kind k, nlsat::poly* p
static void tst10() {
params_ref ps;
reslimit rlim;
nlsat::solver s(rlim, ps);
nlsat::solver s(rlim, ps, false);
anum_manager & am = s.am();
nlsat::pmanager & pm = s.pm();
nlsat::assignment as(am);

View file

@ -120,10 +120,10 @@ class interval_tester {
interval singleton(int i) { return interval(m, rational(i)); }
interval all() { return interval(m); }
interval l(int i, bool o = false, size_t idx = 0) { return interval(m, rational(i), o, true, idx == 0 ? 0 : m.mk_leaf(reinterpret_cast<void*>(idx))); }
interval r(int i, bool o = false, size_t idx = 0) { return interval(m, rational(i), o, false, idx == 0 ? 0 : m.mk_leaf(reinterpret_cast<void*>(idx))); }
interval l(int i, bool o = false, size_t idx = 0) { return interval(m, rational(i), o, true, idx == 0 ? nullptr : m.mk_leaf(reinterpret_cast<void*>(idx))); }
interval r(int i, bool o = false, size_t idx = 0) { return interval(m, rational(i), o, false, idx == 0 ? nullptr : m.mk_leaf(reinterpret_cast<void*>(idx))); }
interval b(int l, int u, bool lo = false, bool uo = false, size_t idx_l = 0, size_t idx_u = 0) {
return interval(m, rational(l), lo, idx_l == 0 ? 0 : m.mk_leaf(reinterpret_cast<void*>(idx_l)), rational(u), uo, idx_u == 0 ? 0 : m.mk_leaf(reinterpret_cast<void*>(idx_u)));
return interval(m, rational(l), lo, idx_l == 0 ? nullptr : m.mk_leaf(reinterpret_cast<void*>(idx_l)), rational(u), uo, idx_u == 0 ? nullptr : m.mk_leaf(reinterpret_cast<void*>(idx_u)));
}
void bugs() {

View file

@ -151,10 +151,10 @@ static void test_solver_semantics(ast_manager& m, expr_ref_vector const& vars, v
std::cout << fml1 << " " << fml2 << "\n";
th_rw(fml2, result2, proof);
ENSURE(m.is_true(result2) || m.is_false(result2));
lbool res = slv->check_sat(0,0);
lbool res = slv->check_sat(0,nullptr);
VERIFY(res == l_true);
slv->assert_expr(m.is_true(result2) ? m.mk_not(result1) : result1.get());
res = slv->check_sat(0,0);
res = slv->check_sat(0,nullptr);
VERIFY(res == l_false);
}
}

View file

@ -103,7 +103,7 @@ struct test_model_search {
unsigned level = 4;
for(unsigned n = 0; n < 100; ++n) {
state = mk_state(states, rand);
model_node* root = alloc(model_node, 0, state, pt, level);
model_node* root = alloc(model_node, nullptr, state, pt, level);
search.set_root(root);
add_tree(root, false);
search.display(std::cout);

View file

@ -172,7 +172,7 @@ static expr_ref mk_mul(arith_util& arith, unsigned num_args, expr* const* args)
static void nf(expr_ref& term) {
ast_manager& m = term.get_manager();
expr *e1 = 0, *e2 = 0;
expr *e1 = nullptr, *e2 = nullptr;
th_rewriter rw(m);
arith_util arith(m);

View file

@ -8,13 +8,12 @@ Copyright (c) 2015 Microsoft Corporation
#include "smt/params/smt_params.h"
#include "qe/qe.h"
#include "ast/ast_pp.h"
#include "parsers/smt/smtlib.h"
#include "parsers/smt/smtparser.h"
#include "util/lbool.h"
#include <sstream>
#include "ast/reg_decl_plugins.h"
#if 0
static void test_qe(ast_manager& m, lbool expected_outcome, expr* fml, char const* option) {
// enable_trace("bit2int");
@ -50,10 +49,14 @@ static void test_qe(ast_manager& m, lbool expected_outcome, expr* fml, char cons
//exit(-1);
}
}
#endif
static void test_formula(lbool expected_outcome, char const* fml) {
ast_manager m;
reg_decl_plugins(m);
// No-op requires SMTLIB2
#if 0
scoped_ptr<smtlib::parser> parser = smtlib::parser::create(m);
parser->initialize_smtlib();
@ -73,8 +76,10 @@ static void test_formula(lbool expected_outcome, char const* fml) {
for (; it != end; ++it) {
test_qe(m, expected_outcome, *it, 0);
}
#endif
}
void tst_quant_elim() {
disable_debug("heap");

View file

@ -387,9 +387,9 @@ static void tst9() {
static void tst10(bool use_ints) {
if (use_ints)
std::cout << "Testing multiplication performace using small ints\n";
std::cout << "Testing multiplication performance using small ints\n";
else
std::cout << "Testing multiplication performace using small rationals\n";
std::cout << "Testing multiplication performance using small rationals\n";
vector<rational> vals;
vector<rational> vals2;
vector<float> fvals;

View file

@ -28,11 +28,11 @@ void test_print(Z3_context ctx, Z3_ast_vector av) {
Z3_parse_smtlib2_string(ctx,
spec1,
0,
nullptr,
nullptr,
0,
0,
0,
0,
0);
nullptr,
nullptr);
std::cout << "parse successful, converting ast->string\n";
Z3_ast_vector_inc_ref(ctx, b);
char const* spec2 = Z3_ast_vector_to_string(ctx, b);
@ -41,18 +41,18 @@ void test_print(Z3_context ctx, Z3_ast_vector av) {
}
void test_parseprint(char const* spec) {
Z3_context ctx = Z3_mk_context(0);
Z3_context ctx = Z3_mk_context(nullptr);
std::cout << "spec:\n" << spec << "\n";
Z3_ast_vector a =
Z3_parse_smtlib2_string(ctx,
spec,
0,
nullptr,
nullptr,
0,
0,
0,
0,
0);
nullptr,
nullptr);
std::cout << "done parsing\n";
Z3_ast_vector_inc_ref(ctx, a);

View file

@ -28,7 +28,7 @@ struct ast_ext {
return m.mk_implies(a, b);
}
UNREACHABLE();
return 0;
return nullptr;
}
T mk_default() {
return m.mk_false();

View file

@ -148,7 +148,7 @@ void tst_theory_pb() {
ctx.push();
smt::literal l = smt::theory_pb::assert_ge(ctx, k+1, lits.size(), lits.c_ptr());
if (l != smt::false_literal) {
ctx.assign(l, 0, false);
ctx.assign(l, nullptr, false);
TRACE("pb", tout << "assign: " << l << "\n";
ctx.display(tout););
VERIFY(l_false == ctx.check());
@ -160,7 +160,7 @@ void tst_theory_pb() {
ctx.push();
smt::literal l = smt::theory_pb::assert_ge(ctx, k, lits.size(), lits.c_ptr());
ENSURE(l != smt::false_literal);
ctx.assign(l, 0, false);
ctx.assign(l, nullptr, false);
TRACE("pb", ctx.display(tout););
VERIFY(l_true == ctx.check());
ctx.pop(1);

View file

@ -89,7 +89,7 @@ class udoc_tester {
for (unsigned i = 0; i < num_diff; ++i) {
t = mk_rand_tbv(dm, result->pos());
if (dm.tbvm().equals(*t, result->pos())) {
return 0;
return nullptr;
}
if (!result->neg().is_empty() &&
dm.tbvm().equals(*t, result->neg()[0])) {
@ -278,7 +278,7 @@ public:
t1->to_formula(t10);
expr_ref delta0(m);
delta->to_formula(delta0);
rel_union union_fn = p.mk_union_fn(*t1, *t2, 0);
rel_union union_fn = p.mk_union_fn(*t1, *t2, nullptr);
t1->display(std::cout << "t1 before:"); std::cout << "\n";
(*union_fn)(*t1, *t2, delta);
@ -840,7 +840,7 @@ public:
void set_random(udoc_relation& r, unsigned num_vals) {
unsigned num_bits = r.get_dm().num_tbits();
udoc_relation* full = mk_full(r.get_signature());
rel_union union_fn = p.mk_union_fn(r, r, 0);
rel_union union_fn = p.mk_union_fn(r, r, nullptr);
(*union_fn)(r, *full);
doc_manager& dm = r.get_dm();
ENSURE(r.get_udoc().size() == 1);
@ -905,8 +905,8 @@ public:
void apply_filter(udoc_relation& t, app* cond) {
udoc_relation* full = mk_full(t.get_signature());
rel_union union_fn = p.mk_union_fn(t, *full, 0);
(*union_fn)(t, *full, 0);
rel_union union_fn = p.mk_union_fn(t, *full, nullptr);
(*union_fn)(t, *full, nullptr);
expr_ref fml0(m);
t.to_formula(fml0);
rel_mut fint = p.mk_filter_interpreted_fn(t, cond);

View file

@ -27,7 +27,7 @@ Revision History:
namespace find_q {
struct proc {
quantifier * m_q;
proc():m_q(0) {}
proc():m_q(nullptr) {}
void operator()(var * n) {}
void operator()(app * n) {}
void operator()(quantifier * n) { m_q = n; }