Skip to content

Commit

Permalink
fix #4104
Browse files Browse the repository at this point in the history
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
  • Loading branch information
NikolajBjorner committed Apr 27, 2020
1 parent d37ebb8 commit fc1321f
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions src/qe/qe.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1406,6 +1406,21 @@ namespace qe {
m_conjs.add_plugin(p);
}

bool has_uninterpreted(expr* _e) {
expr_ref e(_e, m);
arith_util au(m);
func_decl_ref f_out(m);
for (expr* arg : subterms(e)) {
if (!is_app(arg)) continue;
app* a = to_app(arg);
func_decl* f = a->get_decl();
if (m.is_considered_uninterpreted(f))
return true;
if (au.is_considered_uninterpreted(f, a->get_num_args(), a->get_args(), f_out))
return true;
}
return false;
}

void check(unsigned num_vars, app* const* vars,
expr* assumption, expr_ref& fml, bool get_first,
Expand Down Expand Up @@ -1445,6 +1460,8 @@ namespace qe {
if (assumption) m_solver.assert_expr(assumption);
bool is_sat = false;
lbool res = l_true;
if (has_uninterpreted(m_fml))
res = l_undef;
while (res == l_true) {
res = m_solver.check();
if (res == l_true) {
Expand Down

0 comments on commit fc1321f

Please sign in to comment.