3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-12 12:08:18 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-02-10 08:31:44 -08:00
parent feba007696
commit 83d1156a59

View file

@ -631,7 +631,12 @@ namespace qe {
ctx.set_projection_mode(m_projection_mode_param); ctx.set_projection_mode(m_projection_mode_param);
m_solvers[idx+1]->push(); m_solvers[idx+1]->push();
while (ctx.get_num_vars() > 0) { while (ctx.get_num_vars() > 0) {
VERIFY(l_true == m_solvers[idx+1]->check()); lbool r = m_solvers[idx+1]->check();
SASSERT(r != l_false);
if (r == l_undef) {
checkpoint();
throw tactic_exception("inconclusive solver result");
}
ctx.project_var(ctx.get_num_vars()-1); ctx.project_var(ctx.get_num_vars()-1);
} }
m_solvers[idx+1]->pop(1); m_solvers[idx+1]->pop(1);
@ -648,8 +653,8 @@ namespace qe {
m_Ms[idx] = tmp; m_Ms[idx] = tmp;
m_solvers[idx]->assert_expr(not_fml); m_solvers[idx]->assert_expr(not_fml);
TRACE("qe", TRACE("qe",
tout << mk_pp(fml, m) << "\n--->\n"; tout << fml << "\n--->\n";
tout << mk_pp(tmp, m) << "\n";); tout << tmp << "\n";);
} }
void checkpoint() { void checkpoint() {