3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-20 22:30:32 +00:00

track lia conflicts as cuts

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2023-07-28 17:40:56 -07:00
parent de1cf30ea8
commit 0606ca15d9
3 changed files with 18 additions and 14 deletions

View file

@ -133,7 +133,7 @@ namespace arith {
return m_arith_hint.mk(ctx);
}
arith_proof_hint const* solver::explain_conflict(sat::literal_vector const& core, euf::enode_pair_vector const& eqs) {
arith_proof_hint const* solver::explain_conflict(hint_type ty, sat::literal_vector const& core, euf::enode_pair_vector const& eqs) {
arith_proof_hint* hint = nullptr;
if (ctx.use_drat()) {
m_coeffs.reset();
@ -142,7 +142,7 @@ namespace arith {
m_coeffs.push_back(e.coeff());
}
m_arith_hint.set_type(ctx, hint_type::farkas_h);
m_arith_hint.set_type(ctx, ty);
if (m_coeffs.size() == core.size()) {
unsigned i = 0;
for (auto lit : core)
@ -206,6 +206,9 @@ namespace arith {
case hint_type::implied_eq_h:
name = "implied-eq";
break;
case hint_type::nla_h:
name = "nla";
break;
default:
name = "unknown-arithmetic";
break;