3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-07 06:46:04 +00:00

revert the change

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2025-10-28 19:00:46 -07:00
parent 51f6dfeb83
commit 54257b6629
62 changed files with 120 additions and 765 deletions

View file

@ -389,7 +389,6 @@ namespace nlarith {
};
expr* mk_abs(expr* e) {
//non-deterministic order no change: too complex
return m().mk_ite(mk_lt(e), mk_uminus(e), e);
}
@ -406,7 +405,6 @@ namespace nlarith {
}
else {
expr* half = A.mk_numeral(rational(1,2), false);
//non-deterministic order no change: too complex
result = A.mk_div(mk_add(s.m_a, mk_mul(num(s.m_b), A.mk_power(mk_abs(s.m_c), half))), s.m_d);
}
return result;
@ -441,13 +439,10 @@ namespace nlarith {
expr* result = to_expr(s);
if (is_strict(cmp)) {
if (p.m_a == z()) {
//non-deterministic order no change: too complex
//non-deterministic order no change: too complex
result = mk_add(result, mk_mul(mk_epsilon(), m().mk_ite(mk_lt(p.m_b),num(1),num(-1))));
}
else {
if (s.m_b > 0) {
//non-deterministic order no change: too complex
result = mk_add(result, mk_mul(num(-1),mk_epsilon()));
}
else {
@ -486,7 +481,6 @@ namespace nlarith {
}
app* sq1(expr * e) {
//non-deterministic order no change: too complex
return mk_add(num(1), sq(e));
}
@ -597,13 +591,7 @@ namespace nlarith {
app_ref t1(m()), a2(m()), d(m());
expr_ref cond(m()), t2(m()), branch(m());
expr_ref_vector es(m()), subst(m());
//non-deterministic order change start
{
auto mk_mul_1 = mk_mul(b,b);
auto mk_mul_2 = mk_mul(num(4), a, c);
d = mk_sub(mk_mul_1, mk_mul_2);
}
//non-deterministic order change end
d = mk_sub(mk_mul(b,b), mk_mul(num(4), a, c));
a2 = mk_mul(a, num(2));
TRACE(nlarith,
@ -1066,23 +1054,9 @@ namespace nlarith {
r = I.mk_lt(ad);
}
else {
//non-deterministic order change start
{
auto mk_mul_1 = I.mk_mul(a,a);
auto mk_mul_2 = I.mk_mul(b,b,c);
aabbc = I.mk_sub(mk_mul_1, mk_mul_2);
}
//non-deterministic order change end
//non-deterministic order no change: too complex
//non-deterministic order change start
{
auto mk_and_1 = I.mk_and(I.mk_lt(ad), I.mk_gt(aabbc));
r = I.mk_or(mk_and_1,
//non-deterministic order no change: too complex
//non-deterministic order no change: too complex
aabbc = I.mk_sub(I.mk_mul(a,a), I.mk_mul(b,b,c));
r = I.mk_or(I.mk_and(I.mk_lt(ad), I.mk_gt(aabbc)),
I.mk_and(I.mk_le(bd), I.mk_or(I.mk_lt(ad), I.mk_lt(aabbc))));
}
//non-deterministic order change end
}
}
@ -1097,20 +1071,8 @@ namespace nlarith {
r = I.mk_eq(a);
}
else {
//non-deterministic order change start
{
auto mk_mul_1 = I.mk_mul(a, a);
auto mk_mul_2 = I.mk_mul(b, b, c);
aabbc = I.mk_sub(mk_mul_1, mk_mul_2);
}
//non-deterministic order change end
//non-deterministic order change start
{
auto mk_le_1 = I.mk_le(I.mk_mul(a, b));
auto mk_eq_2 = I.mk_eq(aabbc);
r = I.mk_and(mk_le_1, mk_eq_2);
}
//non-deterministic order change end
aabbc = I.mk_sub(I.mk_mul(a, a), I.mk_mul(b, b, c));
r = I.mk_and(I.mk_le(I.mk_mul(a, b)), I.mk_eq(aabbc));
}
}
@ -1129,22 +1091,9 @@ namespace nlarith {
r = I.mk_le(ad);
}
else {
//non-deterministic order change start
{
auto mk_mul_1 = I.mk_mul(a, a);
auto mk_mul_2 = I.mk_mul(b, b, c);
aabbc = I.mk_sub(mk_mul_1, mk_mul_2);
}
//non-deterministic order change end
//non-deterministic order no change: too complex
//non-deterministic order change start
{
auto mk_and_1 = I.mk_and(I.mk_le(ad), I.mk_ge(aabbc));
r = I.mk_or(mk_and_1,
//non-deterministic order no change: too complex
aabbc = I.mk_sub(I.mk_mul(a, a), I.mk_mul(b, b, c));
r = I.mk_or(I.mk_and(I.mk_le(ad), I.mk_ge(aabbc)),
I.mk_and(I.mk_le(bd), I.mk_le(aabbc)));
}
//non-deterministic order change end
}
}
};
@ -1254,7 +1203,6 @@ namespace nlarith {
return e;
}
else {
//non-deterministic order no change: too complex
return I.mk_or(e, I.mk_and(I.mk_eq(t), mk_lt(p, i)));
}
}
@ -1285,7 +1233,6 @@ namespace nlarith {
return e;
}
else {
//non-deterministic order no change: too complex
return I.mk_or(e, I.mk_and(I.mk_eq(t), mk_lt(p, i)));
}
}
@ -1364,15 +1311,8 @@ namespace nlarith {
// =
// (d*dr*p[i] + a*ar + b*br*c + (a*br + ar*b)*sqrt(c))/d*dr
//
//non-deterministic order no change: too complex
app_ref tmp1(mk_add(mk_mul(d, dr, p[i]), mk_mul(a, ar), mk_mul(b, br, c)), m());
//non-deterministic order change start
{
auto mk_mul_1 = mk_mul(a, br);
auto mk_mul_2 = mk_mul(ar, b);
br = mk_add(mk_mul_1, mk_mul_2);
}
//non-deterministic order change end
br = mk_add(mk_mul(a, br), mk_mul(ar, b));
dr = mk_mul(d, dr);
ar = tmp1;
}