3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-07 19:51:22 +00:00

fix bug in PB constraint init_watch handling, adding transitive reduction, HLE, ULT,

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-12-01 08:23:55 -08:00
parent 427b5ef002
commit 018411bc58
10 changed files with 248 additions and 136 deletions

View file

@ -296,7 +296,7 @@ namespace sat {
void watch_literal(wliteral w, pb& p);
bool is_watched(literal l, constraint const& c) const;
void add_constraint(constraint* c);
bool init_watch(constraint& c, bool is_true);
bool init_watch(constraint& c);
void init_watch(bool_var v);
void clear_watch(constraint& c);
lbool add_assign(constraint& c, literal l);
@ -320,7 +320,7 @@ namespace sat {
// cardinality
bool init_watch(card& c, bool is_true);
bool init_watch(card& c);
lbool add_assign(card& c, literal lit);
void clear_watch(card& c);
void reset_coeffs();
@ -334,7 +334,7 @@ namespace sat {
// xor specific functionality
void clear_watch(xor& x);
bool init_watch(xor& x, bool is_true);
bool init_watch(xor& x);
bool parity(xor const& x, unsigned offset) const;
lbool add_assign(xor& x, literal alit);
void get_xor_antecedents(literal l, unsigned index, justification js, literal_vector& r);
@ -345,7 +345,7 @@ namespace sat {
// pb functionality
unsigned m_a_max;
bool init_watch(pb& p, bool is_true);
bool init_watch(pb& p);
lbool add_assign(pb& p, literal alit);
void add_index(pb& p, unsigned index, literal lit);
void clear_watch(pb& p);