3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-01-01 00:39:52 +00:00

pass nlsat::solver to levelwise

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2025-08-14 16:24:58 -07:00
parent 9a11697167
commit 1066f3ea3b
2 changed files with 6 additions and 5 deletions

View file

@ -37,6 +37,7 @@ namespace nlsat {
unsigned s_idx = 0; // index into current sample roots on level, if applicable
unsigned level = 0;
};
solver& m_solver;
polynomial_ref_vector const& m_P;
var m_n;
assignment const& m_s;
@ -51,8 +52,8 @@ namespace nlsat {
// Since m_p_relation holds (lesser -> greater), we invert edges when populating dom: greater ▹ lesser.
std::vector<std::vector<bool>> m_prop_dom;
// max_x plays the role of n in algorith 1 of the levelwise paper.
impl(polynomial_ref_vector const& ps, var max_x, assignment const& s, pmanager& pm, anum_manager& am)
: m_P(ps), m_n(max_x), m_s(s), m_pm(pm), m_am(am) {
impl(solver& solver, polynomial_ref_vector const& ps, var max_x, assignment const& s, pmanager& pm, anum_manager& am)
: m_solver(solver), m_P(ps), m_n(max_x), m_s(s), m_pm(pm), m_am(am) {
init_relation();
}
@ -233,8 +234,8 @@ namespace nlsat {
}
};
// constructor
levelwise::levelwise(polynomial_ref_vector const& ps, var n, assignment const& s, pmanager& pm, anum_manager& am)
: m_impl(new impl(ps, n, s, pm, am)) {}
levelwise::levelwise(nlsat::solver& solver, polynomial_ref_vector const& ps, var n, assignment const& s, pmanager& pm, anum_manager& am)
: m_impl(new impl(solver, ps, n, s, pm, am)) {}
levelwise::~levelwise() { delete m_impl; }

View file

@ -34,7 +34,7 @@ namespace nlsat {
impl* m_impl;
public:
// Construct with polynomials ps, maximal variable max_x, current sample s, polynomial manager pm, and algebraic-number manager am
levelwise(polynomial_ref_vector const& ps, var max_x, assignment const& s, pmanager& pm, anum_manager& am);
levelwise(nlsat::solver& solver, polynomial_ref_vector const& ps, var max_x, assignment const& s, pmanager& pm, anum_manager& am);
~levelwise();
levelwise(levelwise const&) = delete;