3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 11:55:51 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-09-02 09:59:58 -07:00
parent 000e485794
commit 68e4ed3c9c
5 changed files with 85 additions and 11 deletions

View file

@ -666,7 +666,7 @@ namespace qe {
// expr -> nlsat::solver
void hoist(expr_ref& fml) {
bool hoist(expr_ref& fml) {
expr_ref_vector paxioms(m);
ackermanize_div(fml, paxioms);
quantifier_hoister hoist(m);
@ -674,7 +674,6 @@ namespace qe {
app_ref_vector vars(m);
bool is_forall = false;
pred_abs abs(m);
expr_ref fml_a(m.mk_and(fml, mk_and(paxioms)), m);
abs.get_free_vars(fml_a, vars);
insert_set(m_free_vars, vars);
@ -752,6 +751,7 @@ namespace qe {
}
}
TRACE("qe", tout << fml << "\n";);
return true;
}
@ -836,7 +836,10 @@ namespace qe {
}
reset();
TRACE("qe", tout << fml << "\n";);
hoist(fml);
if (!hoist(fml)) {
result.push_back(in.get());
return;
}
TRACE("qe", tout << "ex: " << fml << "\n";);
lbool is_sat = check_sat();