3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-04-02 09:59:16 -07:00
parent 8290cfadcc
commit 3eefd18c58
5 changed files with 38 additions and 46 deletions

View file

@ -18,6 +18,7 @@ Revision History:
--*/
#include "ast/ast_ll_pp.h"
#include "ast/ast_smt2_pp.h"
#include "ast/ast_pp.h"
#include "ast/for_each_expr.h"
#include "ast/well_sorted.h"
#include "ast/display_dimacs.h"
@ -255,6 +256,7 @@ void goal::assert_expr(expr * f, proof * pr, expr_dependency * d) {
}
SASSERT(!m().proofs_enabled() || pr);
if (pr) {
CTRACE("goal", f != m().get_fact(pr), tout << mk_pp(f, m()) << "\n" << mk_pp(pr, m()) << "\n";);
SASSERT(f == m().get_fact(pr));
slow_process(f, pr, d);
}

View file

@ -44,11 +44,10 @@ class quasi_macros_tactic : public tactic {
macro_manager mm(m_manager);
quasi_macros qm(m_manager, mm);
bool more = true;
expr_ref_vector forms(m_manager), new_forms(m_manager);
proof_ref_vector proofs(m_manager), new_proofs(m_manager);
expr_dependency_ref_vector deps(m_manager), new_deps(m_manager);
expr_ref_vector forms(m_manager);
proof_ref_vector proofs(m_manager);
expr_dependency_ref_vector deps(m_manager);
unsigned size = g->size();
for (unsigned i = 0; i < size; i++) {
@ -60,19 +59,11 @@ class quasi_macros_tactic : public tactic {
do {
if (m().canceled())
throw tactic_exception(m().limit().get_cancel_msg());
new_forms.reset();
new_proofs.reset();
new_deps.reset();
more = qm(forms.size(), forms.c_ptr(), proofs.c_ptr(), deps.c_ptr(), new_forms, new_proofs, new_deps);
forms.swap(new_forms);
proofs.swap(new_proofs);
deps.swap(new_deps);
}
while (more);
while (qm(forms, proofs, deps));
g->reset();
for (unsigned i = 0; i < new_forms.size(); i++)
for (unsigned i = 0; i < forms.size(); i++)
g->assert_expr(forms.get(i),
produce_proofs ? proofs.get(i) : nullptr,
produce_unsat_cores ? deps.get(i, nullptr) : nullptr);