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

u256, separate viable_set

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-07-04 23:47:12 -07:00
parent aeec3bb6df
commit 04ce8ca5ef
18 changed files with 374 additions and 167 deletions

View file

@ -42,7 +42,6 @@ namespace polysat {
friend class constraint;
bool_var_manager& m_bvars;
// poly_dep_manager& m_dm;
// Association to boolean variables
ptr_vector<constraint> m_bv2constraint;
@ -135,6 +134,9 @@ namespace polysat {
m_manager->m_bvars.del_var(m_bvar);
}
virtual unsigned hash() const = 0;
virtual bool operator==(constraint const& other) const = 0;
bool is_eq() const { return m_kind == ckind_t::eq_t; }
bool is_ule() const { return m_kind == ckind_t::ule_t; }
ckind_t kind() const { return m_kind; }
@ -360,6 +362,7 @@ namespace polysat {
else
SASSERT_EQ(c->blit(), lit);
}
// NSB review: assumes life-time of c extends use in tmp_assign.
tmp_assign(constraint_ref const& c, sat::literal lit): tmp_assign(c.get(), lit) {}
void revert() {
if (m_should_unassign) {