Skip to content

Commit

Permalink
cast, updated nlexplain
Browse files Browse the repository at this point in the history
  • Loading branch information
NikolajBjorner committed Mar 21, 2024
1 parent 730f9ad commit 70d2263
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/nlsat/nlsat_explain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@ namespace nlsat {
}

};

void add_zero_assumption(polynomial_ref& p) {
// If p is of the form p1^n1 * ... * pk^nk,
// then only the factors that are zero in the current interpretation needed to be considered.
Expand All @@ -300,7 +301,7 @@ namespace nlsat {
}
}
}

if (!is_linear) {
scoped_anum_vector& roots = m_roots_tmp;
roots.reset();
Expand All @@ -312,6 +313,7 @@ namespace nlsat {
int s = m_am.compare(x_val, roots[i]);
if (s != 0)
continue;
TRACE("nlsat_explain", tout << "adding (zero assumption) root " << "\n");
add_root_literal(atom::ROOT_EQ, x, i + 1, p);
return;
}
Expand All @@ -321,12 +323,11 @@ namespace nlsat {
}
}
SASSERT(!m_zero_fs.empty()); // one of the factors must be zero in the current interpretation, since p is zero in it.

literal l = m_solver.mk_ineq_literal(atom::EQ, m_zero_fs.size(), m_zero_fs.data(), m_is_even.data());
l.neg();
TRACE("nlsat_explain", tout << "adding (zero assumption) literal:\n"; display(tout, l); tout << "\n";);
add_literal(l);

}

void add_simple_assumption(atom::kind k, poly * p, bool sign = false) {
Expand Down

0 comments on commit 70d2263

Please sign in to comment.