3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-09-03 16:48:06 +00:00

fix model completion bug in PDR, addhoc handling of reals for arithmetic realizers

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2012-11-06 15:38:07 +02:00
parent 2c66afadd6
commit cec851440e
2 changed files with 12 additions and 3 deletions

View file

@ -1705,6 +1705,7 @@ namespace pdr {
void context::create_children(model_node& n) {
SASSERT(n.level() > 0);
bool use_model_generalizer = m_params.get_bool(":use-model-generalizer", false);
datalog::scoped_no_proof _sc(m);
pred_transformer& pt = n.pt();
model_ref M = n.get_model_ptr();
@ -1764,12 +1765,13 @@ namespace pdr {
if (!vars.empty()) {
// also fresh names for auxiliary variables in body?
expr_substitution sub(m);
expr_ref_vector refs(m);
expr_ref tmp(m);
proof_ref pr(m);
pr = m.mk_asserted(m.mk_true());
for (unsigned i = 0; i < vars.size(); ++i) {
M->eval(vars[i]->get_decl(), tmp);
VERIFY (M->eval(vars[i].get(), tmp, true));
refs.push_back(tmp);
sub.insert(vars[i].get(), tmp, pr);
}
if (!rep) rep = mk_expr_simp_replacer(m);