diff --git a/src/nlsat/nlsat_solver.cpp b/src/nlsat/nlsat_solver.cpp index 97cac90fc..00fc58962 100644 --- a/src/nlsat/nlsat_solver.cpp +++ b/src/nlsat/nlsat_solver.cpp @@ -2034,6 +2034,10 @@ namespace nlsat { m_assignment.reset(); } + lbool check(literal_vector& assumptions, assignment const& rvalues, polynomial_ref_vector& core) { + return l_undef; + } + lbool check(literal_vector& assumptions) { literal_vector result; unsigned sz = assumptions.size(); @@ -4104,6 +4108,10 @@ namespace nlsat { return m_imp->check(assumptions); } + lbool solver::check(literal_vector& assumptions, assignment const& rvalues, polynomial_ref_vector& core) { + return m_imp->check(assumptions, rvalues, core); + } + void solver::get_core(vector& assumptions) { return m_imp->get_core(assumptions); } diff --git a/src/nlsat/nlsat_solver.h b/src/nlsat/nlsat_solver.h index ae403fc83..0d0a0d3d4 100644 --- a/src/nlsat/nlsat_solver.h +++ b/src/nlsat/nlsat_solver.h @@ -218,6 +218,17 @@ namespace nlsat { lbool check(literal_vector& assumptions); + // check satisfiability of asserted formulas relative to assumptions. + // produce either, + // l_true - a model is availabe (rvalues can be ignored) or, + // l_false - update the list of assumptions (possibly reset it to empty), and a set of polynomials in core, + // such that the conjunction of the assumptions and the polynomials in core is unsatisfiable. + // l_undef - if the search was interrupted by a resource limit. + // We associate literals with the polynomials in the core based on their sign with respect to rvalues. + // If p(rvalues) > 0, then the literal is p <= 0, p(rvalues) < 0, then p(rvalues) >= 0, and p(rvalues) = 0, then p != 0. + // + lbool check(literal_vector& assumptions, assignment const& rvalues, polynomial_ref_vector& core); + // ----------------------- // // Model