3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-27 02:45:51 +00:00

pending files

This commit is contained in:
Nikolaj Bjorner 2023-12-02 19:43:51 -08:00
parent b22daa9816
commit 1de25ed09c
3 changed files with 50 additions and 40 deletions

View file

@ -435,6 +435,9 @@ namespace euf {
}
bool solver::should_propagate() {
return m_egraph.can_propagate();
}
bool solver::unit_propagate() {
bool propagated = false;
@ -477,6 +480,7 @@ namespace euf {
SASSERT(m.is_bool(e));
size_t cnstr;
literal lit;
if (!ante) {
VERIFY(m.is_eq(e, a, b));
cnstr = eq_constraint().to_index();
@ -494,7 +498,7 @@ namespace euf {
if (val == l_undef) {
SASSERT(m.is_value(ante->get_expr()));
val = m.is_true(ante->get_expr()) ? l_true : l_false;
}
}
auto& c = lit_constraint(ante);
cnstr = c.to_index();
lit = literal(v, val == l_false);
@ -1012,8 +1016,10 @@ namespace euf {
return out << "euf conflict";
case constraint::kind_t::eq:
return out << "euf equality propagation";
case constraint::kind_t::lit:
return out << "euf literal propagation " << m_egraph.bpp(c.node()) ;
case constraint::kind_t::lit: {
euf::enode* n = c.node();
return out << "euf literal propagation " << (sat::literal(n->bool_var(), n->value() == l_false)) << " " << m_egraph.bpp(n);
}
default:
UNREACHABLE();
return out;