mirror of
https://github.com/Z3Prover/z3
synced 2025-06-19 04:13:38 +00:00
parent
24dd047892
commit
7cb6f41d0a
2 changed files with 7 additions and 5 deletions
|
@ -65,7 +65,7 @@ namespace qe {
|
||||||
DEBUG_CODE(expr_ref val(m);
|
DEBUG_CODE(expr_ref val(m);
|
||||||
eval(lit, val);
|
eval(lit, val);
|
||||||
CTRACE("qe", !m.is_true(val), tout << mk_pp(lit, m) << " := " << val << "\n";);
|
CTRACE("qe", !m.is_true(val), tout << mk_pp(lit, m) << " := " << val << "\n";);
|
||||||
SASSERT(m.is_true(val)););
|
SASSERT(m.canceled() || m.is_true(val)););
|
||||||
|
|
||||||
TRACE("opt", tout << mk_pp(lit, m) << " " << a.is_lt(lit) << " " << a.is_gt(lit) << "\n";);
|
TRACE("opt", tout << mk_pp(lit, m) << " " << a.is_lt(lit) << " " << a.is_gt(lit) << "\n";);
|
||||||
bool is_not = m.is_not(lit, lit);
|
bool is_not = m.is_not(lit, lit);
|
||||||
|
|
|
@ -528,7 +528,7 @@ public:
|
||||||
preprocess_solve(model, vars, fmls);
|
preprocess_solve(model, vars, fmls);
|
||||||
filter_variables(model, vars, fmls, unused_fmls);
|
filter_variables(model, vars, fmls, unused_fmls);
|
||||||
project_bools(model, vars, fmls);
|
project_bools(model, vars, fmls);
|
||||||
while (progress && !vars.empty() && !fmls.empty()) {
|
while (progress && !vars.empty() && !fmls.empty() && m.limit().inc()) {
|
||||||
app_ref_vector new_vars(m);
|
app_ref_vector new_vars(m);
|
||||||
progress = false;
|
progress = false;
|
||||||
for (project_plugin * p : m_plugins) {
|
for (project_plugin * p : m_plugins) {
|
||||||
|
@ -536,7 +536,7 @@ public:
|
||||||
(*p)(model, vars, fmls);
|
(*p)(model, vars, fmls);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (!vars.empty() && !fmls.empty()) {
|
while (!vars.empty() && !fmls.empty() && m.limit().inc()) {
|
||||||
var = vars.back();
|
var = vars.back();
|
||||||
vars.pop_back();
|
vars.pop_back();
|
||||||
project_plugin* p = get_plugin(var);
|
project_plugin* p = get_plugin(var);
|
||||||
|
@ -547,7 +547,7 @@ public:
|
||||||
new_vars.push_back(var);
|
new_vars.push_back(var);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!progress && !new_vars.empty() && !fmls.empty() && force_elim) {
|
if (!progress && !new_vars.empty() && !fmls.empty() && force_elim && m.limit().inc()) {
|
||||||
var = new_vars.back();
|
var = new_vars.back();
|
||||||
new_vars.pop_back();
|
new_vars.pop_back();
|
||||||
expr_safe_replace sub(m);
|
expr_safe_replace sub(m);
|
||||||
|
@ -565,6 +565,8 @@ public:
|
||||||
}
|
}
|
||||||
progress = true;
|
progress = true;
|
||||||
}
|
}
|
||||||
|
if (!m.limit().inc())
|
||||||
|
return;
|
||||||
vars.append(new_vars);
|
vars.append(new_vars);
|
||||||
if (progress) {
|
if (progress) {
|
||||||
preprocess_solve(model, vars, fmls);
|
preprocess_solve(model, vars, fmls);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue