mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 08:35:31 +00:00
simplify overflow check up front
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
6a1f173e03
commit
111dee9143
1 changed files with 5 additions and 1 deletions
|
@ -33,7 +33,11 @@ namespace polysat {
|
|||
return is_positive ? sc : ~sc;
|
||||
}
|
||||
|
||||
signed_constraint constraints::umul_ovfl(pdd const& p, pdd const& q) {
|
||||
signed_constraint constraints::umul_ovfl(pdd const& p, pdd const& q) {
|
||||
if (p == q) {
|
||||
unsigned N = p.manager().power_of_2();
|
||||
return ule(rational::power_of_two(N - 1), p);
|
||||
}
|
||||
auto* cnstr = alloc(umul_ovfl_constraint, p, q);
|
||||
c.trail().push(new_obj_trail(cnstr));
|
||||
return signed_constraint(ckind_t::umul_ovfl_t, cnstr);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue