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

categorize lp stats

This commit is contained in:
Nikolaj Bjorner 2025-08-29 17:05:59 -07:00
parent 06de5f422c
commit 91b4873b79
2 changed files with 34 additions and 29 deletions

View file

@ -378,6 +378,7 @@ 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");
@ -422,6 +423,7 @@ 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);
@ -431,7 +433,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);
@ -448,6 +450,7 @@ 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);
}
}