3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-08 12:11:23 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-03-14 11:42:26 -07:00
parent 9f6a0a0a48
commit c613ab0ba0
6 changed files with 18 additions and 13 deletions

View file

@ -195,15 +195,21 @@ public:
TRACE("pb", tout << "add bound " << mk_pp(x, m) << "\n";);
}
}
for (unsigned i = 0; i < g->size(); i++) {
for (unsigned i = 0; !g->inconsistent() && i < g->size(); i++) {
checkpoint();
expr_ref new_curr(m), tmp(m);
proof_ref new_pr(m);
proof_ref pr1(m), pr2(m), new_pr(m);
rep(g->form(i), tmp);
if (g->form(i) != tmp && m.proofs_enabled()) {
pr1 = m.mk_rewrite(g->form(i), tmp);
}
m_rw(tmp, new_curr, new_pr);
if (m.proofs_enabled() && !new_pr) {
new_pr = m.mk_rewrite(g->form(i), new_curr);
if (m.proofs_enabled() && tmp != new_curr) {
pr2 = m.mk_rewrite(tmp, new_curr);
}
if (m.proofs_enabled()) {
new_pr = m.mk_transitivity(pr1, pr2);
new_pr = m.mk_modus_ponens(g->pr(i), new_pr);
}
// IF_VERBOSE(0, verbose_stream() << mk_pp(g->form(i), m) << "\n--->\n" << new_curr << "\n";);