3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 10:25:18 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-02-06 21:43:44 -08:00
parent 02b074e28b
commit b2c265496e
3 changed files with 13 additions and 10 deletions

View file

@ -226,7 +226,6 @@ bool emonics::elists_are_consistent(std::unordered_map<unsigned_vector, std::uno
c.insert(e.var());
auto it = lists.find(m.rvars());
(void)it;
CTRACE("nla_solver_mons", it->second != c,
tout << "m = " << m << "\n";
tout << "c = " ; print_vector(c, tout); tout << "\n";

View file

@ -40,8 +40,9 @@ bool int_solver::has_inf_int() const {
int int_solver::find_inf_int_base_column() {
unsigned inf_int_count = 0;
int j = find_inf_int_boxed_base_column_with_smallest_range(inf_int_count);
if (j != -1)
if (j != -1) {
return j;
}
if (inf_int_count == 0)
return -1;
unsigned k = random() % inf_int_count;
@ -58,8 +59,9 @@ int int_solver::get_kth_inf_int(unsigned k) const {
int int_solver::find_inf_int_nbasis_column() const {
for (unsigned j : m_lar_solver->r_nbasis())
if (!column_is_int_inf(j))
if (!column_is_int_inf(j)) {
return j;
}
return -1;
}

View file

@ -1692,7 +1692,6 @@ public:
ctx().push_trail(value_trail<context, unsigned>(m_assume_eq_head));
while (m_assume_eq_head < m_assume_eq_candidates.size()) {
++m_stats.m_assume_eqs;
std::pair<theory_var, theory_var> const & p = m_assume_eq_candidates[m_assume_eq_head];
theory_var v1 = p.first;
theory_var v2 = p.second;
@ -1703,6 +1702,7 @@ public:
is_eq(v1, v2) && n1->get_root() != n2->get_root(),
tout << "assuming eq: v" << v1 << " = v" << v2 << "\n";);
if (is_eq(v1, v2) && n1->get_root() != n2->get_root() && th.assume_eq(n1, n2)) {
std::cout << v1 << " == " << v2 << "\n"; // mk_pp(n1->get_owner(), m) << " == " << mk_pp(n2->get_owner(), m) << "\n";
return true;
}
}
@ -1734,11 +1734,17 @@ public:
final_check_status st = FC_DONE;
switch (is_sat) {
case l_true:
if (delayed_assume_eqs()) {
++m_stats.m_assume_eqs;
return FC_CONTINUE;
}
if (assume_eqs()) {
++m_stats.m_assume_eqs;
return FC_CONTINUE;
}
TRACE("arith", display(tout););
switch (check_lia()) {
case l_true:
@ -1761,14 +1767,10 @@ public:
st = FC_GIVEUP;
break;
}
if (assume_eqs()) {
return FC_CONTINUE;
}
if (m_not_handled != nullptr) {
TRACE("arith", tout << "unhandled operator " << mk_pp(m_not_handled, m) << "\n";);
st = FC_GIVEUP;
}
}
return st;
case l_false:
get_infeasibility_explanation_and_set_conflict();