mirror of
https://github.com/Z3Prover/z3
synced 2025-08-24 12:07:52 +00:00
smul no overflow
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
89d6f1c191
commit
8c9835bca6
24 changed files with 376 additions and 63 deletions
|
@ -70,6 +70,22 @@ namespace polysat {
|
|||
rational const & a2, pdd const& b2, pdd const& e2,
|
||||
fi_record& fi);
|
||||
|
||||
bool get_interval_ule(signed_constraint const& c, pvar v, fi_record& fi);
|
||||
|
||||
bool get_interval_mul_ovfl(signed_constraint const& c, pvar v, fi_record& fi);
|
||||
|
||||
struct backtrack {
|
||||
bool released = false;
|
||||
vector<signed_constraint>& side_cond;
|
||||
unsigned sz;
|
||||
backtrack(vector<signed_constraint>& s):side_cond(s), sz(s.size()) {}
|
||||
~backtrack() {
|
||||
if (!released)
|
||||
side_cond.shrink(sz);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
public:
|
||||
forbidden_intervals(solver& s) :s(s) {}
|
||||
bool get_interval(signed_constraint const& c, pvar v, fi_record& fi);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue