3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 16:45:31 +00:00

univariate solver: add_bit

This commit is contained in:
Jakob Rath 2022-08-22 15:09:11 +02:00
parent d9a63ce786
commit 058c5771b9
2 changed files with 6 additions and 2 deletions

View file

@ -144,6 +144,10 @@ namespace polysat {
add(bv->mk_ule(mk_numeral(val), x), sign, dep);
}
void add_bit(unsigned idx, bool sign, dep_t dep) override {
add(bv->mk_bit2bool(x, idx), sign, dep);
}
lbool check() override {
return s->check_sat();
}

View file

@ -63,8 +63,8 @@ namespace polysat {
void add_ugt_const(rational const& val, bool sign, dep_t dep) { add_ule_const(val, !sign, dep); }
void add_ult_const(rational const& val, bool sign, dep_t dep) { add_uge_const(val, !sign, dep); }
// TODO: assert bit; use bv->mk_bit2bool(x, idx)
// virtual void add_bit(unsigned idx, bool sign, dep_t dep);
/// Assert i-th bit of x
virtual void add_bit(unsigned idx, bool sign, dep_t dep) = 0;
virtual std::ostream& display(std::ostream& out) const = 0;
};