Skip to content

Commit 37904b9

Browse files
committed
fix the parameter evaluation order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
1 parent cda0a92 commit 37904b9

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

‎src/ast/rewriter/bool_rewriter.cpp‎

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -781,9 +781,18 @@ br_status bool_rewriter::mk_eq_core(expr * lhs, expr * rhs, expr_ref & result) {
781781
m().is_value(t1) && m().is_value(e1) && m().is_value(t2) && m().is_value(e2)) {
782782
expr_ref_vector args(m());
783783
args.push_back(m().mk_or(c1, c2, m().mk_eq(e1, e2)));
784-
args.push_back(m().mk_or(m().mk_not(c1), m().mk_not(c2), m().mk_eq(t1, t2)));
785-
args.push_back(m().mk_or(m().mk_not(c1), c2, m().mk_eq(t1, e2)));
786-
args.push_back(m().mk_or(c1, m().mk_not(c2), m().mk_eq(e1, t2)));
784+
{
785+
auto a = m().mk_not(c1); auto b = m().mk_not(c2);
786+
args.push_back(m().mk_or(a, b, m().mk_eq(t1, t2)));
787+
}
788+
{
789+
auto a = m().mk_not(c1);
790+
args.push_back(m().mk_or(a, c2, m().mk_eq(t1, e2)));
791+
}
792+
{
793+
auto a = m().mk_not(c2);
794+
args.push_back(m().mk_or(c1, a, m().mk_eq(e1, t2)));
795+
}
787796
result = m().mk_and(args);
788797
return BR_REWRITE_FULL;
789798
}

0 commit comments

Comments
 (0)