3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-24 13:18:55 +00:00

remove windowsArm64 from nightly

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2023-12-17 10:04:49 -08:00
parent d0a59f3740
commit 4867073290
6 changed files with 47 additions and 74 deletions

View file

@ -260,6 +260,9 @@ namespace arith {
if (valy >= sz || valy == 0)
return true;
unsigned k = valy.get_unsigned();
rational r = mod(valx * rational::power_of_two(k), N);
if (r == valn)
return true;
sat::literal eq = eq_internalize(n, a.mk_mod(a.mk_mul(_x, a.mk_int(rational::power_of_two(k))), a.mk_int(N)));
if (s().value(eq) == l_true)
return true;
@ -272,6 +275,9 @@ namespace arith {
if (valy >= sz || valy == 0)
return true;
unsigned k = valy.get_unsigned();
rational r = mod(div(valx, rational::power_of_two(k)), N);
if (r == valn)
return true;
sat::literal eq = eq_internalize(n, a.mk_idiv(x, a.mk_int(rational::power_of_two(k))));
if (s().value(eq) == l_true)
return true;
@ -284,6 +290,12 @@ namespace arith {
if (valy >= sz || valy == 0)
return true;
unsigned k = valy.get_unsigned();
bool signvalx = x >= N/2;
rational valxdiv2k = div(valx, rational::power_of_two(k));
if (signvalx)
valxdiv2k = mod(valxdiv2k - rational::power_of_two(sz - k), N);
if (valn == valxdiv2k)
return true;
sat::literal signx = mk_literal(a.mk_ge(x, a.mk_int(N/2)));
sat::literal eq;
expr* xdiv2k;
@ -335,9 +347,10 @@ namespace arith {
expr_ref x(a.mk_mod(_x, a.mk_int(N)), m);
expr_ref y(a.mk_mod(_y, a.mk_int(N)), m);
add_clause(mk_literal(a.mk_ge(n, a.mk_int(0))));
add_clause(mk_literal(a.mk_le(n, a.mk_int(N - 1))));
if (a.is_band(n)) {
add_clause(mk_literal(a.mk_ge(n, a.mk_int(0))));
add_clause(mk_literal(a.mk_le(n, a.mk_int(N - 1))));
add_clause(mk_literal(a.mk_le(n, x)));
add_clause(mk_literal(a.mk_le(n, y)));
}