mirror of
https://github.com/Z3Prover/z3
synced 2025-06-19 04:13:38 +00:00
#3581, bail out when smt solver gives up
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
330b3cc8d6
commit
03d7a9acff
1 changed files with 7 additions and 0 deletions
|
@ -262,7 +262,13 @@ class parallel_tactic : public tactic {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool giveup() {
|
||||||
|
std::string r = get_solver().reason_unknown();
|
||||||
|
return r == "(incomplete quantifiers)";
|
||||||
|
}
|
||||||
|
|
||||||
void assert_cube(expr_ref_vector const& cube) {
|
void assert_cube(expr_ref_vector const& cube) {
|
||||||
|
IF_VERBOSE(3, verbose_stream() << "assert cube: " << cube << "\n");
|
||||||
get_solver().assert_expr(cube);
|
get_solver().assert_expr(cube);
|
||||||
m_asserted_cubes.append(cube);
|
m_asserted_cubes.append(cube);
|
||||||
}
|
}
|
||||||
|
@ -463,6 +469,7 @@ private:
|
||||||
case l_false: report_unsat(s); return;
|
case l_false: report_unsat(s); return;
|
||||||
}
|
}
|
||||||
if (canceled(s)) return;
|
if (canceled(s)) return;
|
||||||
|
if (s.giveup()) return;
|
||||||
|
|
||||||
if (memory_pressure()) {
|
if (memory_pressure()) {
|
||||||
goto simplify_again;
|
goto simplify_again;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue