3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 10:25:18 +00:00

#6418 - add best-effort for nested and/or (from ite literals)

This commit is contained in:
Nikolaj Bjorner 2022-10-23 11:03:51 -07:00
parent 071a1447e3
commit 4a1d76cf49

View file

@ -155,6 +155,35 @@ namespace mbp {
}
SASSERT(found_eq);
}
else if (m.is_and(lit) && !is_not) {
fmls.append(to_app(lit)->get_num_args(), to_app(lit)->get_args());
return true;
}
else if (m.is_or(lit) && is_not) {
for (expr* arg : *to_app(lit))
fmls.push_back(mk_not(m, arg));
return true;
}
else if (m.is_or(lit) && !is_not) {
for (expr* arg : *to_app(lit)) {
if (eval.is_true(arg)) {
fmls.push_back(arg);
return true;
}
}
TRACE("qe", tout << "Skipping " << mk_pp(lit, m) << "\n";);
return false;
}
else if (m.is_and(lit) && is_not) {
for (expr* arg : *to_app(lit)) {
if (eval.is_false(arg)) {
fmls.push_back(mk_not(m, arg));
return true;
}
}
TRACE("qe", tout << "Skipping " << mk_pp(lit, m) << "\n";);
return false;
}
else {
TRACE("qe", tout << "Skipping " << mk_pp(lit, m) << "\n";);
return false;