3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-31 08:23:17 +00:00

fix model generation for tc/po

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-04-11 11:39:27 -07:00
parent 551d72b294
commit 6fee9b90cb
13 changed files with 117 additions and 177 deletions

View file

@ -170,7 +170,11 @@ struct model::top_sort : public ::top_sort<func_decl> {
top_sort(ast_manager& m):
m_rewrite(m)
{}
{
params_ref p;
p.set_bool("elim_ite", false);
m_rewrite.updt_params(p);
}
void add_occurs(func_decl* f) {
m_occur_count.insert(f, occur_count(f) + 1);
@ -428,7 +432,12 @@ expr_ref model::cleanup_expr(top_sort& ts, expr* e, unsigned current_partition)
}
#endif
else {
new_t = ts.m_rewrite.mk_app(f, args.size(), args.c_ptr());
if (m.is_ite(f)) {
new_t = m.mk_app(f, args.size(), args.c_ptr());
}
else {
new_t = ts.m_rewrite.mk_app(f, args.size(), args.c_ptr());
}
}
if (t != new_t.get()) trail.push_back(new_t);
@ -443,7 +452,7 @@ expr_ref model::cleanup_expr(top_sort& ts, expr* e, unsigned current_partition)
break;
}
}
ts.m_rewrite(cache[e], new_t);
return new_t;
}