3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-21 05:13:39 +00:00
This commit is contained in:
Nikolaj Bjorner 2021-06-17 17:45:13 -07:00
parent 02644b5b71
commit ed9341e3b0
6 changed files with 6 additions and 3 deletions

View file

@ -745,7 +745,7 @@ namespace euf {
out << "] "; out << "] ";
} }
if (n->value() != l_undef) if (n->value() != l_undef)
out << "[v" << n->bool_var() << " := " << (n->value() == l_true ? "T":"F") << "] "; out << "[b" << n->bool_var() << " := " << (n->value() == l_true ? "T":"F") << "] ";
if (n->has_th_vars()) { if (n->has_th_vars()) {
out << "[t"; out << "[t";
for (auto v : enode_th_vars(n)) for (auto v : enode_th_vars(n))

View file

@ -50,7 +50,7 @@ namespace arith {
scoped_anum an(m_nla->am()); scoped_anum an(m_nla->am());
m_nla->am().display(out << " = ", nl_value(v, an)); m_nla->am().display(out << " = ", nl_value(v, an));
} }
else if (can_get_value(v)) else if (can_get_value(v) && !m_solver->has_changed_columns())
out << " = " << get_value(v); out << " = " << get_value(v);
if (is_int(v)) if (is_int(v))
out << ", int"; out << ", int";

View file

@ -384,7 +384,7 @@ namespace arith {
obj_map<expr, expr*> m_predicate2term; obj_map<expr, expr*> m_predicate2term;
obj_map<expr, bound_info> m_term2bound_info; obj_map<expr, bound_info> m_term2bound_info;
bool m_model_is_initialized{ false }; bool m_model_is_initialized = false;
unsigned small_lemma_size() const { return get_config().m_arith_small_lemma_size; } unsigned small_lemma_size() const { return get_config().m_arith_small_lemma_size; }
bool propagate_eqs() const { return get_config().m_arith_propagate_eqs && m_num_conflicts < get_config().m_arith_propagation_threshold; } bool propagate_eqs() const { return get_config().m_arith_propagate_eqs && m_num_conflicts < get_config().m_arith_propagation_threshold; }

View file

@ -278,6 +278,7 @@ namespace euf {
} }
else { else {
sat::bool_var v = si.to_bool_var(c); sat::bool_var v = si.to_bool_var(c);
s().set_external(v);
VERIFY(v != sat::null_bool_var); VERIFY(v != sat::null_bool_var);
VERIFY(s().is_external(v)); VERIFY(s().is_external(v));
SASSERT(v != sat::null_bool_var); SASSERT(v != sat::null_bool_var);

View file

@ -352,6 +352,7 @@ namespace euf {
sat::literal attach_lit(sat::literal lit, expr* e); sat::literal attach_lit(sat::literal lit, expr* e);
void unhandled_function(func_decl* f); void unhandled_function(func_decl* f);
th_rewriter& get_rewriter() { return m_rewriter; } th_rewriter& get_rewriter() { return m_rewriter; }
void rewrite(expr_ref& e) { m_rewriter(e); }
bool is_shared(euf::enode* n) const; bool is_shared(euf::enode* n) const;
// relevancy // relevancy

View file

@ -213,6 +213,7 @@ namespace q {
sat::literal qlit = ctx.expr2literal(q); sat::literal qlit = ctx.expr2literal(q);
if (is_exists(q)) if (is_exists(q))
qlit.neg(); qlit.neg();
ctx.rewrite(proj);
TRACE("q", tout << "project: " << proj << "\n";); TRACE("q", tout << "project: " << proj << "\n";);
++m_stats.m_num_instantiations; ++m_stats.m_num_instantiations;
unsigned generation = ctx.get_max_generation(proj); unsigned generation = ctx.get_max_generation(proj);