mirror of
https://github.com/Z3Prover/z3
synced 2025-04-11 19:53:34 +00:00
set eliminated to false on literals used in clauses
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
da0aa71082
commit
427b5ef002
|
@ -96,7 +96,7 @@ namespace sat {
|
|||
// apply substitution
|
||||
for (i = 0; i < sz; i++) {
|
||||
c[i] = norm(roots, c[i]);
|
||||
VERIFY(c[i] == norm(roots, c[i]));
|
||||
VERIFY(c[i] == norm(roots, c[i]));
|
||||
VERIFY(!m_solver.was_eliminated(c[i].var()));
|
||||
}
|
||||
std::sort(c.begin(), c.end());
|
||||
|
|
|
@ -266,6 +266,7 @@ namespace sat {
|
|||
void set_external(bool_var v);
|
||||
void set_non_external(bool_var v);
|
||||
bool was_eliminated(bool_var v) const { return m_eliminated[v] != 0; }
|
||||
void set_eliminated(bool_var v, bool f) { m_eliminated[v] = f; }
|
||||
unsigned scope_lvl() const { return m_scope_lvl; }
|
||||
unsigned search_lvl() const { return m_search_lvl; }
|
||||
bool at_search_lvl() const { return m_scope_lvl == m_search_lvl; }
|
||||
|
|
|
@ -151,6 +151,7 @@ struct goal2sat::imp {
|
|||
else {
|
||||
SASSERT(v != sat::null_bool_var);
|
||||
l = sat::literal(v, sign);
|
||||
m_solver.set_eliminated(v, false);
|
||||
}
|
||||
SASSERT(l != sat::null_literal);
|
||||
if (root)
|
||||
|
|
|
@ -204,12 +204,12 @@ void solver::assert_expr(expr* f, expr* t) {
|
|||
}
|
||||
|
||||
void solver::collect_param_descrs(param_descrs & r) {
|
||||
r.insert("solver.enforce_model_conversion", CPK_BOOL, "(default: true) enforce model conversion when asserting formulas");
|
||||
r.insert("solver.enforce_model_conversion", CPK_BOOL, "(default: false) enforce model conversion when asserting formulas");
|
||||
}
|
||||
|
||||
void solver::updt_params(params_ref const & p) {
|
||||
m_params.copy(p);
|
||||
m_enforce_model_conversion = m_params.get_bool("solver.enforce_model_conversion", true);
|
||||
m_enforce_model_conversion = m_params.get_bool("solver.enforce_model_conversion", false);
|
||||
}
|
||||
|
||||
void solver::hoist_converter(model_converter_ref& mc) {
|
||||
|
|
Loading…
Reference in a new issue