3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 05:18:44 +00:00

#3581, bail out when smt solver gives up

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-03-30 17:19:57 -07:00
parent 330b3cc8d6
commit 03d7a9acff

View file

@ -262,7 +262,13 @@ class parallel_tactic : public tactic {
return r;
}
bool giveup() {
std::string r = get_solver().reason_unknown();
return r == "(incomplete quantifiers)";
}
void assert_cube(expr_ref_vector const& cube) {
IF_VERBOSE(3, verbose_stream() << "assert cube: " << cube << "\n");
get_solver().assert_expr(cube);
m_asserted_cubes.append(cube);
}
@ -463,6 +469,7 @@ private:
case l_false: report_unsat(s); return;
}
if (canceled(s)) return;
if (s.giveup()) return;
if (memory_pressure()) {
goto simplify_again;