3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 20:05:51 +00:00

reorganize variable tracking for lemmas

this is going to break a bunch
This commit is contained in:
Nikolaj Bjorner 2021-09-12 18:05:29 +02:00
parent deeb6c7784
commit f5fd295e01
9 changed files with 191 additions and 136 deletions

View file

@ -121,6 +121,8 @@ namespace polysat {
ckind_t m_kind;
unsigned_vector m_vars;
bool m_is_external = false;
bool m_is_marked = false;
bool m_is_bool_propagated = false;
/** The boolean variable associated to this constraint, if any.
* If this is not null_bool_var, then the constraint corresponds to a literal on the assignment stack.
* Convention: the plain constraint corresponds the positive sat::literal.
@ -169,6 +171,14 @@ namespace polysat {
void set_external() { m_is_external = true; }
void unset_external() { m_is_external = false; }
bool is_external() const { return m_is_external; }
void set_mark() { m_is_marked = true; }
void unset_mark() { m_is_marked = false; }
bool is_marked() const { return m_is_marked; }
void set_bool_propagated() { m_is_bool_propagated = true; }
void unset_bool_propagated() { m_is_bool_propagated = false; }
bool is_bool_propagated() { return m_is_bool_propagated; }
};
inline std::ostream& operator<<(std::ostream& out, constraint const& c) { return c.display(out); }