mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 16:45:31 +00:00
populate proofs in opt specific tactics
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
2f9e9e1a3c
commit
061ac0f23e
4 changed files with 19 additions and 6 deletions
|
@ -3147,7 +3147,7 @@ namespace Duality {
|
|||
}
|
||||
|
||||
if(node->Annotation.IsEmpty() || eq(node->Annotation.Formula,prev_annot) || (repeated_case_count > 0 && !axioms_added) || (repeated_case_count >= 10)){
|
||||
looks_bad:
|
||||
// looks_bad:
|
||||
if(!axioms_added){
|
||||
// add the axioms in the off chance they are useful
|
||||
const std::vector<expr> &theory = ls->get_axioms();
|
||||
|
|
|
@ -487,11 +487,17 @@ public:
|
|||
|
||||
unsigned size = g->size();
|
||||
expr_ref new_f1(m), new_f2(m);
|
||||
proof_ref new_pr1(m), new_pr2(m);
|
||||
for (unsigned idx = 0; idx < size; idx++) {
|
||||
m_rw1(g->form(idx), new_f1);
|
||||
m_rw1(g->form(idx), new_f1, new_pr1);
|
||||
TRACE("card2bv", tout << "Rewriting " << mk_ismt2_pp(new_f1.get(), m) << std::endl;);
|
||||
m_rw2.rewrite(new_f1, new_f2);
|
||||
g->update(idx, new_f2, g->pr(idx), g->dep(idx));
|
||||
if (m.proofs_enabled()) {
|
||||
new_pr1 = m.mk_modus_ponens(g->pr(idx), new_pr1);
|
||||
new_pr2 = m.mk_rewrite(new_f1, new_f2);
|
||||
new_pr1 = m.mk_modus_ponens(new_pr1, new_pr2);
|
||||
}
|
||||
g->update(idx, new_f2, new_pr1, g->dep(idx));
|
||||
}
|
||||
for (unsigned i = 0; i < m_rw2.lemmas().size(); ++i) {
|
||||
g->assert_expr(m_rw2.lemmas()[i].get());
|
||||
|
|
|
@ -89,7 +89,11 @@ public:
|
|||
|
||||
for (unsigned i = 0; i < g->size(); i++) {
|
||||
expr * curr = g->form(i);
|
||||
sub(curr, new_curr);
|
||||
sub(curr, new_curr);
|
||||
if (m.proofs_enabled()) {
|
||||
new_pr = m.mk_rewrite(curr, new_curr);
|
||||
new_pr = m.mk_modus_ponens(g->pr(i), new_pr);
|
||||
}
|
||||
g->update(i, new_curr, new_pr, g->dep(i));
|
||||
}
|
||||
g->inc_depth();
|
||||
|
|
|
@ -293,9 +293,12 @@ class lia2pb_tactic : public tactic {
|
|||
m_rw(curr, new_curr, new_pr);
|
||||
if (m_produce_unsat_cores) {
|
||||
dep = m.mk_join(m_rw.get_used_dependencies(), g->dep(idx));
|
||||
m_rw.reset_used_dependencies();
|
||||
m_rw.reset_used_dependencies();
|
||||
}
|
||||
g->update(idx, new_curr, 0, dep);
|
||||
if (m.proofs_enabled()) {
|
||||
new_pr = m.mk_modus_ponens(g->pr(idx), new_pr);
|
||||
}
|
||||
g->update(idx, new_curr, new_pr, dep);
|
||||
}
|
||||
g->inc_depth();
|
||||
result.push_back(g.get());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue