mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 12:08:18 +00:00
parent
fcb03aa56c
commit
ba6c23bbc5
|
@ -130,12 +130,15 @@ struct mbp_basic_tg::impl {
|
||||||
for (auto a1 : *c) {
|
for (auto a1 : *c) {
|
||||||
for (auto a2 : *c) {
|
for (auto a2 : *c) {
|
||||||
if (a1 == a2) continue;
|
if (a1 == a2) continue;
|
||||||
if (m_mdl.are_equal(a1, a2)) {
|
expr_ref e(m.mk_eq(a1, a2), m);
|
||||||
|
if (m_mdl.is_true(e)) {
|
||||||
m_tg.add_eq(a1, a2);
|
m_tg.add_eq(a1, a2);
|
||||||
eq = true;
|
eq = true;
|
||||||
break;
|
break;
|
||||||
} else
|
} else {
|
||||||
|
SASSERT(m_mdl.is_false(e));
|
||||||
m_tg.add_deq(a1, a2);
|
m_tg.add_deq(a1, a2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (eq)
|
if (eq)
|
||||||
|
|
|
@ -181,7 +181,8 @@ public:
|
||||||
std::function<bool(expr *)> non_core = [&](expr *e) {
|
std::function<bool(expr *)> non_core = [&](expr *e) {
|
||||||
if (is_app(e) && is_partial_eq(to_app(e)))
|
if (is_app(e) && is_partial_eq(to_app(e)))
|
||||||
return true;
|
return true;
|
||||||
if (m.is_ite(e) || m.is_or(e) || m.is_implies(e) || m.is_and(e) || m.is_distinct(e))
|
if (m.is_ite(e) || m.is_or(e) || m.is_implies(e) ||
|
||||||
|
m.is_distinct(e))
|
||||||
return true;
|
return true;
|
||||||
return red_vars.is_marked(e);
|
return red_vars.is_marked(e);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue