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:
parent
4d41db3028
commit
ed7d969366
11 changed files with 90 additions and 21 deletions
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue