3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 19:35:50 +00:00

add outline for ule constraints, change bit to var constraints

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-04-16 12:31:11 -07:00
parent 5706c7a93b
commit 9df7e9a029
12 changed files with 224 additions and 113 deletions

View file

@ -23,11 +23,11 @@ namespace polysat {
enum ckind_t { eq_t, ule_t, sle_t, bit_t };
class eq_constraint;
class bit_constraint;
class var_constraint;
class ule_constraint;
class constraint {
friend class bit_constraint;
friend class var_constraint;
friend class eq_constraint;
friend class ule_constraint;
unsigned m_level;
@ -38,6 +38,8 @@ namespace polysat {
m_level(lvl), m_kind(k), m_dep(dep) {}
public:
static constraint* eq(unsigned lvl, pdd const& p, p_dependency_ref& d);
static constraint* viable(unsigned lvl, pvar v, bdd const& b, p_dependency_ref& d);
static constraint* ule(unsigned lvl, pdd const& a, pdd const& b, p_dependency_ref& d);
virtual ~constraint() {}
bool is_eq() const { return m_kind == ckind_t::eq_t; }
bool is_ule() const { return m_kind == ckind_t::ule_t; }