mirror of
https://github.com/Z3Prover/z3
synced 2025-10-16 20:40:27 +00:00
add hooks for multiplication overflow
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
d18a2427a4
commit
4e0604bc22
3 changed files with 72 additions and 5 deletions
|
@ -675,7 +675,6 @@ namespace polysat {
|
|||
return !out_c.empty();
|
||||
}
|
||||
|
||||
// TBD: generalize to multiple intervals similar to upper bound
|
||||
bool viable::has_lower_bound(pvar v, rational& out_lo, vector<signed_constraint>& out_c) {
|
||||
entry const* first = m_units[v];
|
||||
entry const* e = first;
|
||||
|
@ -688,7 +687,7 @@ namespace polysat {
|
|||
auto const& lo = e->interval.lo();
|
||||
auto const& hi = e->interval.hi();
|
||||
if (lo.is_val() && hi.is_val()) {
|
||||
if (out_c.empty() && (lo.val() == 0 || lo.val() > hi.val())) {
|
||||
if (out_c.empty() && hi.val() != 0 && (lo.val() == 0 || lo.val() > hi.val())) {
|
||||
out_c.push_back(e->src);
|
||||
out_lo = hi.val();
|
||||
found = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue