3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-27 05:26:01 +00:00

elaborate on smt/drat format outline, expose euf mode as config

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-08-31 19:29:23 -07:00
parent 4d41db3028
commit ed7d969366
11 changed files with 90 additions and 21 deletions

View file

@ -1783,6 +1783,12 @@ namespace sat {
watch_literal(~lit, *c);
}
SASSERT(c->well_formed());
if (m_solver && m_solver->get_config().m_drat) {
std::function<void(std::ostream& out)> fn = [&](std::ostream& out) {
out << "c ba constraint " << *c << " 0\n";
};
m_solver->get_drat().log_adhoc(fn);
}
}
@ -2122,7 +2128,7 @@ namespace sat {
case card_t: get_antecedents(l, c.to_card(), r); break;
case pb_t: get_antecedents(l, c.to_pb(), r); break;
case xr_t: get_antecedents(l, c.to_xr(), r); break;
default: UNREACHABLE(); break;
default: UNREACHABLE(); break;
}
if (get_config().m_drat && m_solver) {
literal_vector lits;

View file

@ -26,7 +26,7 @@ namespace euf {
void solver::updt_params(params_ref const& p) {
m_config.updt_params(p);
m_drat = s().get_config().m_drat;
m_drat = m_solver && m_solver->get_config().m_drat;
}
/**
@ -98,7 +98,6 @@ namespace euf {
}
bool solver::propagate(literal l, ext_constraint_idx idx) {
force_push();
auto* ext = sat::constraint_base::to_extension(idx);
SASSERT(ext != this);
return ext->propagate(l, idx);
@ -225,7 +224,6 @@ namespace euf {
}
sat::check_result solver::check() {
force_push();
bool give_up = false;
bool cont = false;
for (auto* e : m_solvers)
@ -358,7 +356,6 @@ namespace euf {
}
void solver::pop_reinit() {
force_push();
for (auto* e : m_solvers)
e->pop_reinit();
}

View file

@ -176,7 +176,7 @@ namespace euf {
};
void updt_params(params_ref const& p);
void set_solver(sat::solver* s) override { m_solver = s; }
void set_solver(sat::solver* s) override { m_solver = s; m_drat = s->get_config().m_drat; }
void set_lookahead(sat::lookahead* s) override { m_lookahead = s; }
void init_search() override;
double get_reward(literal l, ext_constraint_idx idx, sat::literal_occs_fun& occs) const override;