mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 09:35:32 +00:00
parent
8290cfadcc
commit
3eefd18c58
5 changed files with 38 additions and 46 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue