mirror of
https://github.com/Z3Prover/z3
synced 2025-06-18 20:03:38 +00:00
Use nullptr.
This commit is contained in:
parent
f01328c65f
commit
76eb7b9ede
625 changed files with 4639 additions and 4639 deletions
|
@ -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())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue