mirror of
https://github.com/Z3Prover/z3
synced 2025-04-08 10:25:18 +00:00
print pareto model in check-sat too
Signed-off-by: Nikolaj Bjorner <nbjorner@hotmail.com>
This commit is contained in:
parent
23a6138d81
commit
a2448be0cd
|
@ -40,6 +40,7 @@ Notes:
|
|||
#include"for_each_expr.h"
|
||||
#include"scoped_timer.h"
|
||||
#include"interpolant_cmds.h"
|
||||
#include"model_smt2_pp.h"
|
||||
|
||||
func_decls::func_decls(ast_manager & m, func_decl * f):
|
||||
m_decls(TAG(func_decl*, f, 0)) {
|
||||
|
@ -1402,6 +1403,15 @@ void cmd_context::check_sat(unsigned num_assumptions, expr * const * assumptions
|
|||
was_pareto = true;
|
||||
get_opt()->display_assignment(regular_stream());
|
||||
regular_stream() << "\n";
|
||||
if (get_opt()->print_model()) {
|
||||
model_ref mdl;
|
||||
get_opt()->get_model(mdl);
|
||||
if (mdl) {
|
||||
regular_stream() << "(model " << std::endl;
|
||||
model_smt2_pp(regular_stream(), *this, *(mdl.get()), 2);
|
||||
regular_stream() << ")" << std::endl;
|
||||
}
|
||||
}
|
||||
r = get_opt()->optimize();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -124,6 +124,7 @@ public:
|
|||
virtual void display_assignment(std::ostream& out) = 0;
|
||||
virtual bool is_pareto() = 0;
|
||||
virtual void set_logic(symbol const& s) = 0;
|
||||
virtual bool print_model() const = 0;
|
||||
};
|
||||
|
||||
class cmd_context : public progress_callback, public tactic_manager, public ast_printer_context {
|
||||
|
|
|
@ -254,6 +254,12 @@ namespace opt {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
bool context::print_model() const {
|
||||
opt_params optp(m_params);
|
||||
return optp.print_model();
|
||||
}
|
||||
|
||||
void context::get_base_model(model_ref& mdl) {
|
||||
mdl = m_model;
|
||||
}
|
||||
|
|
|
@ -180,6 +180,7 @@ namespace opt {
|
|||
virtual void cancel() { set_cancel(true); }
|
||||
virtual void set_hard_constraints(ptr_vector<expr> & hard);
|
||||
virtual lbool optimize();
|
||||
virtual bool print_model() const;
|
||||
virtual void get_model(model_ref& _m);
|
||||
virtual void set_model(model_ref& _m);
|
||||
virtual void fix_model(model_ref& _m);
|
||||
|
|
Loading…
Reference in a new issue