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:
parent
071a1447e3
commit
4a1d76cf49
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue