3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-13 12:28:44 +00:00

simplify body

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2012-10-26 14:32:19 -07:00
parent 5b181156b2
commit 09f37e49b0

View file

@ -186,30 +186,29 @@ void horn_subsume_model_converter::operator()(model_ref& mr) {
TRACE("dl_mc", tout << "eval: " << h->get_name() << "\n" << mk_pp(body, m) << "\n";);
expr_ref tmp(body);
mr->eval(tmp, body);
m_rewrite(body);
TRACE("dl_mc", tout << "to:\n" << mk_pp(body, m) << "\n";);
if (arity == 0) {
expr* e = mr->get_const_interp(h);
if (e) {
mr->register_decl(h, m.mk_or(e, body));
}
else {
mr->register_decl(h, body);
body = m.mk_or(e, body);
}
m_rewrite(body);
mr->register_decl(h, m.mk_or(e, body));
}
else {
func_interp* f = mr->get_func_interp(h);
if (f) {
expr* e = f->get_else();
f->set_else(m.mk_or(e, body.get()));
body = m.mk_or(e, body);
}
else {
f = alloc(func_interp, m, arity);
f->set_else(body);
mr->register_decl(h, f);
}
m_rewrite(body);
f->set_else(body);
}
}
}