mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
commit
f525f43e43
155 changed files with 3188 additions and 1043 deletions
|
@ -265,6 +265,9 @@ namespace opt {
|
|||
normalize();
|
||||
internalize();
|
||||
update_solver();
|
||||
if (contains_quantifiers()) {
|
||||
warning_msg("optimization with quantified constraints is not supported");
|
||||
}
|
||||
#if 0
|
||||
if (is_qsat_opt()) {
|
||||
return run_qsat_opt();
|
||||
|
@ -372,7 +375,6 @@ namespace opt {
|
|||
if (result == l_true && committed) m_optsmt.commit_assignment(index);
|
||||
if (result == l_true && m_optsmt.is_unbounded(index, is_max) && contains_quantifiers()) {
|
||||
throw default_exception("unbounded objectives on quantified constraints is not supported");
|
||||
result = l_undef;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -1525,7 +1527,7 @@ namespace opt {
|
|||
}
|
||||
|
||||
void context::validate_model() {
|
||||
if (!gparams::get().get_bool("model_validate", false)) return;
|
||||
if (!gparams::get_ref().get_bool("model_validate", false)) return;
|
||||
expr_ref_vector fmls(m);
|
||||
get_hard_constraints(fmls);
|
||||
expr_ref tmp(m);
|
||||
|
|
|
@ -316,13 +316,13 @@ namespace opt {
|
|||
struct is_propositional_fn;
|
||||
bool is_propositional(expr* e);
|
||||
|
||||
void init_solver();
|
||||
void update_solver();
|
||||
void setup_arith_solver();
|
||||
void add_maxsmt(symbol const& id, unsigned index);
|
||||
void set_simplify(tactic *simplify);
|
||||
void set_pareto(pareto_base* p);
|
||||
void clear_state();
|
||||
void init_solver();
|
||||
void update_solver();
|
||||
void setup_arith_solver();
|
||||
void add_maxsmt(symbol const& id, unsigned index);
|
||||
void set_simplify(tactic *simplify);
|
||||
void set_pareto(pareto_base* p);
|
||||
void clear_state();
|
||||
|
||||
bool is_numeral(expr* e, rational& n) const;
|
||||
|
||||
|
|
|
@ -84,6 +84,9 @@ namespace opt {
|
|||
if (m.canceled()) {
|
||||
is_sat = l_undef;
|
||||
}
|
||||
if (is_sat == l_undef) {
|
||||
break;
|
||||
}
|
||||
if (is_sat == l_false) {
|
||||
TRACE("opt", tout << "Unsat\n";);
|
||||
break;
|
||||
|
@ -97,9 +100,6 @@ namespace opt {
|
|||
//DEBUG_CODE(verify_cores(cores););
|
||||
s().assert_expr(fml);
|
||||
}
|
||||
else {
|
||||
//DEBUG_CODE(verify_cores(cores););
|
||||
}
|
||||
update_cores(wth(), cores);
|
||||
wth().init_min_cost(m_upper - m_lower);
|
||||
trace_bounds("wmax");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue