diff --git a/src/math/lp/factorization.h b/src/math/lp/factorization.h index f566307b1..1606020a9 100644 --- a/src/math/lp/factorization.h +++ b/src/math/lp/factorization.h @@ -54,7 +54,7 @@ public: class factorization { - svector m_factors; + svector m_factors; const monic* m_mon; public: factorization(const monic* m): m_mon(m) { @@ -63,18 +63,14 @@ public: m_factors.push_back(factor(j, factor_type::VAR)); } } - bool is_mon() const { - return m_mon != nullptr; - } + bool is_mon() const { return m_mon != nullptr; } bool is_empty() const { return m_factors.empty(); } const factor& operator[](unsigned k) const { return m_factors[k]; } factor& operator[](unsigned k) { return m_factors[k]; } size_t size() const { return m_factors.size(); } const factor* begin() const { return m_factors.begin(); } const factor* end() const { return m_factors.end(); } - void push_back(factor const& v) { - m_factors.push_back(v); - } + void push_back(factor const& v) { m_factors.push_back(v); } const monic& mon() const { return *m_mon; } void set_mon(const monic* m) { m_mon = m; } diff --git a/src/math/lp/monic.h b/src/math/lp/monic.h index 9eba04d5b..f22b7c0c1 100644 --- a/src/math/lp/monic.h +++ b/src/math/lp/monic.h @@ -36,8 +36,11 @@ public: unsigned size() const { return m_vs.size(); } bool sign() const { return m_sign; } const svector& vars() const { return m_vs; } - svector& vars() { return m_vs; } bool empty() const { return m_vs.empty(); } + +protected: + svector& vars1() { return m_vs; } + }; // support the congruence @@ -53,7 +56,7 @@ public: } monic(bool sign, lpvar v, const svector &vs, unsigned idx): mon_eq(sign, v, vs), m_rsign(false), m_visited(0) { - std::sort(vars().begin(), vars().end()); + std::sort(vars1().begin(), vars1().end()); } unsigned visited() const { return m_visited; } diff --git a/src/math/lp/nla_common.h b/src/math/lp/nla_common.h index 1e3a0db7c..1f992e749 100644 --- a/src/math/lp/nla_common.h +++ b/src/math/lp/nla_common.h @@ -57,7 +57,6 @@ struct common { template rational val(T const& t) const; rational val(lpvar) const; - rational rval(const monic&) const; template lpvar var(T const& t) const; bool done() const; template void explain(const T&); diff --git a/src/math/lp/nla_core.cpp b/src/math/lp/nla_core.cpp index 31d00923c..5b7a6cd02 100644 --- a/src/math/lp/nla_core.cpp +++ b/src/math/lp/nla_core.cpp @@ -87,7 +87,6 @@ svector core::sorted_rvars(const factor& f) const { svector r; r.push_back(map_to_root(f.var())); return r; } - TRACE("nla_solver", tout << "nv";); return m_emons[f.var()].rvars(); } @@ -799,7 +798,7 @@ void core::explain(const factorization& f, lp::explanation& exp) { } } -bool core:: has_zero_factor(const factorization& factorization) const { +bool core::has_zero_factor(const factorization& factorization) const { for (factor f : factorization) { if (val(f).is_zero()) return true; diff --git a/src/smt/theory_lra.cpp b/src/smt/theory_lra.cpp index 508fa6951..e3bd9c126 100644 --- a/src/smt/theory_lra.cpp +++ b/src/smt/theory_lra.cpp @@ -2049,8 +2049,8 @@ public: set_evidence(ev.second); } } - // The call mk_bound() can set the m_infeasible_column in lar_solver - // so the explanation is safer to take before this call. + // The call mk_bound() can set the m_infeasible_column in lar_solver + // so the explanation is safer to take before this call. app_ref b = mk_bound(m_lia->get_term(), m_lia->get_offset(), !m_lia->is_upper()); if (m.has_trace_stream()) { th.log_axiom_instantiation(b); @@ -3483,6 +3483,8 @@ public: if (dump_lemmas()) { unsigned id = ctx().display_lemma_as_smt_problem(m_core.size(), m_core.c_ptr(), m_eqs.size(), m_eqs.c_ptr(), false_literal); (void)id; + std::cout << id << "\n"; + SASSERT(id != 49); } }