mirror of
https://github.com/Z3Prover/z3
synced 2025-05-04 06:15:46 +00:00
parent
9cbec3b0ca
commit
a71aa113e0
2 changed files with 35 additions and 11 deletions
|
@ -1447,21 +1447,19 @@ namespace arith {
|
|||
TRACE("arith", tout << "canceled\n";);
|
||||
return l_undef;
|
||||
}
|
||||
if (!m_nla) {
|
||||
TRACE("arith", tout << "no nla\n";);
|
||||
CTRACE("arith", !m_nla, tout << "no nla\n";);
|
||||
if (!m_nla)
|
||||
return l_true;
|
||||
}
|
||||
if (!m_nla->need_check())
|
||||
return l_true;
|
||||
|
||||
m_a1 = nullptr; m_a2 = nullptr;
|
||||
lbool r = m_nla->check(m_nla_lemma_vector);
|
||||
switch (r) {
|
||||
case l_false: {
|
||||
case l_false:
|
||||
for (const nla::lemma& l : m_nla_lemma_vector)
|
||||
false_case_of_check_nla(l);
|
||||
break;
|
||||
}
|
||||
case l_true:
|
||||
if (assume_eqs())
|
||||
return l_false;
|
||||
|
@ -1478,11 +1476,26 @@ namespace arith {
|
|||
}
|
||||
|
||||
bool solver::include_func_interp(func_decl* f) const {
|
||||
return
|
||||
a.is_div0(f) ||
|
||||
a.is_idiv0(f) ||
|
||||
a.is_power0(f) ||
|
||||
a.is_rem0(f) ||
|
||||
a.is_mod0(f);
|
||||
SASSERT(f->get_family_id() == get_id());
|
||||
switch (f->get_decl_kind()) {
|
||||
case OP_ADD:
|
||||
case OP_SUB:
|
||||
case OP_UMINUS:
|
||||
case OP_MUL:
|
||||
case OP_LE:
|
||||
case OP_LT:
|
||||
case OP_GE:
|
||||
case OP_GT:
|
||||
case OP_MOD:
|
||||
case OP_REM:
|
||||
case OP_DIV:
|
||||
case OP_POWER:
|
||||
case OP_IS_INT:
|
||||
case OP_TO_INT:
|
||||
case OP_TO_REAL:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue