3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 19:35:50 +00:00

fixes in patch blocking

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2020-05-28 18:12:01 -07:00
parent 4728a1fb0c
commit e7bb8e57cb
3 changed files with 10 additions and 10 deletions

View file

@ -1287,11 +1287,11 @@ bool core::has_real(const monic& m) const {
return true;
return false;
}
bool core::patch_blocker(lpvar u, const monic& m, const lp::impq& ival) const {
// returns true if the patching is blocking
bool core::patch_is_blocked(lpvar u, const monic& m, const lp::impq& ival) const {
SASSERT(m_to_refine.contains(m.var()));
if (m_cautious_patching && !m_lar_solver.inside_bounds(u, ival))
return false;
return true; // blocking
if (var_breaks_correct_monic(u)) {
TRACE("nla_solver", tout << "u = " << u << " blocked as used in a correct monomial\n";);
return true;
@ -1306,10 +1306,10 @@ bool core::patch_blocker(lpvar u, const monic& m, const lp::impq& ival) const {
}
bool core::try_to_patch(lpvar k, const rational& v, const monic & m) {
auto blocker = [this, k, m](lpvar u, const lp::impq& v)
{ return u != k && patch_blocker(u, m, v); };
auto is_blocked = [this, k, m](lpvar u, const lp::impq& v)
{ return u != k && patch_is_blocked(u, m, v); };
auto change_report = [this](lpvar u) { update_to_refine_of_var(u); };
return m_lar_solver.try_to_patch(k, v, blocker, change_report);
return m_lar_solver.try_to_patch(k, v, is_blocked, change_report);
}
bool in_power(const svector<lpvar>& vs, unsigned l) {