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

some simplifications based on #4178

This commit is contained in:
Nikolaj Bjorner 2020-05-02 06:43:30 -07:00
parent 269522127b
commit f0d33ddddb
8 changed files with 32 additions and 9 deletions

View file

@ -1031,4 +1031,22 @@ void bool_rewriter::mk_nor(expr * arg1, expr * arg2, expr_ref & result) {
mk_not(tmp, result);
}
void bool_rewriter::mk_ge2(expr* a, expr* b, expr* c, expr_ref& r) {
if (m().is_false(a)) mk_and(b, c, r);
else if (m().is_false(b)) mk_and(a, c, r);
else if (m().is_false(c)) mk_and(a, b, r);
else if (m().is_true(a)) mk_or(b, c, r);
else if (m().is_true(b)) mk_or(a, c, r);
else if (m().is_true(c)) mk_or(a, b, r);
else {
expr_ref i1(m()), i2(m()), i3(m());
mk_and(a, b, i1);
mk_and(a, c, i2);
mk_and(b, c, i3);
mk_or(i1, i2, i3, r);
}
}
template class rewriter_tpl<bool_rewriter_cfg>;