3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 11:25:51 +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

@ -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);