3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-27 00:18:45 +00:00

fix at-most-1 constraint compiler bug

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-10-22 18:50:16 -07:00
parent bb6d826908
commit 23b9d3ef55
17 changed files with 369 additions and 62 deletions

View file

@ -175,6 +175,8 @@ namespace opt {
unsigned add_objective(app* t, bool is_max);
void add_hard_constraint(expr* f);
void get_hard_constraints(expr_ref_vector& hard);
expr_ref get_objective(unsigned i);
virtual void push();
virtual void pop(unsigned n);
@ -208,7 +210,7 @@ namespace opt {
std::string to_string() const;
virtual unsigned num_objectives() { return m_objectives.size(); }
virtual unsigned num_objectives() { return m_scoped_state.m_objectives.size(); }
virtual expr_ref mk_gt(unsigned i, model_ref& model);
virtual expr_ref mk_ge(unsigned i, model_ref& model);
virtual expr_ref mk_le(unsigned i, model_ref& model);
@ -284,6 +286,9 @@ namespace opt {
void display_objective(std::ostream& out, objective const& obj) const;
void display_bounds(std::ostream& out, bounds_t const& b) const;
std::string to_string(expr_ref_vector const& hard, vector<objective> const& objectives) const;
std::string to_string_internal() const;
void validate_lex();