mirror of
https://github.com/Z3Prover/z3
synced 2025-11-19 12:20:49 +00:00
moving remaining qsat functionality over
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
296addf246
commit
20bbdfe31a
23 changed files with 3876 additions and 225 deletions
|
|
@ -28,6 +28,9 @@ Revision History:
|
|||
|
||||
namespace nlsat {
|
||||
|
||||
class evaluator;
|
||||
class explain;
|
||||
|
||||
class solver {
|
||||
struct imp;
|
||||
imp * m_imp;
|
||||
|
|
@ -63,7 +66,9 @@ namespace nlsat {
|
|||
nonlinear arithmetic atom.
|
||||
*/
|
||||
bool_var mk_bool_var();
|
||||
|
||||
|
||||
literal mk_true();
|
||||
|
||||
/**
|
||||
\brief Create a real/integer variable.
|
||||
*/
|
||||
|
|
@ -121,6 +126,48 @@ namespace nlsat {
|
|||
*/
|
||||
atom * bool_var2atom(bool_var b);
|
||||
|
||||
/**
|
||||
\brief extract free variables from literal.
|
||||
*/
|
||||
void vars(literal l, var_vector& vs);
|
||||
|
||||
/**
|
||||
\brief provide access to atoms. Used by explain.
|
||||
*/
|
||||
atom_vector const& get_atoms();
|
||||
|
||||
/**
|
||||
\brief Access var -> asserted equality.
|
||||
*/
|
||||
|
||||
atom_vector const& get_var2eq();
|
||||
|
||||
/**
|
||||
\brief expose evaluator.
|
||||
*/
|
||||
|
||||
evaluator& get_evaluator();
|
||||
|
||||
/**
|
||||
\brief Access explanation module.
|
||||
*/
|
||||
explain& get_explain();
|
||||
|
||||
/**
|
||||
\brief Access assignments to variables.
|
||||
*/
|
||||
void get_rvalues(assignment& as);
|
||||
void set_rvalues(assignment const& as);
|
||||
|
||||
void get_bvalues(svector<lbool>& vs);
|
||||
void set_bvalues(svector<lbool> const& vs);
|
||||
|
||||
/**
|
||||
\brief reorder variables.
|
||||
*/
|
||||
void reorder(unsigned sz, var const* permutation);
|
||||
void restore_order();
|
||||
|
||||
/**
|
||||
\brief Return number of integer/real variables
|
||||
*/
|
||||
|
|
@ -135,6 +182,8 @@ namespace nlsat {
|
|||
// -----------------------
|
||||
lbool check();
|
||||
|
||||
lbool check(literal_vector& assumptions);
|
||||
|
||||
// -----------------------
|
||||
//
|
||||
// Model
|
||||
|
|
@ -154,6 +203,7 @@ namespace nlsat {
|
|||
void updt_params(params_ref const & p);
|
||||
static void collect_param_descrs(param_descrs & d);
|
||||
|
||||
void reset();
|
||||
void collect_statistics(statistics & st);
|
||||
void reset_statistics();
|
||||
void display_status(std::ostream & out) const;
|
||||
|
|
@ -174,6 +224,10 @@ namespace nlsat {
|
|||
*/
|
||||
void display(std::ostream & out, literal l) const;
|
||||
|
||||
void display(std::ostream & out, unsigned n, literal const* ls) const;
|
||||
|
||||
void display(std::ostream & out, atom const& a) const;
|
||||
|
||||
/**
|
||||
\brief Display variable
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue