3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-06 06:03:23 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-07-31 09:23:55 -07:00
parent 8bd0407adf
commit ceca9fbef0
2 changed files with 7 additions and 9 deletions

View file

@ -148,7 +148,6 @@ namespace smt {
m_node1(n1), m_node1(n1),
m_node2(n2), m_node2(n2),
m_js(js) { m_js(js) {
SASSERT(n1 != n2);
} }
virtual void get_antecedents(conflict_resolution & cr); virtual void get_antecedents(conflict_resolution & cr);

View file

@ -760,7 +760,7 @@ namespace smt {
ptr_vector<expr> const & exceptions = n->get_exceptions(); ptr_vector<expr> const & exceptions = n->get_exceptions();
ptr_vector<node> const & avoid_set = n->get_avoid_set(); ptr_vector<node> const & avoid_set = n->get_avoid_set();
obj_map<expr, unsigned> const & elems = s->get_elems(); obj_map<expr, unsigned> const & elems = s->get_elems();
SASSERT(!elems.empty()); if (elems.empty()) return;
if (!exceptions.empty() || !avoid_set.empty()) { if (!exceptions.empty() || !avoid_set.empty()) {
ptr_buffer<expr> ex_vals; ptr_buffer<expr> ex_vals;
collect_exceptions_values(n, ex_vals); collect_exceptions_values(n, ex_vals);
@ -927,15 +927,14 @@ namespace smt {
ptr_buffer<expr> values; ptr_buffer<expr> values;
get_instantiation_set_values(n, values); get_instantiation_set_values(n, values);
sort * s = n->get_sort(); sort * s = n->get_sort();
expr * else_val = eval(n->get_else(), true); func_decl * p = m_manager.mk_fresh_func_decl(1, &s, s);
func_decl * p = m_manager.mk_fresh_func_decl(1, &s, s);
func_interp * pi = alloc(func_interp, m_manager, 1); func_interp * pi = alloc(func_interp, m_manager, 1);
pi->set_else(else_val);
m_model->register_aux_decl(p, pi); m_model->register_aux_decl(p, pi);
ptr_buffer<expr>::const_iterator it = values.begin(); if (n->get_else()) {
ptr_buffer<expr>::const_iterator end = values.end(); expr * else_val = eval(n->get_else(), true);
for (; it != end; ++it) { pi->set_else(else_val);
expr * v = *it; }
for (expr * v : values) {
pi->insert_new_entry(&v, v); pi->insert_new_entry(&v, v);
} }
n->set_proj(p); n->set_proj(p);