mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 12:08:18 +00:00
Bugfixes in UFBV-related tactics.
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
This commit is contained in:
parent
6c2ef9e70c
commit
bf27090641
|
@ -80,12 +80,9 @@ class macro_finder_tactic : public tactic {
|
||||||
|
|
||||||
mf(forms.size(), forms.c_ptr(), proofs.c_ptr(), new_forms, new_proofs);
|
mf(forms.size(), forms.c_ptr(), proofs.c_ptr(), new_forms, new_proofs);
|
||||||
|
|
||||||
unsigned i = 0;
|
g->reset();
|
||||||
for (; i < g->size(); i++)
|
for (unsigned i = 0; i < new_forms.size(); i++)
|
||||||
g->update(i, new_forms.get(i), produce_proofs ? new_proofs.get(i) : 0, 0);
|
g->assert_expr(new_forms.get(i), produce_proofs ? new_proofs.get(i) : 0, 0);
|
||||||
|
|
||||||
for (; i < new_forms.size(); i++)
|
|
||||||
g->assert_expr(new_forms.get(i), new_proofs.get(i), 0);
|
|
||||||
|
|
||||||
extension_model_converter * evmc = alloc(extension_model_converter, mm.get_manager());
|
extension_model_converter * evmc = alloc(extension_model_converter, mm.get_manager());
|
||||||
unsigned num = mm.get_num_macros();
|
unsigned num = mm.get_num_macros();
|
||||||
|
|
|
@ -91,12 +91,9 @@ class quasi_macros_tactic : public tactic {
|
||||||
proofs.swap(new_proofs);
|
proofs.swap(new_proofs);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned i = 0;
|
g->reset();
|
||||||
for (; i < g->size(); i++)
|
for (unsigned i = 0; i < new_forms.size(); i++)
|
||||||
g->update(i, new_forms.get(i), produce_proofs ? new_proofs.get(i) : 0, 0);
|
g->assert_expr(new_forms.get(i), produce_proofs ? new_proofs.get(i) : 0, 0);
|
||||||
|
|
||||||
for (; i < new_forms.size(); i++)
|
|
||||||
g->assert_expr(new_forms.get(i), new_proofs.get(i), 0);
|
|
||||||
|
|
||||||
extension_model_converter * evmc = alloc(extension_model_converter, mm.get_manager());
|
extension_model_converter * evmc = alloc(extension_model_converter, mm.get_manager());
|
||||||
unsigned num = mm.get_num_macros();
|
unsigned num = mm.get_num_macros();
|
||||||
|
|
|
@ -66,12 +66,9 @@ class ufbv_rewriter_tactic : public tactic {
|
||||||
|
|
||||||
dem(forms.size(), forms.c_ptr(), proofs.c_ptr(), new_forms, new_proofs);
|
dem(forms.size(), forms.c_ptr(), proofs.c_ptr(), new_forms, new_proofs);
|
||||||
|
|
||||||
unsigned i = 0;
|
g->reset();
|
||||||
for (; i < g->size(); i++)
|
for (unsigned i = 0; i < new_forms.size(); i++)
|
||||||
g->update(i, new_forms.get(i), produce_proofs ? new_proofs.get(i) : 0, g->dep(i));
|
g->assert_expr(new_forms.get(i), produce_proofs ? new_proofs.get(i) : 0, 0);
|
||||||
|
|
||||||
for (; i < new_forms.size(); i++)
|
|
||||||
g->assert_expr(new_forms.get(i), new_proofs.get(i), 0);
|
|
||||||
|
|
||||||
mc = 0; // CMW: Remark: The demodulator could potentially remove all references to a variable.
|
mc = 0; // CMW: Remark: The demodulator could potentially remove all references to a variable.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue