3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-25 23:19:32 +00:00

port improvements from ilana branch to master regarding nla

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2025-09-19 12:28:20 -07:00
parent 5d91294e90
commit 2517b5a40a
7 changed files with 73 additions and 61 deletions

View file

@ -378,7 +378,6 @@ namespace nla {
bool monomial_bounds::add_lemma() {
if (c().lra.get_status() != lp::lp_status::INFEASIBLE)
return false;
c().lp_settings().stats().m_nla_bounds_lemmas++;
lp::explanation exp;
c().lra.get_infeasibility_explanation(exp);
lemma_builder lemma(c(), "propagate fixed - infeasible lra");
@ -423,7 +422,6 @@ namespace nla {
TRACE(nla_solver, tout << "propagate fixed " << m << " = 0, fixed_to_zero = " << fixed_to_zero << "\n";);
c().lra.update_column_type_and_bound(m.var(), lp::lconstraint_kind::EQ, rational(0), dep);
c().lp_settings().stats().m_nla_bounds_propagations++;
// propagate fixed equality
auto exp = get_explanation(dep);
c().add_fixed_equality(m.var(), rational(0), exp);
@ -433,7 +431,7 @@ namespace nla {
auto* dep = explain_fixed(m, k);
TRACE(nla_solver, tout << "propagate fixed " << m << " = " << k << "\n";);
c().lra.update_column_type_and_bound(m.var(), lp::lconstraint_kind::EQ, k, dep);
c().lp_settings().stats().m_nla_bounds_propagations++;
// propagate fixed equality
auto exp = get_explanation(dep);
c().add_fixed_equality(m.var(), k, exp);
@ -450,7 +448,6 @@ namespace nla {
if (k == 1) {
lp::explanation exp = get_explanation(dep);
c().lp_settings().stats().m_nla_bounds_propagations++;
c().add_equality(m.var(), w, exp);
}
}