3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-18 20:03:38 +00:00

Use nullptr.

This commit is contained in:
Bruce Mitchener 2018-02-12 14:05:55 +07:00
parent f01328c65f
commit 76eb7b9ede
625 changed files with 4639 additions and 4639 deletions

View file

@ -120,7 +120,7 @@ namespace smt {
}
expr * get_inv(expr * v) const {
expr * t = 0;
expr * t = nullptr;
m_inv.find(v, t);
return t;
}
@ -140,7 +140,7 @@ namespace smt {
if (!t_val) break;
TRACE("model_finder", tout << mk_pp(t, m_manager) << " " << mk_pp(t_val, m_manager) << "\n";);
expr * old_t = 0;
expr * old_t = nullptr;
if (m_inv.find(t_val, old_t)) {
unsigned old_t_gen = 0;
SASSERT(m_elems.contains(old_t));
@ -223,14 +223,14 @@ namespace smt {
public:
node(unsigned id, sort * s):
m_id(id),
m_find(0),
m_find(nullptr),
m_eqc_size(1),
m_sort(s),
m_mono_proj(false),
m_signed_proj(false),
m_set(0),
m_else(0),
m_proj(0) {
m_set(nullptr),
m_else(nullptr),
m_proj(nullptr) {
}
~node() {
@ -242,7 +242,7 @@ namespace smt {
sort * get_sort() const { return m_sort; }
bool is_root() const { return m_find == 0; }
bool is_root() const { return m_find == nullptr; }
node * get_root() const {
node * curr = const_cast<node*>(this);
@ -428,7 +428,7 @@ namespace smt {
}
node * mk_node(key2node & m, ast * n, unsigned i, sort * s) {
node * r = 0;
node * r = nullptr;
ast_idx_pair k(n, i);
if (m.find(k, r)) {
SASSERT(r->get_sort() == s);
@ -469,11 +469,11 @@ namespace smt {
m_arith(m),
m_bv(m),
m_next_node_id(0),
m_context(0),
m_context(nullptr),
m_ks(m),
m_model(0),
m_model(nullptr),
m_eval_cache_range(m),
m_new_constraints(0) {
m_new_constraints(nullptr) {
}
virtual ~auf_solver() {
@ -523,10 +523,10 @@ namespace smt {
instantiation_set const * get_uvar_inst_set(quantifier * q, unsigned i) const {
SASSERT(!has_quantifiers(q->get_expr()));
ast_idx_pair k(q, i);
node * r = 0;
node * r = nullptr;
if (m_uvars.find(k, r))
return r->get_instantiation_set();
return 0;
return nullptr;
}
void mk_instantiation_sets() {
@ -567,13 +567,13 @@ namespace smt {
}
expr * eval(expr * n, bool model_completion) override {
expr * r = 0;
expr * r = nullptr;
if (m_eval_cache[model_completion].find(n, r)) {
return r;
}
expr_ref tmp(m);
if (!m_model->eval(n, tmp, model_completion)) {
r = 0;
r = nullptr;
TRACE("model_finder", tout << "eval\n" << mk_pp(n, m) << "\n-----> null\n";);
}
else {
@ -602,7 +602,7 @@ namespace smt {
for (node* a : avoid_set) {
node * n = a->get_root();
if (!n->is_mono_proj() && n->get_else() != 0) {
if (!n->is_mono_proj() && n->get_else() != nullptr) {
expr * val = eval(n->get_else(), true);
SASSERT(val != 0);
r.push_back(val);
@ -621,7 +621,7 @@ namespace smt {
instantiation_set const * s = n->get_instantiation_set();
obj_map<expr, unsigned> const & elems = s->get_elems();
expr * t_result = 0;
expr * t_result = nullptr;
unsigned gen_result = UINT_MAX;
for (auto const& kv : elems) {
expr * t = kv.m_key;
@ -635,7 +635,7 @@ namespace smt {
break;
}
}
if (!found && (t_result == 0 || gen < gen_result)) {
if (!found && (t_result == nullptr || gen < gen_result)) {
t_result = t;
gen_result = gen;
}
@ -652,7 +652,7 @@ namespace smt {
*/
app * get_k_for(sort * s) {
SASSERT(is_infinite(s));
app * r = 0;
app * r = nullptr;
if (m_sort2k.find(s, r))
return r;
r = m.mk_fresh_const("k", s);
@ -674,11 +674,11 @@ namespace smt {
SASSERT(is_infinite(s));
func_decl * k_decl = k->get_decl();
expr * r = m_model->get_const_interp(k_decl);
if (r != 0)
if (r != nullptr)
return r;
r = m_model->get_fresh_value(s);
if (r == 0)
return 0;
if (r == nullptr)
return nullptr;
m_model->register_decl(k_decl, r);
SASSERT(m_model->get_const_interp(k_decl) == r);
TRACE("model_finder", tout << mk_pp(r, m) << "\n";);
@ -694,7 +694,7 @@ namespace smt {
TRACE("assert_k_diseq_exceptions", tout << "assert_k_diseq_exceptions, " << "k: " << mk_pp(k, m) << "\nexceptions:\n";
for (expr * e : exceptions) tout << mk_pp(e, m) << "\n";);
expr * k_interp = get_k_interp(k);
if (k_interp == 0)
if (k_interp == nullptr)
return false;
for (expr * ex : exceptions) {
expr * ex_val = eval(ex, true);
@ -720,7 +720,7 @@ namespace smt {
ptr_buffer<expr> ex_vals;
collect_exceptions_values(n, ex_vals);
expr * e = pick_instance_diff_exceptions(n, ex_vals);
if (e != 0) {
if (e != nullptr) {
n->set_else(e);
return;
}
@ -912,7 +912,7 @@ namespace smt {
func_decl * f = to_func_decl(kv.m_key.first);
if (!r.contains(f)) {
func_interp * fi = m_model->get_func_interp(f);
if (fi == 0) {
if (fi == nullptr) {
fi = alloc(func_interp, m, f->get_arity());
m_model->register_decl(f, fi);
SASSERT(fi->is_partial());
@ -1013,10 +1013,10 @@ namespace smt {
is irrelevant after the projections are applied.
*/
func_decl * get_f_i_proj(func_decl * f, unsigned i) {
node * r = 0;
node * r = nullptr;
ast_idx_pair k(f, i);
if (!m_A_f_is.find(k, r))
return 0;
return nullptr;
return r->get_proj();
}
@ -1039,7 +1039,7 @@ namespace smt {
for (unsigned i = 0; i < arity; i++) {
var * v = m.mk_var(i, f->get_domain(i));
func_decl * pi = get_f_i_proj(f, i);
if (pi != 0) {
if (pi != nullptr) {
args.push_back(m.mk_app(pi, v));
has_proj = true;
}
@ -1384,9 +1384,9 @@ namespace smt {
func_decl * get_array_func_decl(app * ground_array, auf_solver & s) {
expr * ground_array_interp = s.eval(ground_array, false);
if (ground_array_interp != 0 && m_array.is_as_array(ground_array_interp))
if (ground_array_interp != nullptr && m_array.is_as_array(ground_array_interp))
return m_array.get_as_array_func_decl(ground_array_interp);
return 0;
return nullptr;
}
public:
@ -1656,7 +1656,7 @@ namespace smt {
expr * get_cond() const { return m_cond; }
bool is_unconditional() const { return m_cond == 0 || m_manager.is_true(m_cond); }
bool is_unconditional() const { return m_cond == nullptr || m_manager.is_true(m_cond); }
bool satisfy_atom() const { return m_satisfy_atom; }
@ -1736,8 +1736,8 @@ namespace smt {
m_flat_q(m),
m_is_auf(true),
m_has_x_eq_y(false),
m_the_one(0),
m_uvar_inst_sets(0) {
m_the_one(nullptr),
m_uvar_inst_sets(nullptr) {
if (has_quantifiers(q->get_expr())) {
static bool displayed_flat_msg = false;
if (!displayed_flat_msg) {
@ -1850,30 +1850,30 @@ namespace smt {
void populate_macro_based_inst_sets(context * ctx, evaluator & ev) {
SASSERT(m_the_one != 0);
if (m_uvar_inst_sets != 0)
if (m_uvar_inst_sets != nullptr)
return;
m_uvar_inst_sets = alloc(ptr_vector<instantiation_set>);
for (qinfo* qi : m_qinfo_vect)
qi->populate_inst_sets(m_flat_q, m_the_one, *m_uvar_inst_sets, ctx);
for (instantiation_set * s : *m_uvar_inst_sets) {
if (s != 0)
if (s != nullptr)
s->mk_inverse(ev);
}
}
instantiation_set * get_macro_based_inst_set(unsigned vidx, context * ctx, evaluator & ev) {
if (m_the_one == 0)
return 0;
if (m_the_one == nullptr)
return nullptr;
populate_macro_based_inst_sets(ctx, ev);
return m_uvar_inst_sets->get(vidx, 0);
}
void reset_the_one() {
m_the_one = 0;
m_the_one = nullptr;
if (m_uvar_inst_sets) {
std::for_each(m_uvar_inst_sets->begin(), m_uvar_inst_sets->end(), delete_proc<instantiation_set>());
dealloc(m_uvar_inst_sets);
m_uvar_inst_sets = 0;
m_uvar_inst_sets = nullptr;
}
}
};
@ -2389,7 +2389,7 @@ namespace smt {
m_array_util(m),
m_arith_util(m),
m_bv_util(m),
m_info(0) {
m_info(nullptr) {
}
@ -2416,7 +2416,7 @@ namespace smt {
collect_macro_candidates(q);
m_info = 0;
m_info = nullptr;
}
};
@ -2431,7 +2431,7 @@ namespace smt {
proto_model * m_model;
quantifier_info * get_qinfo(quantifier * q) const {
quantifier_info * qi = 0;
quantifier_info * qi = nullptr;
m_q2info.find(q, qi);
SASSERT(qi != 0);
return qi;
@ -2440,7 +2440,7 @@ namespace smt {
void set_else_interp(func_decl * f, expr * f_else) {
SASSERT(f_else != 0);
func_interp * fi = m_model->get_func_interp(f);
if (fi == 0) {
if (fi == nullptr) {
fi = alloc(func_interp, m_manager, f->get_arity());
m_model->register_decl(f, fi);
}
@ -2453,7 +2453,7 @@ namespace smt {
base_macro_solver(ast_manager & m, obj_map<quantifier, quantifier_info *> const & q2i):
m_manager(m),
m_q2info(q2i),
m_model(0) {
m_model(nullptr) {
}
virtual ~base_macro_solver() {}
@ -2596,7 +2596,7 @@ namespace smt {
void insert_q_f(quantifier * q, func_decl * f) {
SASSERT(!m_forbidden.contains(f));
quantifier_set * s = 0;
quantifier_set * s = nullptr;
if (!m_q_f.find(f, s)) {
s = alloc(quantifier_set);
m_q_f.insert(f, s);
@ -2607,7 +2607,7 @@ namespace smt {
}
void insert_f2def(func_decl * f, expr * def) {
expr_set * s = 0;
expr_set * s = nullptr;
if (!m_f2defs.find(f, s)) {
s = alloc(expr_set);
m_f2defs.insert(f, s);
@ -2619,7 +2619,7 @@ namespace smt {
void insert_q_f_def(quantifier * q, func_decl * f, expr * def) {
SASSERT(!m_forbidden.contains(f));
quantifier_set * s = 0;
quantifier_set * s = nullptr;
if (!m_q_f_def.find(f, def, s)) {
s = alloc(quantifier_set);
m_q_f_def.insert(f, def, s);
@ -2631,21 +2631,21 @@ namespace smt {
}
quantifier_set * get_q_f(func_decl * f) {
quantifier_set * s = 0;
quantifier_set * s = nullptr;
m_q_f.find(f, s);
SASSERT(s != 0);
return s;
}
quantifier_set * get_q_f_def(func_decl * f, expr * def) {
quantifier_set * s = 0;
quantifier_set * s = nullptr;
m_q_f_def.find(f, def, s);
SASSERT(s != 0);
return s;
}
expr_set * get_f_defs(func_decl * f) {
expr_set * s = 0;
expr_set * s = nullptr;
m_f2defs.find(f, s);
SASSERT(s != 0);
return s;
@ -2762,7 +2762,7 @@ namespace smt {
void operator()(quantifier * q, bool ins) {
quantifier_info * qi = m_owner->get_qinfo(q);
qi->set_the_one(0);
qi->set_the_one(nullptr);
}
ev_handler(hint_solver * o):
@ -3020,7 +3020,7 @@ namespace smt {
// Return true if r1 is a better macro than r2.
bool is_better_macro(cond_macro * r1, cond_macro * r2) {
if (r2 == 0 || !r1->is_hint())
if (r2 == nullptr || !r1->is_hint())
return true;
if (!r2->is_hint())
return false;
@ -3031,7 +3031,7 @@ namespace smt {
}
cond_macro * get_macro_for(func_decl * f, quantifier * q) {
cond_macro * r = 0;
cond_macro * r = nullptr;
quantifier_info * qi = get_qinfo(q);
quantifier_info::macro_iterator it = qi->begin_macros();
quantifier_info::macro_iterator end = qi->end_macros();
@ -3094,14 +3094,14 @@ namespace smt {
if (m->is_unconditional())
return; // f is part of a full macro... ignoring it.
to_remove.push_back(q);
if (fi_else.get() == 0) {
if (fi_else.get() == nullptr) {
fi_else = m->get_def();
}
else {
fi_else = m_manager.mk_ite(m->get_cond(), m->get_def(), fi_else);
}
}
if (fi_else.get() != 0 && add_macro(f, fi_else)) {
if (fi_else.get() != nullptr && add_macro(f, fi_else)) {
for (quantifier * q : to_remove) {
get_qinfo(q)->set_the_one(f);
removed.insert(q);
@ -3139,7 +3139,7 @@ namespace smt {
non_auf_macro_solver(ast_manager & m, obj_map<quantifier, quantifier_info *> const & q2i, func_decl_dependencies & d):
base_macro_solver(m, q2i),
m_dependencies(d),
m_qi_params(0) {
m_qi_params(nullptr) {
}
void set_params(qi_params const & p) {
@ -3157,7 +3157,7 @@ namespace smt {
model_finder::model_finder(ast_manager & m):
m_manager(m),
m_context(0),
m_context(nullptr),
m_analyzer(alloc(quantifier_analyzer, *this, m)),
m_auf_solver(alloc(auf_solver, m)),
m_dependencies(m),
@ -3182,7 +3182,7 @@ namespace smt {
}
mf::quantifier_info * model_finder::get_quantifier_info(quantifier * q) const {
quantifier_info * info = 0;
quantifier_info * info = nullptr;
m_q2info.find(q, info);
SASSERT(info != 0);
return info;
@ -3348,7 +3348,7 @@ namespace smt {
instantiation_set const * r = m_auf_solver->get_uvar_inst_set(flat_q, flat_q->get_num_decls() - q->get_num_decls() + i);
TRACE("model_finder", tout << "q: #" << q->get_id() << "\n" << mk_pp(q,m_manager) << "\nflat_q: " << mk_pp(flat_q, m_manager)
<< "\ni: " << i << " " << flat_q->get_num_decls() - q->get_num_decls() + i << "\n";);
if (r != 0)
if (r != nullptr)
return r;
// quantifier was not processed by AUF solver...
// it must have been satisfied by "macro"/"hint".
@ -3368,10 +3368,10 @@ namespace smt {
*/
expr * model_finder::get_inv(quantifier * q, unsigned i, expr * val, unsigned & generation) const {
instantiation_set const * s = get_uvar_inst_set(q, i);
if (s == 0)
return 0;
if (s == nullptr)
return nullptr;
expr * t = s->get_inv(val);
if (t != 0) {
if (t != nullptr) {
generation = s->get_generation(t);
}
return t;
@ -3399,7 +3399,7 @@ namespace smt {
for (unsigned i = 0; i < num_decls; i++) {
expr * sk = sks.get(num_decls - i - 1);
instantiation_set const * s = get_uvar_inst_set(q, i);
if (s == 0)
if (s == nullptr)
continue; // nothing to do
obj_map<expr, expr *> const & inv = s->get_inv_map();
if (inv.empty())