3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-02 13:27:01 +00:00

updates to div/mod handling in quantifier projection

note: the new code remains disabled at this point.
This commit is contained in:
Nikolaj Bjorner 2022-08-12 14:39:33 -04:00
parent d272becade
commit 550d6914b1
2 changed files with 47 additions and 16 deletions

View file

@ -225,19 +225,17 @@ namespace mbp {
rational c0 = add_def(t1, mul1, coeffs);
mbo.add_divides(coeffs, c0 - r, mul1);
}
else if (false && a.is_mod(t, t1, t2) && is_numeral(t2, mul1) && !mul1.is_zero()) {
else if (false && a.is_mod(t, t1, t2) && is_numeral(t2, mul1) && mul1 > 0) {
// v = t1 mod mul1
vars coeffs;
rational c0 = add_def(t1, mul1, coeffs);
unsigned v = mbo.add_mod(coeffs, c0, mul1);
tids.insert(t, v);
tids.insert(t, mbo.add_mod(coeffs, c0, mul1));
}
else if (false && a.is_idiv(t, t1, t2) && is_numeral(t2, mul1) && mul1 > 0) {
// v = t1 div mul1
vars coeffs;
rational c0 = add_def(t1, mul1, coeffs);
unsigned v = mbo.add_div(coeffs, c0, mul1);
tids.insert(t, v);
tids.insert(t, mbo.add_div(coeffs, c0, mul1));
}
else
insert_mul(t, mul, ts);