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

admit inequalities as premises

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-09-09 17:06:32 +02:00
parent 697723d53b
commit cfe4b30419
3 changed files with 6 additions and 1 deletions

View file

@ -49,7 +49,7 @@ namespace polysat {
void push(sat::literal lit);
void push(signed_constraint c);
void push(inequality const& i) {
NOT_IMPLEMENTED_YET();
push(i.as_signed_constraint());
}
using const_iterator = decltype(m_literals)::const_iterator;

View file

@ -215,6 +215,10 @@ namespace polysat {
return ult(lvl, a + shift, b + shift);
}
signed_constraint inequality::as_signed_constraint() const {
return signed_constraint(const_cast<constraint*>(src), !is_strict);
}
eq_constraint& constraint::to_eq() {
return *dynamic_cast<eq_constraint*>(this);
}

View file

@ -102,6 +102,7 @@ namespace polysat {
constraint const* src; // TODO: should be signed_constraint now
inequality(pdd const & lhs, pdd const & rhs, bool is_strict, constraint const* src):
lhs(lhs), rhs(rhs), is_strict(is_strict), src(src) {}
signed_constraint as_signed_constraint() const;
};