3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-24 03:57:51 +00:00

revamp ac plugin and plugin propagation

This commit is contained in:
Nikolaj Bjorner 2025-07-21 07:35:06 -07:00
parent b983524afc
commit dbcbc6c3ac
14 changed files with 630 additions and 215 deletions

View file

@ -572,7 +572,7 @@ namespace arith {
}
void solver::new_diseq_eh(euf::th_eq const& e) {
TRACE(artih, tout << mk_bounded_pp(e.eq(), m) << "\n");
TRACE(artih, tout << mk_bounded_pp(e.eq()->get_expr(), m) << "\n");
ensure_column(e.v1());
ensure_column(e.v2());
m_delayed_eqs.push_back(std::make_pair(e, false));

View file

@ -1147,7 +1147,7 @@ namespace arith {
new_eq_eh(e);
else if (is_eq(e.v1(), e.v2())) {
mk_diseq_axiom(e.v1(), e.v2());
TRACE(arith, tout << mk_bounded_pp(e.eq(), m) << " " << use_nra_model() << "\n");
TRACE(arith, tout << mk_bounded_pp(e.eq()->get_expr(), m) << " " << use_nra_model() << "\n");
found_diseq = true;
break;
}

View file

@ -280,7 +280,7 @@ namespace bv {
undef_idx--;
sat::literal consequent = m_bits[v1][undef_idx];
sat::literal b = m_bits[v2][undef_idx];
sat::literal antecedent = ~expr2literal(ne.eq());
sat::literal antecedent = ~expr2literal(ne.eq()->get_expr());
SASSERT(s().value(antecedent) == l_true);
SASSERT(s().value(consequent) == l_undef);
SASSERT(s().value(b) != l_undef);