mirror of
https://github.com/Z3Prover/z3
synced 2026-02-26 02:01:21 +00:00
Standardize for-loop increments to prefix form (++i) (#8199)
* Initial plan * Convert postfix to prefix increment in for loops Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * Fix member variable increment conversion bug Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * Update API generator to produce prefix increments Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
parent
851b8ea31c
commit
317dd92105
475 changed files with 3237 additions and 3237 deletions
|
|
@ -110,7 +110,7 @@ void arith_rewriter::get_coeffs_gcd(expr * t, numeral & g, bool & first, unsigne
|
|||
expr * const * ms = get_monomials(t, sz);
|
||||
SASSERT(sz >= 1);
|
||||
numeral a;
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
expr * arg = ms[i];
|
||||
if (is_numeral(arg, a)) {
|
||||
if (!a.is_zero())
|
||||
|
|
@ -139,7 +139,7 @@ bool arith_rewriter::div_polynomial(expr * t, numeral const & g, const_treatment
|
|||
expr * const * ms = get_monomials(t, sz);
|
||||
expr_ref_buffer new_args(m);
|
||||
numeral a;
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
expr * arg = ms[i];
|
||||
if (is_numeral(arg, a)) {
|
||||
a /= g;
|
||||
|
|
@ -406,7 +406,7 @@ bool arith_rewriter::elim_to_real_mon(expr * monomial, expr_ref & new_monomial)
|
|||
expr_ref_buffer new_vars(m);
|
||||
expr_ref new_var(m);
|
||||
unsigned num = to_app(monomial)->get_num_args();
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
if (!elim_to_real_var(to_app(monomial)->get_arg(i), new_var))
|
||||
return false;
|
||||
new_vars.push_back(new_var);
|
||||
|
|
@ -453,7 +453,7 @@ bool arith_rewriter::is_reduce_power_target(expr * arg, bool is_eq) {
|
|||
sz = 1;
|
||||
args = &arg;
|
||||
}
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
expr * arg = args[i];
|
||||
expr* arg0, *arg1;
|
||||
if (m_util.is_power(arg, arg0, arg1)) {
|
||||
|
|
@ -480,7 +480,7 @@ expr * arith_rewriter::reduce_power(expr * arg, bool is_eq) {
|
|||
}
|
||||
ptr_buffer<expr> new_args;
|
||||
rational k;
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
expr * arg = args[i];
|
||||
expr * arg0, *arg1;
|
||||
if (m_util.is_power(arg, arg0, arg1) && m_util.is_numeral(arg1, k) && k.is_int() &&
|
||||
|
|
@ -941,7 +941,7 @@ bool arith_rewriter::is_anum_simp_target(unsigned num_args, expr * const * args)
|
|||
return false;
|
||||
unsigned num_irrat = 0;
|
||||
unsigned num_rat = 0;
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
if (m_util.is_numeral(args[i])) {
|
||||
num_rat++;
|
||||
if (num_irrat > 0)
|
||||
|
|
@ -1746,7 +1746,7 @@ br_status arith_rewriter::mk_power_core(expr * arg1, expr * arg2, expr_ref & res
|
|||
is_num_y && y.is_unsigned() && 1 < y.get_unsigned() && y.get_unsigned() <= m_max_degree) {
|
||||
ptr_buffer<expr> args;
|
||||
unsigned k = y.get_unsigned();
|
||||
for (unsigned i = 0; i < k; i++) {
|
||||
for (unsigned i = 0; i < k; ++i) {
|
||||
args.push_back(arg1);
|
||||
}
|
||||
result = ensure_real(m_util.mk_mul(args.size(), args.data()));
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ br_status array_rewriter::mk_app_core(func_decl * f, unsigned num_args, expr * c
|
|||
// l_false -- at least one disequal
|
||||
// l_undef -- don't know
|
||||
lbool array_rewriter::compare_args(unsigned num_args, expr * const * args1, expr * const * args2) {
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
if (args1[i] == args2[i])
|
||||
continue;
|
||||
if (m().are_distinct(args1[i], args2[i]))
|
||||
|
|
@ -367,7 +367,7 @@ br_status array_rewriter::mk_select_core(unsigned num_args, expr * const * args,
|
|||
expr * v = to_app(args[0])->get_arg(num_args);
|
||||
ptr_buffer<expr> eqs;
|
||||
unsigned num_indices = num_args-1;
|
||||
for (unsigned i = 0; i < num_indices; i++) {
|
||||
for (unsigned i = 0; i < num_indices; ++i) {
|
||||
eqs.push_back(m().mk_eq(to_app(args[0])->get_arg(i+1), args[i+1]));
|
||||
}
|
||||
if (num_indices == 1) {
|
||||
|
|
@ -411,7 +411,7 @@ br_status array_rewriter::mk_map_core(func_decl * f, unsigned num_args, expr * c
|
|||
app* store_expr = nullptr;
|
||||
unsigned num_indices = 0;
|
||||
bool same_store = true;
|
||||
for (unsigned i = 0; same_store && i < num_args; i++) {
|
||||
for (unsigned i = 0; same_store && i < num_args; ++i) {
|
||||
expr* a = args[i];
|
||||
if (m_util.is_const(a)) {
|
||||
continue;
|
||||
|
|
@ -424,7 +424,7 @@ br_status array_rewriter::mk_map_core(func_decl * f, unsigned num_args, expr * c
|
|||
store_expr = to_app(a);
|
||||
}
|
||||
else {
|
||||
for (unsigned j = 1; same_store && j < num_indices + 1; j++) {
|
||||
for (unsigned j = 1; same_store && j < num_indices + 1; ++j) {
|
||||
same_store = (store_expr->get_arg(j) == to_app(a)->get_arg(j));
|
||||
}
|
||||
}
|
||||
|
|
@ -436,7 +436,7 @@ br_status array_rewriter::mk_map_core(func_decl * f, unsigned num_args, expr * c
|
|||
if (same_store) {
|
||||
ptr_buffer<expr> arrays;
|
||||
ptr_buffer<expr> values;
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr* a = args[i];
|
||||
if (m_util.is_const(a)) {
|
||||
arrays.push_back(a);
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ int & counter::get(unsigned el) {
|
|||
}
|
||||
|
||||
counter & counter::count(unsigned sz, const unsigned * els, int delta) {
|
||||
for(unsigned i = 0; i < sz; i++) {
|
||||
for(unsigned i = 0; i < sz; ++i) {
|
||||
update(els[i], delta);
|
||||
}
|
||||
return *this;
|
||||
|
|
@ -77,7 +77,7 @@ int counter::get_max_counter_value() const {
|
|||
|
||||
void var_counter::count_vars(const app * pred, int coef) {
|
||||
unsigned n = pred->get_num_args();
|
||||
for (unsigned i = 0; i < n; i++) {
|
||||
for (unsigned i = 0; i < n; ++i) {
|
||||
m_fv(pred->get_arg(i));
|
||||
for (unsigned j = 0; j < m_fv.size(); ++j) {
|
||||
if (m_fv[j]) {
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ struct blaster_rewriter_cfg : public default_rewriter_cfg {
|
|||
}
|
||||
else {
|
||||
unsigned bv_size = butil().get_bv_size(t);
|
||||
for (unsigned i = 0; i < bv_size; i++) {
|
||||
for (unsigned i = 0; i < bv_size; ++i) {
|
||||
parameter p(i);
|
||||
out_bits.push_back(m().mk_app(butil().get_family_id(), OP_BIT2BOOL, 1, &p, 1, &t));
|
||||
}
|
||||
|
|
@ -226,7 +226,7 @@ struct blaster_rewriter_cfg : public default_rewriter_cfg {
|
|||
unsigned bv_size = butil().get_bv_size(s);
|
||||
sort * b = m().mk_bool_sort();
|
||||
m_out.reset();
|
||||
for (unsigned i = 0; i < bv_size; i++) {
|
||||
for (unsigned i = 0; i < bv_size; ++i) {
|
||||
m_out.push_back(m().mk_fresh_const(nullptr, b));
|
||||
m_newbits.push_back(to_app(m_out.back())->get_decl());
|
||||
}
|
||||
|
|
@ -277,7 +277,7 @@ void OP(unsigned num_args, expr * const * args, expr_ref & result) { \
|
|||
SASSERT(num_args > 0); \
|
||||
result = args[0]; \
|
||||
expr_ref new_result(m_manager); \
|
||||
for (unsigned i = 1; i < num_args; i++) { \
|
||||
for (unsigned i = 1; i < num_args; ++i) { \
|
||||
BIN_OP(result.get(), args[i], new_result); \
|
||||
result = new_result; \
|
||||
} \
|
||||
|
|
@ -369,7 +369,7 @@ MK_PARAMETRIC_UNARY_REDUCE(reduce_sign_extend, mk_sign_extend);
|
|||
void blast_bv_term(expr * t, expr_ref & result, proof_ref & result_pr) {
|
||||
ptr_buffer<expr> bits;
|
||||
unsigned bv_size = butil().get_bv_size(t);
|
||||
for (unsigned i = 0; i < bv_size; i++) {
|
||||
for (unsigned i = 0; i < bv_size; ++i) {
|
||||
parameter p(i);
|
||||
bits.push_back(m().mk_app(butil().get_family_id(), OP_BIT2BOOL, 1, &p, 1, &t));
|
||||
}
|
||||
|
|
@ -553,7 +553,7 @@ MK_PARAMETRIC_UNARY_REDUCE(reduce_sign_extend, mk_sign_extend);
|
|||
return BR_FAILED;
|
||||
default:
|
||||
TRACE(bit_blaster, tout << "non-supported operator: " << f->get_name() << "\n";
|
||||
for (unsigned i = 0; i < num; i++) tout << mk_ismt2_pp(args[i], m()) << std::endl;);
|
||||
for (unsigned i = 0; i < num; ++i) tout << mk_ismt2_pp(args[i], m()) << std::endl;);
|
||||
{
|
||||
expr_ref r(m().mk_app(f, num, args), m());
|
||||
result = r;
|
||||
|
|
@ -588,7 +588,7 @@ MK_PARAMETRIC_UNARY_REDUCE(reduce_sign_extend, mk_sign_extend);
|
|||
if (butil().is_bv_sort(s)) {
|
||||
unsigned bv_size = butil().get_bv_size(s);
|
||||
new_args.reset();
|
||||
for (unsigned k = 0; k < bv_size; k++) {
|
||||
for (unsigned k = 0; k < bv_size; ++k) {
|
||||
new_args.push_back(m().mk_var(j, m().mk_bool_sort()));
|
||||
j++;
|
||||
}
|
||||
|
|
@ -660,12 +660,12 @@ MK_PARAMETRIC_UNARY_REDUCE(reduce_sign_extend, mk_sign_extend);
|
|||
string_buffer<> name_buffer;
|
||||
ptr_buffer<sort> new_decl_sorts;
|
||||
sbuffer<symbol> new_decl_names;
|
||||
for (unsigned i = 0; i < num_decls; i++) {
|
||||
for (unsigned i = 0; i < num_decls; ++i) {
|
||||
symbol const & n = old_q->get_decl_name(i);
|
||||
sort * s = old_q->get_decl_sort(i);
|
||||
if (butil().is_bv_sort(s)) {
|
||||
unsigned bv_size = butil().get_bv_size(s);
|
||||
for (unsigned j = 0; j < bv_size; j++) {
|
||||
for (unsigned j = 0; j < bv_size; ++j) {
|
||||
name_buffer.reset();
|
||||
name_buffer << n << "." << j;
|
||||
new_decl_names.push_back(symbol(name_buffer.c_str()));
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ void bit_blaster_tpl<Cfg>::checkpoint() {
|
|||
*/
|
||||
template<typename Cfg>
|
||||
bool bit_blaster_tpl<Cfg>::is_numeral(unsigned sz, expr * const * bits) const {
|
||||
for (unsigned i = 0; i < sz; i++)
|
||||
for (unsigned i = 0; i < sz; ++i)
|
||||
if (!is_bool_const(bits[i]))
|
||||
return false;
|
||||
return true;
|
||||
|
|
@ -51,7 +51,7 @@ bool bit_blaster_tpl<Cfg>::is_numeral(unsigned sz, expr * const * bits) const {
|
|||
template<typename Cfg>
|
||||
bool bit_blaster_tpl<Cfg>::is_numeral(unsigned sz, expr * const * bits, numeral & r) const {
|
||||
r.reset();
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
if (m().is_true(bits[i]))
|
||||
r += power(i);
|
||||
else if (!m().is_false(bits[i]))
|
||||
|
|
@ -65,7 +65,7 @@ bool bit_blaster_tpl<Cfg>::is_numeral(unsigned sz, expr * const * bits, numeral
|
|||
*/
|
||||
template<typename Cfg>
|
||||
bool bit_blaster_tpl<Cfg>::is_minus_one(unsigned sz, expr * const * bits) const {
|
||||
for (unsigned i = 0; i < sz; i++)
|
||||
for (unsigned i = 0; i < sz; ++i)
|
||||
if (!m().is_true(bits[i]))
|
||||
return false;
|
||||
return true;
|
||||
|
|
@ -76,7 +76,7 @@ static void _num2bits(ast_manager & m, rational const & v, unsigned sz, expr_ref
|
|||
SASSERT(v.is_nonneg());
|
||||
rational aux = v;
|
||||
rational two(2), base32(1ull << 32ull, rational::ui64());
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
if (i + 32 < sz) {
|
||||
unsigned u = (aux % base32).get_unsigned();
|
||||
for (unsigned j = 0; j < 32; ++j) {
|
||||
|
|
@ -122,7 +122,7 @@ void bit_blaster_tpl<Cfg>::mk_neg(unsigned sz, expr * const * a_bits, expr_ref_v
|
|||
SASSERT(sz > 0);
|
||||
expr_ref cin(m()), cout(m()), out(m());
|
||||
cin = m().mk_true();
|
||||
for (unsigned idx = 0; idx < sz; idx++) {
|
||||
for (unsigned idx = 0; idx < sz; ++idx) {
|
||||
expr_ref not_a(m());
|
||||
mk_not(a_bits[idx], not_a);
|
||||
if (idx < sz - 1)
|
||||
|
|
@ -139,7 +139,7 @@ void bit_blaster_tpl<Cfg>::mk_adder(unsigned sz, expr * const * a_bits, expr * c
|
|||
SASSERT(sz > 0);
|
||||
expr_ref cin(m()), cout(m()), out(m());
|
||||
cin = m().mk_false();
|
||||
for (unsigned idx = 0; idx < sz; idx++) {
|
||||
for (unsigned idx = 0; idx < sz; ++idx) {
|
||||
if (idx < sz - 1)
|
||||
mk_full_adder(a_bits[idx], b_bits[idx], cin, out, cout);
|
||||
else
|
||||
|
|
@ -160,7 +160,7 @@ void bit_blaster_tpl<Cfg>::mk_subtracter(unsigned sz, expr * const * a_bits, exp
|
|||
SASSERT(sz > 0);
|
||||
expr_ref cin(m()), out(m());
|
||||
cin = m().mk_true();
|
||||
for (unsigned j = 0; j < sz; j++) {
|
||||
for (unsigned j = 0; j < sz; ++j) {
|
||||
expr_ref not_b(m());
|
||||
mk_not(b_bits[j], not_b);
|
||||
mk_full_adder(a_bits[j], not_b, cin, out, cout);
|
||||
|
|
@ -237,7 +237,7 @@ void bit_blaster_tpl<Cfg>::mk_multiplier(unsigned sz, expr * const * a_bits, exp
|
|||
FA denotes a full-adder.
|
||||
*/
|
||||
|
||||
for (unsigned i = 1; i < sz; i++) {
|
||||
for (unsigned i = 1; i < sz; ++i) {
|
||||
checkpoint();
|
||||
couts.reset();
|
||||
expr_ref i1(m()), i2(m());
|
||||
|
|
@ -246,7 +246,7 @@ void bit_blaster_tpl<Cfg>::mk_multiplier(unsigned sz, expr * const * a_bits, exp
|
|||
if (i < sz - 1) {
|
||||
mk_half_adder(i1, i2, out, cout);
|
||||
couts.push_back(cout);
|
||||
for (unsigned j = 2; j <= i; j++) {
|
||||
for (unsigned j = 2; j <= i; ++j) {
|
||||
expr_ref prev_out(m());
|
||||
prev_out = out;
|
||||
expr_ref i3(m());
|
||||
|
|
@ -260,7 +260,7 @@ void bit_blaster_tpl<Cfg>::mk_multiplier(unsigned sz, expr * const * a_bits, exp
|
|||
else {
|
||||
// last step --> I don't need to generate/store couts.
|
||||
mk_xor(i1, i2, out);
|
||||
for (unsigned j = 2; j <= i; j++) {
|
||||
for (unsigned j = 2; j <= i; ++j) {
|
||||
expr_ref i3(m());
|
||||
mk_and(a_bits[j], b_bits[i - j], i3);
|
||||
mk_xor3(i3, out, cins.get(j - 2), out);
|
||||
|
|
@ -390,12 +390,12 @@ void bit_blaster_tpl<Cfg>::mk_udiv_urem(unsigned sz, expr * const * a_bits, expr
|
|||
|
||||
// init p
|
||||
p.push_back(a_bits[sz-1]);
|
||||
for (unsigned i = 1; i < sz; i++)
|
||||
for (unsigned i = 1; i < sz; ++i)
|
||||
p.push_back(m().mk_false());
|
||||
|
||||
q_bits.resize(sz);
|
||||
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
checkpoint();
|
||||
// generate p - b
|
||||
expr_ref q(m());
|
||||
|
|
@ -414,7 +414,7 @@ void bit_blaster_tpl<Cfg>::mk_udiv_urem(unsigned sz, expr * const * a_bits, expr
|
|||
}
|
||||
else {
|
||||
// last step: p contains the remainder
|
||||
for (unsigned j = 0; j < sz; j++) {
|
||||
for (unsigned j = 0; j < sz; ++j) {
|
||||
expr_ref ie(m());
|
||||
mk_ite(q, t.get(j), p.get(j), ie);
|
||||
p.set(j, ie);
|
||||
|
|
@ -422,7 +422,7 @@ void bit_blaster_tpl<Cfg>::mk_udiv_urem(unsigned sz, expr * const * a_bits, expr
|
|||
}
|
||||
}
|
||||
DEBUG_CODE({
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
SASSERT(q_bits.get(i) != 0);
|
||||
}});
|
||||
TRACE(bit_blaster,
|
||||
|
|
@ -452,7 +452,7 @@ void bit_blaster_tpl<Cfg>::mk_urem(unsigned sz, expr * const * a_bits, expr * co
|
|||
|
||||
template<typename Cfg>
|
||||
void bit_blaster_tpl<Cfg>::mk_multiplexer(expr * c, unsigned sz, expr * const * t_bits, expr * const * e_bits, expr_ref_vector & out_bits) {
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
expr_ref t(m());
|
||||
mk_ite(c, t_bits[i], e_bits[i], t);
|
||||
out_bits.push_back(t);
|
||||
|
|
@ -768,7 +768,7 @@ void bit_blaster_tpl<Cfg>::mk_smod(unsigned sz, expr * const * a_bits, expr * co
|
|||
template<typename Cfg>
|
||||
void bit_blaster_tpl<Cfg>::mk_eq(unsigned sz, expr * const * a_bits, expr * const * b_bits, expr_ref & out) {
|
||||
expr_ref_vector out_bits(m());
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
mk_iff(a_bits[i], b_bits[i], out);
|
||||
out_bits.push_back(out);
|
||||
}
|
||||
|
|
@ -784,9 +784,9 @@ void bit_blaster_tpl<Cfg>::mk_rotate_left(unsigned sz, expr * const * a_bits, un
|
|||
tout << "\n";
|
||||
);
|
||||
n = n % sz;
|
||||
for (unsigned i = sz - n; i < sz; i++)
|
||||
for (unsigned i = sz - n; i < sz; ++i)
|
||||
out_bits.push_back(a_bits[i]);
|
||||
for (unsigned i = 0 ; i < sz - n; i++)
|
||||
for (unsigned i = 0 ; i < sz - n; ++i)
|
||||
out_bits.push_back(a_bits[i]);
|
||||
}
|
||||
|
||||
|
|
@ -798,19 +798,19 @@ void bit_blaster_tpl<Cfg>::mk_rotate_right(unsigned sz, expr * const * a_bits, u
|
|||
|
||||
template<typename Cfg>
|
||||
void bit_blaster_tpl<Cfg>::mk_sign_extend(unsigned sz, expr * const * a_bits, unsigned n, expr_ref_vector & out_bits) {
|
||||
for (unsigned i = 0; i < sz; i++)
|
||||
for (unsigned i = 0; i < sz; ++i)
|
||||
out_bits.push_back(a_bits[i]);
|
||||
expr * high_bit = a_bits[sz - 1];
|
||||
for (unsigned i = sz; i < sz + n; i++)
|
||||
for (unsigned i = sz; i < sz + n; ++i)
|
||||
out_bits.push_back(high_bit);
|
||||
}
|
||||
|
||||
template<typename Cfg>
|
||||
void bit_blaster_tpl<Cfg>::mk_zero_extend(unsigned sz, expr * const * a_bits, unsigned n, expr_ref_vector & out_bits) {
|
||||
for (unsigned i = 0; i < sz; i++)
|
||||
for (unsigned i = 0; i < sz; ++i)
|
||||
out_bits.push_back(a_bits[i]);
|
||||
expr * high_bit = m().mk_false();
|
||||
for (unsigned i = sz; i < sz + n; i++)
|
||||
for (unsigned i = sz; i < sz + n; ++i)
|
||||
out_bits.push_back(high_bit);
|
||||
}
|
||||
|
||||
|
|
@ -821,7 +821,7 @@ template<typename Cfg>
|
|||
void bit_blaster_tpl<Cfg>::mk_is_eq(unsigned sz, expr * const * a_bits, unsigned n, expr_ref & out) {
|
||||
numeral two(2);
|
||||
expr_ref_vector out_bits(m());
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
if (n % 2 == 0) {
|
||||
expr_ref not_a(m());
|
||||
mk_not(a_bits[i], not_a);
|
||||
|
|
@ -840,7 +840,7 @@ void bit_blaster_tpl<Cfg>::mk_is_eq(unsigned sz, expr * const * a_bits, unsigned
|
|||
*/
|
||||
template<typename Cfg>
|
||||
void bit_blaster_tpl<Cfg>::mk_eqs(unsigned sz, expr * const * a_bits, expr_ref_vector & eqs) {
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
expr_ref eq(m());
|
||||
mk_is_eq(sz, a_bits, i, eq);
|
||||
eqs.push_back(eq);
|
||||
|
|
@ -855,9 +855,9 @@ void bit_blaster_tpl<Cfg>::mk_shl(unsigned sz, expr * const * a_bits, expr * con
|
|||
unsigned n = static_cast<unsigned>(k.get_int64());
|
||||
if (n >= sz) n = sz;
|
||||
unsigned pos;
|
||||
for (pos = 0; pos < n; pos++)
|
||||
for (pos = 0; pos < n; ++pos)
|
||||
out_bits.push_back(m().mk_false());
|
||||
for (unsigned i = 0; pos < sz; pos++, i++)
|
||||
for (unsigned i = 0; pos < sz; ++pos, ++i)
|
||||
out_bits.push_back(a_bits[i]);
|
||||
}
|
||||
else {
|
||||
|
|
@ -900,9 +900,9 @@ void bit_blaster_tpl<Cfg>::mk_lshr(unsigned sz, expr * const * a_bits, expr * co
|
|||
if (k > numeral(sz)) k = numeral(sz);
|
||||
unsigned n = static_cast<unsigned>(k.get_int64());
|
||||
unsigned pos = 0;
|
||||
for (unsigned i = n; i < sz; pos++, i++)
|
||||
for (unsigned i = n; i < sz; ++pos, ++i)
|
||||
out_bits.push_back(a_bits[i]);
|
||||
for (; pos < sz; pos++)
|
||||
for (; pos < sz; ++pos)
|
||||
out_bits.push_back(m().mk_false());
|
||||
}
|
||||
else {
|
||||
|
|
@ -943,9 +943,9 @@ void bit_blaster_tpl<Cfg>::mk_ashr(unsigned sz, expr * const * a_bits, expr * co
|
|||
if (k > numeral(sz)) k = numeral(sz);
|
||||
unsigned n = static_cast<unsigned>(k.get_int64());
|
||||
unsigned pos = 0;
|
||||
for (unsigned i = n; i < sz; pos++, i++)
|
||||
for (unsigned i = n; i < sz; ++pos, ++i)
|
||||
out_bits.push_back(a_bits[i]);
|
||||
for (; pos < sz; pos++)
|
||||
for (; pos < sz; ++pos)
|
||||
out_bits.push_back(a_bits[sz-1]);
|
||||
}
|
||||
else {
|
||||
|
|
@ -1034,7 +1034,7 @@ void bit_blaster_tpl<Cfg>::mk_le(unsigned sz, expr * const * a_bits, expr * cons
|
|||
expr_ref not_a(m());
|
||||
mk_not(a_bits[0], not_a);
|
||||
mk_or(not_a, b_bits[0], out);
|
||||
for (unsigned idx = 1; idx < (Signed ? sz - 1 : sz); idx++) {
|
||||
for (unsigned idx = 1; idx < (Signed ? sz - 1 : sz); ++idx) {
|
||||
mk_not(a_bits[idx], not_a);
|
||||
mk_ge2(not_a, b_bits[idx], out, out);
|
||||
}
|
||||
|
|
@ -1057,7 +1057,7 @@ void bit_blaster_tpl<Cfg>::mk_ule(unsigned sz, expr * const * a_bits, expr * con
|
|||
|
||||
template<typename Cfg>
|
||||
void bit_blaster_tpl<Cfg>::mk_not(unsigned sz, expr * const * a_bits, expr_ref_vector & out_bits) {
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
expr_ref t(m());
|
||||
mk_not(a_bits[i], t);
|
||||
out_bits.push_back(t);
|
||||
|
|
@ -1067,7 +1067,7 @@ void bit_blaster_tpl<Cfg>::mk_not(unsigned sz, expr * const * a_bits, expr_ref_v
|
|||
#define MK_BINARY(NAME, OP) \
|
||||
template<typename Cfg> \
|
||||
void bit_blaster_tpl<Cfg>::NAME(unsigned sz, expr * const * a_bits, expr * const * b_bits, expr_ref_vector & out_bits) { \
|
||||
for (unsigned i = 0; i < sz; i++) { \
|
||||
for (unsigned i = 0; i < sz; ++i) { \
|
||||
expr_ref t(m()); \
|
||||
OP(a_bits[i], b_bits[i], t); \
|
||||
out_bits.push_back(t); \
|
||||
|
|
@ -1105,7 +1105,7 @@ void bit_blaster_tpl<Cfg>::mk_comp(unsigned sz, expr * const * a_bits, expr * co
|
|||
template<typename Cfg>
|
||||
void bit_blaster_tpl<Cfg>::mk_carry_save_adder(unsigned sz, expr * const * a_bits, expr * const * b_bits, expr * const * c_bits, expr_ref_vector & sum_bits, expr_ref_vector & carry_bits) {
|
||||
expr_ref t(m());
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
mk_xor3(a_bits[i], b_bits[i], c_bits[i], t);
|
||||
sum_bits.push_back(t);
|
||||
mk_carry(a_bits[i], b_bits[i], c_bits[i], t);
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ br_status bool_rewriter::mk_app_core(func_decl * f, unsigned num_args, expr * co
|
|||
|
||||
void bool_rewriter::mk_and_as_or(unsigned num_args, expr * const * args, expr_ref & result) {
|
||||
expr_ref_buffer new_args(m());
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr_ref tmp(m());
|
||||
mk_not(args[i], tmp);
|
||||
new_args.push_back(tmp);
|
||||
|
|
@ -93,7 +93,7 @@ br_status bool_rewriter::mk_nflat_and_core(unsigned num_args, expr * const * arg
|
|||
expr_fast_mark2 pos_lits;
|
||||
expr* atom = nullptr;
|
||||
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (m().is_true(arg)) {
|
||||
s = true;
|
||||
|
|
@ -156,7 +156,7 @@ br_status bool_rewriter::mk_nflat_and_core(unsigned num_args, expr * const * arg
|
|||
|
||||
br_status bool_rewriter::mk_flat_and_core(unsigned num_args, expr * const * args, expr_ref & result) {
|
||||
unsigned i;
|
||||
for (i = 0; i < num_args; i++) {
|
||||
for (i = 0; i < num_args; ++i) {
|
||||
if (m().is_and(args[i]))
|
||||
break;
|
||||
}
|
||||
|
|
@ -164,7 +164,7 @@ br_status bool_rewriter::mk_flat_and_core(unsigned num_args, expr * const * args
|
|||
// has nested ANDs
|
||||
ptr_buffer<expr> flat_args;
|
||||
flat_args.append(i, args);
|
||||
for (; i < num_args; i++) {
|
||||
for (; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
// Remark: all rewrites are depth 1.
|
||||
if (m().is_and(arg)) {
|
||||
|
|
@ -188,7 +188,7 @@ br_status bool_rewriter::mk_nflat_or_core(unsigned num_args, expr * const * args
|
|||
expr_fast_mark1 neg_lits;
|
||||
expr_fast_mark2 pos_lits;
|
||||
expr* prev = nullptr;
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (m().is_true(arg)) {
|
||||
neg_lits.reset();
|
||||
|
|
@ -284,7 +284,7 @@ br_status bool_rewriter::mk_nflat_or_core(unsigned num_args, expr * const * args
|
|||
|
||||
br_status bool_rewriter::mk_flat_or_core(unsigned num_args, expr * const * args, expr_ref & result) {
|
||||
unsigned i;
|
||||
for (i = 0; i < num_args; i++) {
|
||||
for (i = 0; i < num_args; ++i) {
|
||||
if (m().is_or(args[i]))
|
||||
break;
|
||||
}
|
||||
|
|
@ -294,7 +294,7 @@ br_status bool_rewriter::mk_flat_or_core(unsigned num_args, expr * const * args,
|
|||
// has nested ORs
|
||||
ptr_buffer<expr> flat_args;
|
||||
flat_args.append(i, args);
|
||||
for (; i < num_args; i++) {
|
||||
for (; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
// Remark: all rewrites are depth 1.
|
||||
if (m().is_or(arg)) {
|
||||
|
|
@ -339,7 +339,7 @@ bool bool_rewriter::simp_nested_not_or(unsigned num_args, expr * const * args,
|
|||
ptr_buffer<expr> new_args;
|
||||
bool simp = false;
|
||||
m_local_ctx_cost += num_args;
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (neg_lits.is_marked(arg)) {
|
||||
result = m().mk_false();
|
||||
|
|
@ -590,7 +590,7 @@ bool bool_rewriter::local_ctx_simp(unsigned num_args, expr * const * args, expr_
|
|||
#endif
|
||||
|
||||
if (forward) {
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
PROCESS_ARG();
|
||||
}
|
||||
forward = false;
|
||||
|
|
@ -868,7 +868,7 @@ br_status bool_rewriter::mk_distinct_core(unsigned num_args, expr * const * args
|
|||
|
||||
expr_fast_mark1 visited;
|
||||
bool all_value = true, all_diff = true;
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (visited.is_marked(arg)) {
|
||||
result = m().mk_false();
|
||||
|
|
@ -902,8 +902,8 @@ br_status bool_rewriter::mk_distinct_core(unsigned num_args, expr * const * args
|
|||
|
||||
if (m_blast_distinct && num_args < m_blast_distinct_threshold) {
|
||||
expr_ref_vector new_diseqs(m());
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned j = i + 1; j < num_args; j++)
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
for (unsigned j = i + 1; j < num_args; ++j)
|
||||
new_diseqs.push_back(m().mk_not(m().mk_eq(args[i], args[j])));
|
||||
}
|
||||
result = m().mk_and(new_diseqs);
|
||||
|
|
|
|||
|
|
@ -89,10 +89,10 @@ bool bv_elim_cfg::reduce_quantifier(quantifier * q,
|
|||
|
||||
new_body = subst(old_body, sub_size, sub);
|
||||
|
||||
for (unsigned j = 0; j < q->get_num_patterns(); j++) {
|
||||
for (unsigned j = 0; j < q->get_num_patterns(); ++j) {
|
||||
pats.push_back(subst(new_patterns[j], sub_size, sub));
|
||||
}
|
||||
for (unsigned j = 0; j < q->get_num_no_patterns(); j++) {
|
||||
for (unsigned j = 0; j < q->get_num_no_patterns(); ++j) {
|
||||
no_pats.push_back(subst(new_no_patterns[j], sub_size, sub));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -685,7 +685,7 @@ unsigned bv_rewriter::propagate_extract(unsigned high, expr * arg, expr_ref & re
|
|||
numeral val;
|
||||
unsigned curr_first_sz = -1;
|
||||
// calculate how much can be removed
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
expr * const curr = a->get_arg(i);
|
||||
const bool curr_is_conc = m_util.is_concat(curr);
|
||||
if (curr_is_conc && to_app(curr)->get_num_args() == 0) continue;
|
||||
|
|
@ -709,7 +709,7 @@ unsigned bv_rewriter::propagate_extract(unsigned high, expr * arg, expr_ref & re
|
|||
SASSERT(removable <= to_remove);
|
||||
ptr_buffer<expr> new_args;
|
||||
ptr_buffer<expr> new_concat_args;
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
expr * const curr = a->get_arg(i);
|
||||
const bool curr_is_conc = m_util.is_concat(curr);
|
||||
if (curr_is_conc && to_app(curr)->get_num_args() == 0) continue;
|
||||
|
|
@ -785,7 +785,7 @@ br_status bv_rewriter::mk_extract(unsigned high, unsigned low, expr * arg, expr_
|
|||
if (m_util.is_concat(arg)) {
|
||||
unsigned num = to_app(arg)->get_num_args();
|
||||
unsigned idx = sz;
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
expr * curr = to_app(arg)->get_arg(i);
|
||||
unsigned curr_sz = get_bv_size(curr);
|
||||
idx -= curr_sz;
|
||||
|
|
@ -814,7 +814,7 @@ br_status bv_rewriter::mk_extract(unsigned high, unsigned low, expr * arg, expr_
|
|||
used_extract = true;
|
||||
new_args.push_back(m_mk_extract(high - idx, 0, curr));
|
||||
}
|
||||
for (unsigned j = i + 1; j < num; j++) {
|
||||
for (unsigned j = i + 1; j < num; ++j) {
|
||||
curr = to_app(arg)->get_arg(j);
|
||||
unsigned curr_sz = get_bv_size(curr);
|
||||
idx -= curr_sz;
|
||||
|
|
@ -844,7 +844,7 @@ br_status bv_rewriter::mk_extract(unsigned high, unsigned low, expr * arg, expr_
|
|||
m_util.is_bv_mul(arg)))) {
|
||||
ptr_buffer<expr> new_args;
|
||||
unsigned num = to_app(arg)->get_num_args();
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
expr * curr = to_app(arg)->get_arg(i);
|
||||
new_args.push_back(m_mk_extract(high, low, curr));
|
||||
}
|
||||
|
|
@ -1095,7 +1095,7 @@ br_status bv_rewriter::mk_bv_ashr(expr * arg1, expr * arg2, expr_ref & result) {
|
|||
SASSERT(r2 <= numeral(bv_size));
|
||||
unsigned k = r2.get_unsigned();
|
||||
expr * sign = m_mk_extract(bv_size-1, bv_size-1, arg1);
|
||||
for (unsigned i = 0; i < k; i++)
|
||||
for (unsigned i = 0; i < k; ++i)
|
||||
new_args.push_back(sign);
|
||||
if (k != bv_size)
|
||||
new_args.push_back(m_mk_extract(bv_size-1, k, arg1));
|
||||
|
|
@ -1643,7 +1643,7 @@ br_status bv_rewriter::mk_concat(unsigned num_args, expr * const * args, expr_re
|
|||
bool expanded = false;
|
||||
bool fused_extract = false;
|
||||
bool eq_args = true;
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
expr * prev = nullptr;
|
||||
if (i > 0) {
|
||||
|
|
@ -1741,7 +1741,7 @@ br_status bv_rewriter::mk_sign_extend(unsigned n, expr * arg, expr_ref & result)
|
|||
unsigned sz = get_bv_size(arg);
|
||||
expr * sign = m_mk_extract(sz-1, sz-1, arg);
|
||||
ptr_buffer<expr> args;
|
||||
for (unsigned i = 0; i < n; i++)
|
||||
for (unsigned i = 0; i < n; ++i)
|
||||
args.push_back(sign);
|
||||
args.push_back(arg);
|
||||
result = m_util.mk_concat(args.size(), args.data());
|
||||
|
|
@ -1757,7 +1757,7 @@ br_status bv_rewriter::mk_repeat(unsigned n, expr * arg, expr_ref & result) {
|
|||
return BR_DONE;
|
||||
}
|
||||
ptr_buffer<expr> args;
|
||||
for (unsigned i = 0; i < n; i++)
|
||||
for (unsigned i = 0; i < n; ++i)
|
||||
args.push_back(arg);
|
||||
result = m_util.mk_concat(args.size(), args.data());
|
||||
return BR_REWRITE1;
|
||||
|
|
@ -1773,11 +1773,11 @@ br_status bv_rewriter::mk_bv_or(unsigned num, expr * const * args, expr_ref & re
|
|||
bool flattened = false;
|
||||
ptr_buffer<expr> flat_args;
|
||||
if (m_flat) {
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (m_util.is_bv_or(arg)) {
|
||||
unsigned num2 = to_app(arg)->get_num_args();
|
||||
for (unsigned j = 0; j < num2; j++)
|
||||
for (unsigned j = 0; j < num2; ++j)
|
||||
flat_args.push_back(to_app(arg)->get_arg(j));
|
||||
}
|
||||
else {
|
||||
|
|
@ -1797,7 +1797,7 @@ br_status bv_rewriter::mk_bv_or(unsigned num, expr * const * args, expr_ref & re
|
|||
bool merged = false;
|
||||
unsigned num_coeffs = 0;
|
||||
numeral v1, v2;
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (is_numeral(arg, v2, sz)) {
|
||||
num_coeffs++;
|
||||
|
|
@ -1846,7 +1846,7 @@ br_status bv_rewriter::mk_bv_or(unsigned num, expr * const * args, expr_ref & re
|
|||
app * concat1 = to_app(new_args[0]);
|
||||
app * concat2 = to_app(new_args[1]);
|
||||
unsigned i = 0;
|
||||
for (i = 0; i < sz; i++)
|
||||
for (i = 0; i < sz; ++i)
|
||||
if (!is_zero_bit(concat1, i) && !is_zero_bit(concat2, i))
|
||||
break;
|
||||
if (i == sz) {
|
||||
|
|
@ -1945,11 +1945,11 @@ br_status bv_rewriter::mk_bv_xor(unsigned num, expr * const * args, expr_ref & r
|
|||
bool flattened = false;
|
||||
ptr_buffer<expr> flat_args;
|
||||
if (m_flat) {
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (m_util.is_bv_xor(arg)) {
|
||||
unsigned num2 = to_app(arg)->get_num_args();
|
||||
for (unsigned j = 0; j < num2; j++)
|
||||
for (unsigned j = 0; j < num2; ++j)
|
||||
flat_args.push_back(to_app(arg)->get_arg(j));
|
||||
}
|
||||
else {
|
||||
|
|
@ -1968,7 +1968,7 @@ br_status bv_rewriter::mk_bv_xor(unsigned num, expr * const * args, expr_ref & r
|
|||
bool merged = false;
|
||||
numeral v1, v2;
|
||||
unsigned num_coeffs = 0;
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (is_numeral(arg, v2, sz)) {
|
||||
v1 = bitwise_xor(v1, v2);
|
||||
|
|
@ -2017,7 +2017,7 @@ br_status bv_rewriter::mk_bv_xor(unsigned num, expr * const * args, expr_ref & r
|
|||
if (!v1.is_zero() && num_coeffs == num - 1) {
|
||||
// find argument that is not a numeral
|
||||
expr * t = nullptr;
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
t = args[i];
|
||||
if (!is_numeral(t))
|
||||
break;
|
||||
|
|
@ -2070,7 +2070,7 @@ br_status bv_rewriter::mk_bv_xor(unsigned num, expr * const * args, expr_ref & r
|
|||
new_args.push_back(c);
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (is_numeral(arg))
|
||||
continue;
|
||||
|
|
@ -2200,7 +2200,7 @@ br_status bv_rewriter::mk_bv_not(expr * arg, expr_ref & result) {
|
|||
|
||||
br_status bv_rewriter::mk_bv_and(unsigned num, expr * const * args, expr_ref & result) {
|
||||
ptr_buffer<expr> new_args;
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
new_args.push_back(m_util.mk_bv_not(args[i]));
|
||||
}
|
||||
SASSERT(num == new_args.size());
|
||||
|
|
@ -2210,7 +2210,7 @@ br_status bv_rewriter::mk_bv_and(unsigned num, expr * const * args, expr_ref & r
|
|||
|
||||
br_status bv_rewriter::mk_bv_nand(unsigned num, expr * const * args, expr_ref & result) {
|
||||
ptr_buffer<expr> new_args;
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
new_args.push_back(m_util.mk_bv_not(args[i]));
|
||||
}
|
||||
result = m_util.mk_bv_or(new_args.size(), new_args.data());
|
||||
|
|
@ -2369,7 +2369,7 @@ br_status bv_rewriter::mk_bv_add(unsigned num_args, expr * const * args, expr_re
|
|||
|
||||
unsigned sz = get_bv_size(x);
|
||||
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
if (!is_zero_bit(x,i) && !is_zero_bit(y,i))
|
||||
return st;
|
||||
}
|
||||
|
|
@ -2393,9 +2393,9 @@ br_status bv_rewriter::mk_bv_add(unsigned num_args, expr * const * args, expr_re
|
|||
if (_num_args < 2)
|
||||
return st;
|
||||
unsigned sz = get_bv_size(_args[0]);
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
bool found_non_zero = false;
|
||||
for (unsigned j = 0; j < _num_args; j++) {
|
||||
for (unsigned j = 0; j < _num_args; ++j) {
|
||||
if (!is_zero_bit(_args[j], i)) {
|
||||
// at most one of the arguments may have a non-zero bit.
|
||||
if (found_non_zero)
|
||||
|
|
@ -2616,7 +2616,7 @@ br_status bv_rewriter::mk_blast_eq_value(expr * lhs, expr * rhs, expr_ref & resu
|
|||
|
||||
numeral two(2);
|
||||
ptr_buffer<expr> new_args;
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
bool bit0 = (v % two).is_zero();
|
||||
new_args.push_back(m.mk_eq(m_mk_extract(i,i, lhs),
|
||||
mk_numeral(bit0 ? 0 : 1, 1)));
|
||||
|
|
@ -2979,7 +2979,7 @@ br_status bv_rewriter::mk_eq_core(expr * lhs, expr * rhs, expr_ref & result) {
|
|||
br_status bv_rewriter::mk_mkbv(unsigned num, expr * const * args, expr_ref & result) {
|
||||
if (m_mkbv2num) {
|
||||
unsigned i;
|
||||
for (i = 0; i < num; i++)
|
||||
for (i = 0; i < num; ++i)
|
||||
if (!m.is_true(args[i]) && !m.is_false(args[i]))
|
||||
return BR_FAILED;
|
||||
numeral val;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ bool cached_var_subst::key_eq_proc::operator()(cached_var_subst::key * k1, cache
|
|||
return false;
|
||||
if (k1->m_num_bindings != k2->m_num_bindings)
|
||||
return false;
|
||||
for (unsigned i = 0; i < k1->m_num_bindings; i++)
|
||||
for (unsigned i = 0; i < k1->m_num_bindings; ++i)
|
||||
if (k1->m_bindings[i] != k2->m_bindings[i])
|
||||
return false;
|
||||
return true;
|
||||
|
|
@ -66,7 +66,7 @@ expr_ref cached_var_subst::operator()() {
|
|||
m_new_keys[num_bindings] = m_key; // recycle key
|
||||
result = entry->get_data().m_value;
|
||||
SCTRACE(bindings, is_trace_enabled(TraceTag::coming_from_quant), tout << "(cache)\n";
|
||||
for (unsigned i = 0; i < num_bindings; i++)
|
||||
for (unsigned i = 0; i < num_bindings; ++i)
|
||||
if (m_key->m_bindings[i])
|
||||
tout << i << ": " << mk_ismt2_pp(m_key->m_bindings[i], result.m()) << ";\n";
|
||||
tout.flush(););
|
||||
|
|
@ -92,7 +92,7 @@ expr_ref cached_var_subst::operator()() {
|
|||
|
||||
// increment reference counters
|
||||
m_refs.push_back(m_key->m_qa);
|
||||
for (unsigned i = 0; i < m_key->m_num_bindings; i++)
|
||||
for (unsigned i = 0; i < m_key->m_num_bindings; ++i)
|
||||
m_refs.push_back(m_key->m_bindings[i]);
|
||||
m_refs.push_back(result);
|
||||
return result;
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ void der::reduce1(quantifier * q, expr_ref & r, proof_ref & pr) {
|
|||
m_pos2var.reserve(num_args, -1);
|
||||
|
||||
// Find all equalities/disequalities
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr* arg = literals.get(i);
|
||||
is_eq = is_forall(q) ? is_var_diseq(arg, num_decls, v, t) : is_var_eq(arg, num_decls, v, t);
|
||||
if (is_eq) {
|
||||
|
|
@ -243,7 +243,7 @@ static void der_sort_vars(ptr_vector<var> & vars, expr_ref_vector & definitions,
|
|||
|
||||
// eliminate self loops, and definitions containing quantifiers.
|
||||
bool found = false;
|
||||
for (unsigned i = 0; i < definitions.size(); i++) {
|
||||
for (unsigned i = 0; i < definitions.size(); ++i) {
|
||||
var * v = vars[i];
|
||||
expr * t = definitions.get(i);
|
||||
if (t == nullptr || has_quantifiers(t) || occurs(v, t))
|
||||
|
|
@ -263,7 +263,7 @@ static void der_sort_vars(ptr_vector<var> & vars, expr_ref_vector & definitions,
|
|||
|
||||
unsigned vidx, num;
|
||||
|
||||
for (unsigned i = 0; i < definitions.size(); i++) {
|
||||
for (unsigned i = 0; i < definitions.size(); ++i) {
|
||||
if (!definitions.get(i))
|
||||
continue;
|
||||
var * v = vars[i];
|
||||
|
|
@ -362,7 +362,7 @@ void der::create_substitution(unsigned sz) {
|
|||
m_subst_map.reset();
|
||||
m_subst_map.resize(sz, nullptr);
|
||||
|
||||
for(unsigned i = 0; i < m_order.size(); i++) {
|
||||
for(unsigned i = 0; i < m_order.size(); ++i) {
|
||||
expr_ref cur(m_map.get(m_order[i]), m);
|
||||
|
||||
// do all the previous substitutions before inserting
|
||||
|
|
@ -379,7 +379,7 @@ void der::apply_substitution(quantifier * q, expr_ref_vector& literals, bool is_
|
|||
|
||||
// get a new expression
|
||||
m_new_args.reset();
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
int x = m_pos2var[i];
|
||||
if (x != -1 && m_map.get(x) != nullptr)
|
||||
continue; // this is a disequality with definition (vanishes)
|
||||
|
|
@ -393,11 +393,11 @@ void der::apply_substitution(quantifier * q, expr_ref_vector& literals, bool is_
|
|||
// don't forget to update the quantifier patterns
|
||||
expr_ref_buffer new_patterns(m);
|
||||
expr_ref_buffer new_no_patterns(m);
|
||||
for (unsigned j = 0; j < q->get_num_patterns(); j++) {
|
||||
for (unsigned j = 0; j < q->get_num_patterns(); ++j) {
|
||||
new_patterns.push_back(m_subst(q->get_pattern(j), m_subst_map.size(), m_subst_map.data()));
|
||||
}
|
||||
|
||||
for (unsigned j = 0; j < q->get_num_no_patterns(); j++) {
|
||||
for (unsigned j = 0; j < q->get_num_no_patterns(); ++j) {
|
||||
new_no_patterns.push_back(m_subst(q->get_no_pattern(j), m_subst_map.size(), m_subst_map.data()));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ void distribute_forall::reduce1_quantifier(quantifier * q) {
|
|||
app * or_e = to_app(to_app(e)->get_arg(0));
|
||||
unsigned num_args = or_e->get_num_args();
|
||||
expr_ref_buffer new_args(m_manager);
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * arg = or_e->get_arg(i);
|
||||
expr_ref not_arg(m_manager);
|
||||
br.mk_not(arg, not_arg);
|
||||
|
|
|
|||
|
|
@ -151,14 +151,14 @@ bool elim_bounds_cfg::reduce_quantifier(quantifier * q,
|
|||
}
|
||||
}
|
||||
}
|
||||
TRACE(elim_bounds, tout << "candidates:\n"; for (unsigned i = 0; i < candidates.size(); i++) tout << mk_pp(candidates[i], m) << "\n";);
|
||||
TRACE(elim_bounds, tout << "candidates:\n"; for (unsigned i = 0; i < candidates.size(); ++i) tout << mk_pp(candidates[i], m) << "\n";);
|
||||
// remove candidates that have lower and upper bounds
|
||||
|
||||
for (var * v : candidates) {
|
||||
if (lowers.contains(v) && uppers.contains(v))
|
||||
candidate_set.erase(v);
|
||||
}
|
||||
TRACE(elim_bounds, tout << "candidates after filter:\n"; for (unsigned i = 0; i < candidates.size(); i++) tout << mk_pp(candidates[i], m) << "\n";);
|
||||
TRACE(elim_bounds, tout << "candidates after filter:\n"; for (unsigned i = 0; i < candidates.size(); ++i) tout << mk_pp(candidates[i], m) << "\n";);
|
||||
if (candidate_set.empty()) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ bool simplify_inj_axiom(ast_manager & m, quantifier * q, expr_ref & result) {
|
|||
unsigned num = f1->get_num_args();
|
||||
unsigned idx = UINT_MAX;
|
||||
unsigned num_vars = 1;
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
expr * c1 = f1->get_arg(i);
|
||||
expr * c2 = f2->get_arg(i);
|
||||
if (!is_var(c1) && !is_uninterp_const(c1))
|
||||
|
|
@ -86,7 +86,7 @@ bool simplify_inj_axiom(ast_manager & m, quantifier * q, expr_ref & result) {
|
|||
buffer<symbol> names;
|
||||
|
||||
expr * var = nullptr;
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
expr * c = f1->get_arg(i);
|
||||
if (is_var(c)) {
|
||||
names.push_back(symbol(i));
|
||||
|
|
|
|||
|
|
@ -56,11 +56,11 @@ struct macro_replacer::macro_replacer_cfg : public default_rewriter_cfg {
|
|||
proof_ref& result_pr) {
|
||||
|
||||
bool erase_patterns = false;
|
||||
for (unsigned i = 0; !erase_patterns && i < old_q->get_num_patterns(); i++)
|
||||
for (unsigned i = 0; !erase_patterns && i < old_q->get_num_patterns(); ++i)
|
||||
if (old_q->get_pattern(i) != new_patterns[i])
|
||||
erase_patterns = true;
|
||||
|
||||
for (unsigned i = 0; !erase_patterns && i < old_q->get_num_no_patterns(); i++)
|
||||
for (unsigned i = 0; !erase_patterns && i < old_q->get_num_no_patterns(); ++i)
|
||||
if (old_q->get_no_pattern(i) != new_no_patterns[i])
|
||||
erase_patterns = true;
|
||||
|
||||
|
|
@ -86,7 +86,7 @@ struct macro_replacer::macro_replacer_cfg : public default_rewriter_cfg {
|
|||
unsigned num = head->get_num_args();
|
||||
ptr_buffer<expr> subst_args;
|
||||
subst_args.resize(num, 0);
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
var* v = to_var(head->get_arg(i));
|
||||
VERIFY(v->get_idx() < num);
|
||||
unsigned nidx = num - v->get_idx() - 1;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ br_status maximize_ac_sharing::reduce_app(func_decl * f, unsigned num_args, expr
|
|||
expr * numeral = nullptr;
|
||||
if (is_numeral(args[0])) {
|
||||
numeral = args[0];
|
||||
for (unsigned i = 1; i < num_args; i++)
|
||||
for (unsigned i = 1; i < num_args; ++i)
|
||||
_args.push_back(args[i]);
|
||||
num_args--;
|
||||
}
|
||||
|
|
@ -51,16 +51,16 @@ br_status maximize_ac_sharing::reduce_app(func_decl * f, unsigned num_args, expr
|
|||
#define MAX_NUM_ARGS_FOR_OPT 128
|
||||
|
||||
// Try to reuse already created circuits.
|
||||
TRACE(ac_sharing_detail, tout << "args: "; for (unsigned i = 0; i < num_args; i++) tout << mk_pp(_args[i], m) << "\n";);
|
||||
TRACE(ac_sharing_detail, tout << "args: "; for (unsigned i = 0; i < num_args; ++i) tout << mk_pp(_args[i], m) << "\n";);
|
||||
try_to_reuse:
|
||||
if (num_args > 1 && num_args < MAX_NUM_ARGS_FOR_OPT) {
|
||||
for (unsigned i = 0; i + 1 < num_args; i++) {
|
||||
for (unsigned j = i + 1; j < num_args; j++) {
|
||||
for (unsigned i = 0; i + 1 < num_args; ++i) {
|
||||
for (unsigned j = i + 1; j < num_args; ++j) {
|
||||
if (contains(f, _args[i], _args[j])) {
|
||||
TRACE(ac_sharing_detail, tout << "reusing args: " << i << " " << j << "\n";);
|
||||
_args[i] = m.mk_app(f, _args[i], _args[j]);
|
||||
SASSERT(num_args > 1);
|
||||
for (unsigned w = j; w + 1 < num_args; w++) {
|
||||
for (unsigned w = j; w + 1 < num_args; ++w) {
|
||||
_args[w] = _args[w+1];
|
||||
}
|
||||
num_args--;
|
||||
|
|
@ -75,7 +75,7 @@ br_status maximize_ac_sharing::reduce_app(func_decl * f, unsigned num_args, expr
|
|||
while (true) {
|
||||
TRACE(ac_sharing_detail, tout << "tree-loop: num_args: " << num_args << "\n";);
|
||||
unsigned j = 0;
|
||||
for (unsigned i = 0; i < num_args; i += 2, j++) {
|
||||
for (unsigned i = 0; i < num_args; i += 2, ++j) {
|
||||
if (i == num_args - 1) {
|
||||
_args[j] = _args[i];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ expr * poly_rewriter<Config>::mk_mul_app(unsigned num_args, expr * const * args)
|
|||
new_args.push_back(this->mk_power(prev, k_prev, s));
|
||||
};
|
||||
|
||||
for (unsigned i = 1; i < num_args; i++) {
|
||||
for (unsigned i = 1; i < num_args; ++i) {
|
||||
expr * arg = get_power_body(args[i], k);
|
||||
if (arg == prev) {
|
||||
k_prev += k;
|
||||
|
|
@ -154,7 +154,7 @@ br_status poly_rewriter<Config>::mk_flat_mul_core(unsigned num_args, expr * cons
|
|||
// - (* c (* x_1 ... x_n))
|
||||
if (num_args != 2 || !is_numeral(args[0]) || (is_mul(args[1]) && is_numeral(to_app(args[1])->get_arg(0)))) {
|
||||
unsigned i;
|
||||
for (i = 0; i < num_args; i++) {
|
||||
for (i = 0; i < num_args; ++i) {
|
||||
if (is_mul(args[i]))
|
||||
break;
|
||||
}
|
||||
|
|
@ -164,7 +164,7 @@ br_status poly_rewriter<Config>::mk_flat_mul_core(unsigned num_args, expr * cons
|
|||
// we need the todo buffer to handle: (* (* c (* x_1 ... x_n)) (* d (* y_1 ... y_n)))
|
||||
ptr_buffer<expr> todo;
|
||||
flat_args.append(i, args);
|
||||
for (unsigned j = i; j < num_args; j++) {
|
||||
for (unsigned j = i; j < num_args; ++j) {
|
||||
if (is_mul(args[j])) {
|
||||
todo.push_back(args[j]);
|
||||
while (!todo.empty()) {
|
||||
|
|
@ -189,9 +189,9 @@ br_status poly_rewriter<Config>::mk_flat_mul_core(unsigned num_args, expr * cons
|
|||
br_status st = mk_nflat_mul_core(flat_args.size(), flat_args.data(), result);
|
||||
TRACE(poly_rewriter,
|
||||
tout << "flat mul:\n";
|
||||
for (unsigned i = 0; i < num_args; i++) tout << mk_bounded_pp(args[i], M()) << "\n";
|
||||
for (unsigned i = 0; i < num_args; ++i) tout << mk_bounded_pp(args[i], M()) << "\n";
|
||||
tout << "---->\n";
|
||||
for (unsigned i = 0; i < flat_args.size(); i++) tout << mk_bounded_pp(flat_args[i], M()) << "\n";
|
||||
for (unsigned i = 0; i < flat_args.size(); ++i) tout << mk_bounded_pp(flat_args[i], M()) << "\n";
|
||||
tout << st << "\n";
|
||||
);
|
||||
if (st == BR_FAILED) {
|
||||
|
|
@ -218,7 +218,7 @@ br_status poly_rewriter<Config>::mk_nflat_mul_core(unsigned num_args, expr * con
|
|||
unsigned num_coeffs = 0;
|
||||
unsigned num_add = 0;
|
||||
expr * var = nullptr;
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (is_numeral(arg, a)) {
|
||||
num_coeffs++;
|
||||
|
|
@ -288,7 +288,7 @@ br_status poly_rewriter<Config>::mk_nflat_mul_core(unsigned num_args, expr * con
|
|||
// (* c_1 ... c_n (+ t_1 ... t_m)) --> (+ (* c_1*...*c_n t_1) ... (* c_1*...*c_n t_m))
|
||||
ptr_buffer<expr> new_add_args;
|
||||
unsigned num = to_app(var)->get_num_args();
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
new_add_args.push_back(mk_mul_app(c, to_app(var)->get_arg(i)));
|
||||
}
|
||||
result = mk_add_app(new_add_args.size(), new_add_args.data());
|
||||
|
|
@ -315,7 +315,7 @@ br_status poly_rewriter<Config>::mk_nflat_mul_core(unsigned num_args, expr * con
|
|||
ptr_buffer<expr> new_args;
|
||||
expr * prev = nullptr;
|
||||
bool ordered = true;
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * curr = args[i];
|
||||
if (is_numeral(curr))
|
||||
continue;
|
||||
|
|
@ -325,7 +325,7 @@ br_status poly_rewriter<Config>::mk_nflat_mul_core(unsigned num_args, expr * con
|
|||
prev = curr;
|
||||
}
|
||||
TRACE(poly_rewriter,
|
||||
for (unsigned i = 0; i < new_args.size(); i++) {
|
||||
for (unsigned i = 0; i < new_args.size(); ++i) {
|
||||
if (i > 0)
|
||||
tout << (lt(new_args[i-1], new_args[i]) ? " < " : " !< ");
|
||||
tout << mk_ismt2_pp(new_args[i], M());
|
||||
|
|
@ -337,7 +337,7 @@ br_status poly_rewriter<Config>::mk_nflat_mul_core(unsigned num_args, expr * con
|
|||
std::sort(new_args.begin(), new_args.end(), lt);
|
||||
TRACE(poly_rewriter,
|
||||
tout << "after sorting:\n";
|
||||
for (unsigned i = 0; i < new_args.size(); i++) {
|
||||
for (unsigned i = 0; i < new_args.size(); ++i) {
|
||||
if (i > 0)
|
||||
tout << (lt(new_args[i-1], new_args[i]) ? " < " : " !< ");
|
||||
tout << mk_ismt2_pp(new_args[i], M());
|
||||
|
|
@ -377,13 +377,13 @@ br_status poly_rewriter<Config>::mk_nflat_mul_core(unsigned num_args, expr * con
|
|||
ptr_buffer<expr> m_args;
|
||||
TRACE(som, tout << "starting soM()...\n";);
|
||||
do {
|
||||
TRACE(som, for (unsigned i = 0; i < it.size(); i++) tout << it[i] << " ";
|
||||
TRACE(som, for (unsigned i = 0; i < it.size(); ++i) tout << it[i] << " ";
|
||||
tout << "\n";);
|
||||
if (sum.size() > m_som_blowup * orig_size) {
|
||||
return BR_FAILED;
|
||||
}
|
||||
m_args.reset();
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * const * v = sums[i];
|
||||
expr * arg = v[it[i]];
|
||||
m_args.push_back(arg);
|
||||
|
|
@ -398,7 +398,7 @@ br_status poly_rewriter<Config>::mk_nflat_mul_core(unsigned num_args, expr * con
|
|||
template<typename Config>
|
||||
br_status poly_rewriter<Config>::mk_flat_add_core(unsigned num_args, expr * const * args, expr_ref & result) {
|
||||
unsigned i;
|
||||
for (i = 0; i < num_args; i++) {
|
||||
for (i = 0; i < num_args; ++i) {
|
||||
if (is_add(args[i]))
|
||||
break;
|
||||
}
|
||||
|
|
@ -406,12 +406,12 @@ br_status poly_rewriter<Config>::mk_flat_add_core(unsigned num_args, expr * cons
|
|||
// has nested ADDs
|
||||
ptr_buffer<expr> flat_args;
|
||||
flat_args.append(i, args);
|
||||
for (; i < num_args; i++) {
|
||||
for (; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
// Remark: all rewrites are depth 1.
|
||||
if (is_add(arg)) {
|
||||
unsigned num = to_app(arg)->get_num_args();
|
||||
for (unsigned j = 0; j < num; j++)
|
||||
for (unsigned j = 0; j < num; ++j)
|
||||
flat_args.push_back(to_app(arg)->get_arg(j));
|
||||
}
|
||||
else {
|
||||
|
|
@ -538,7 +538,7 @@ br_status poly_rewriter<Config>::mk_nflat_add_core(unsigned num_args, expr * con
|
|||
bool has_multiple = false;
|
||||
expr * prev = nullptr;
|
||||
bool ordered = true;
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
|
||||
if (is_numeral(arg, a)) {
|
||||
|
|
@ -566,14 +566,14 @@ br_status poly_rewriter<Config>::mk_nflat_add_core(unsigned num_args, expr * con
|
|||
SASSERT(m_sort_sums || ordered);
|
||||
TRACE(rewriter,
|
||||
tout << "ordered: " << ordered << " sort sums: " << m_sort_sums << "\n";
|
||||
for (unsigned i = 0; i < num_args; i++) tout << mk_ismt2_pp(args[i], M()) << "\n";);
|
||||
for (unsigned i = 0; i < num_args; ++i) tout << mk_ismt2_pp(args[i], M()) << "\n";);
|
||||
|
||||
if (has_multiple) {
|
||||
// expensive case
|
||||
buffer<numeral> coeffs;
|
||||
m_expr2pos.reset();
|
||||
// compute the coefficient of power products that occur multiple times.
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (is_numeral(arg))
|
||||
continue;
|
||||
|
|
@ -595,7 +595,7 @@ br_status poly_rewriter<Config>::mk_nflat_add_core(unsigned num_args, expr * con
|
|||
}
|
||||
// copy power products with non zero coefficients to new_args
|
||||
visited.reset();
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (is_numeral(arg))
|
||||
continue;
|
||||
|
|
@ -642,7 +642,7 @@ br_status poly_rewriter<Config>::mk_nflat_add_core(unsigned num_args, expr * con
|
|||
expr_ref_buffer new_args(M());
|
||||
if (!c.is_zero())
|
||||
new_args.push_back(mk_numeral(c));
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
expr * arg = args[i];
|
||||
if (is_numeral(arg))
|
||||
continue;
|
||||
|
|
@ -693,7 +693,7 @@ br_status poly_rewriter<Config>::mk_sub(unsigned num_args, expr * const * args,
|
|||
expr_ref minus_one(mk_numeral(numeral(-1)), M());
|
||||
expr_ref_buffer new_args(M());
|
||||
new_args.push_back(args[0]);
|
||||
for (unsigned i = 1; i < num_args; i++) {
|
||||
for (unsigned i = 1; i < num_args; ++i) {
|
||||
if (is_zero(args[i])) continue;
|
||||
expr * aux_args[2] = { minus_one, args[i] };
|
||||
new_args.push_back(mk_mul_app(2, aux_args));
|
||||
|
|
@ -724,7 +724,7 @@ br_status poly_rewriter<Config>::cancel_monomials(expr * lhs, expr * rhs, bool m
|
|||
numeral a;
|
||||
unsigned num_coeffs = 0;
|
||||
|
||||
for (unsigned i = 0; i < lhs_sz; i++) {
|
||||
for (unsigned i = 0; i < lhs_sz; ++i) {
|
||||
expr * arg = lhs_monomials[i];
|
||||
if (is_numeral(arg, a)) {
|
||||
c += a;
|
||||
|
|
@ -739,7 +739,7 @@ br_status poly_rewriter<Config>::cancel_monomials(expr * lhs, expr * rhs, bool m
|
|||
return BR_FAILED;
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < rhs_sz; i++) {
|
||||
for (unsigned i = 0; i < rhs_sz; ++i) {
|
||||
expr * arg = rhs_monomials[i];
|
||||
if (is_numeral(arg, a)) {
|
||||
c -= a;
|
||||
|
|
@ -771,7 +771,7 @@ br_status poly_rewriter<Config>::cancel_monomials(expr * lhs, expr * rhs, bool m
|
|||
|
||||
buffer<numeral> coeffs;
|
||||
m_expr2pos.reset();
|
||||
for (unsigned i = 0; i < lhs_sz; i++) {
|
||||
for (unsigned i = 0; i < lhs_sz; ++i) {
|
||||
expr * arg = lhs_monomials[i];
|
||||
if (is_numeral(arg))
|
||||
continue;
|
||||
|
|
@ -788,7 +788,7 @@ br_status poly_rewriter<Config>::cancel_monomials(expr * lhs, expr * rhs, bool m
|
|||
}
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < rhs_sz; i++) {
|
||||
for (unsigned i = 0; i < rhs_sz; ++i) {
|
||||
expr * arg = rhs_monomials[i];
|
||||
if (is_numeral(arg))
|
||||
continue;
|
||||
|
|
@ -806,7 +806,7 @@ br_status poly_rewriter<Config>::cancel_monomials(expr * lhs, expr * rhs, bool m
|
|||
new_lhs_monomials.push_back(0); // save space for coefficient if needed
|
||||
// copy power products with non zero coefficients to new_lhs_monomials
|
||||
visited.reset();
|
||||
for (unsigned i = 0; i < lhs_sz; i++) {
|
||||
for (unsigned i = 0; i < lhs_sz; ++i) {
|
||||
expr * arg = lhs_monomials[i];
|
||||
if (is_numeral(arg))
|
||||
continue;
|
||||
|
|
@ -827,7 +827,7 @@ br_status poly_rewriter<Config>::cancel_monomials(expr * lhs, expr * rhs, bool m
|
|||
|
||||
ptr_buffer<expr> new_rhs_monomials;
|
||||
new_rhs_monomials.push_back(0); // save space for coefficient if needed
|
||||
for (unsigned i = 0; i < rhs_sz; i++) {
|
||||
for (unsigned i = 0; i < rhs_sz; ++i) {
|
||||
expr * arg = rhs_monomials[i];
|
||||
if (is_numeral(arg))
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ Revision History:
|
|||
|
||||
|
||||
static int has_ite_arg(ast_manager& m, unsigned num_args, expr * const * args) {
|
||||
for (unsigned i = 0; i < num_args; i++)
|
||||
for (unsigned i = 0; i < num_args; ++i)
|
||||
if (m.is_ite(args[i]))
|
||||
return i;
|
||||
return -1;
|
||||
|
|
@ -37,7 +37,7 @@ bool push_app_ite_cfg::is_target(func_decl * decl, unsigned num_args, expr * con
|
|||
if (m.is_ite(decl))
|
||||
return false;
|
||||
bool found_ite = false;
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
if (m.is_ite(args[i]) && !m.is_bool(args[i])) {
|
||||
if (found_ite) {
|
||||
if (m_conservative)
|
||||
|
|
@ -51,7 +51,7 @@ bool push_app_ite_cfg::is_target(func_decl * decl, unsigned num_args, expr * con
|
|||
CTRACE(push_app_ite, found_ite, tout << "found target for push app ite:\n";
|
||||
tout << "conservative " << m_conservative << "\n";
|
||||
tout << decl->get_name();
|
||||
for (unsigned i = 0; i < num_args; i++) tout << " " << mk_pp(args[i], m);
|
||||
for (unsigned i = 0; i < num_args; ++i) tout << " " << mk_pp(args[i], m);
|
||||
tout << "\n";);
|
||||
return found_ite;
|
||||
}
|
||||
|
|
@ -86,7 +86,7 @@ bool ng_push_app_ite_cfg::is_target(func_decl * decl, unsigned num_args, expr *
|
|||
bool r = push_app_ite_cfg::is_target(decl, num_args, args);
|
||||
if (!r)
|
||||
return false;
|
||||
for (unsigned i = 0; i < num_args; i++)
|
||||
for (unsigned i = 0; i < num_args; ++i)
|
||||
if (!is_ground(args[i]))
|
||||
return true;
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -151,14 +151,14 @@ bool rewriter_core::is_child_of_top_frame(expr * t) const {
|
|||
switch (parent->get_kind()) {
|
||||
case AST_APP:
|
||||
num = to_app(parent)->get_num_args();
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
if (to_app(parent)->get_arg(i) == t)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
case AST_QUANTIFIER:
|
||||
num = to_quantifier(parent)->get_num_children();
|
||||
for (unsigned i = 0; i < num; i++) {
|
||||
for (unsigned i = 0; i < num; ++i) {
|
||||
if (to_quantifier(parent)->get_child(i) == t)
|
||||
return true;
|
||||
}
|
||||
|
|
@ -177,7 +177,7 @@ void rewriter_core::elim_reflex_prs(unsigned spos) {
|
|||
unsigned sz = m_result_pr_stack.size();
|
||||
SASSERT(spos <= sz);
|
||||
unsigned j = spos;
|
||||
for (unsigned i = spos; i < sz; i++) {
|
||||
for (unsigned i = spos; i < sz; ++i) {
|
||||
proof * pr = m_result_pr_stack.get(i);
|
||||
if (pr != nullptr) {
|
||||
if (i != j)
|
||||
|
|
|
|||
|
|
@ -427,7 +427,7 @@ void rewriter_tpl<Config>::process_app(app * t, frame & fr) {
|
|||
fr.m_state = EXPAND_DEF;
|
||||
TRACE(get_macro, tout << "f: " << f->get_name() << ", def: \n" << mk_ismt2_pp(def, m()) << "\n";
|
||||
tout << "Args num: " << num_args << "\n";
|
||||
for (unsigned i = 0; i < num_args; i++) tout << mk_ismt2_pp(new_args[i], m()) << "\n";);
|
||||
for (unsigned i = 0; i < num_args; ++i) tout << mk_ismt2_pp(new_args[i], m()) << "\n";);
|
||||
unsigned sz = m_bindings.size();
|
||||
unsigned i = num_args;
|
||||
while (i > 0) {
|
||||
|
|
@ -535,7 +535,7 @@ void rewriter_tpl<Config>::process_quantifier(quantifier * q, frame & fr) {
|
|||
begin_scope();
|
||||
m_root = q->get_expr();
|
||||
unsigned sz = m_bindings.size();
|
||||
for (unsigned i = 0; i < num_decls; i++) {
|
||||
for (unsigned i = 0; i < num_decls; ++i) {
|
||||
m_bindings.push_back(nullptr);
|
||||
m_shifts.push_back(sz);
|
||||
}
|
||||
|
|
@ -561,13 +561,13 @@ void rewriter_tpl<Config>::process_quantifier(quantifier * q, frame & fr) {
|
|||
expr * const * np = it + 1;
|
||||
expr * const * nnp = np + num_pats;
|
||||
unsigned j = 0;
|
||||
for (unsigned i = 0; i < num_pats; i++)
|
||||
for (unsigned i = 0; i < num_pats; ++i)
|
||||
if (m_manager.is_pattern(np[i]))
|
||||
new_pats[j++] = np[i];
|
||||
new_pats.shrink(j);
|
||||
num_pats = j;
|
||||
j = 0;
|
||||
for (unsigned i = 0; i < num_no_pats; i++)
|
||||
for (unsigned i = 0; i < num_no_pats; ++i)
|
||||
if (m_manager.is_pattern(nnp[i]))
|
||||
new_no_pats[j++] = nnp[i];
|
||||
new_no_pats.shrink(j);
|
||||
|
|
@ -662,7 +662,7 @@ void rewriter_tpl<Config>::cleanup() {
|
|||
|
||||
template<typename Config>
|
||||
void rewriter_tpl<Config>::display_bindings(std::ostream& out) {
|
||||
for (unsigned i = 0; i < m_bindings.size(); i++) {
|
||||
for (unsigned i = 0; i < m_bindings.size(); ++i) {
|
||||
if (m_bindings[i])
|
||||
out << i << ": " << mk_ismt2_pp(m_bindings[i], m()) << ";\n";
|
||||
}
|
||||
|
|
@ -690,7 +690,7 @@ void rewriter_tpl<Config>::set_inv_bindings(unsigned num_bindings, expr * const
|
|||
SASSERT(not_rewriting());
|
||||
m_bindings.reset();
|
||||
m_shifts.reset();
|
||||
for (unsigned i = 0; i < num_bindings; i++) {
|
||||
for (unsigned i = 0; i < num_bindings; ++i) {
|
||||
m_bindings.push_back(bindings[i]);
|
||||
m_shifts.push_back(num_bindings);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4335,7 +4335,7 @@ br_status seq_rewriter::mk_str_in_regexp(expr* a, expr* b, expr_ref& result) {
|
|||
if (str().is_string(a, s) && re().is_ground(b)) {
|
||||
// Just check membership and replace by true/false
|
||||
expr_ref r(b, m());
|
||||
for (unsigned i = 0; i < s.length(); i++) {
|
||||
for (unsigned i = 0; i < s.length(); ++i) {
|
||||
if (re().is_empty(r)) {
|
||||
result = m().mk_false();
|
||||
return BR_DONE;
|
||||
|
|
|
|||
|
|
@ -461,11 +461,11 @@ struct th_rewriter_cfg : public default_rewriter_cfg {
|
|||
new_t2 = nullptr;
|
||||
expr_fast_mark1 visited1;
|
||||
expr_fast_mark2 visited2;
|
||||
for (unsigned i = 0; i < num1; i++) {
|
||||
for (unsigned i = 0; i < num1; ++i) {
|
||||
expr * arg = ms1[i];
|
||||
visited1.mark(arg);
|
||||
}
|
||||
for (unsigned i = 0; i < num2; i++) {
|
||||
for (unsigned i = 0; i < num2; ++i) {
|
||||
expr * arg = ms2[i];
|
||||
visited2.mark(arg);
|
||||
if (visited1.is_marked(arg))
|
||||
|
|
@ -474,7 +474,7 @@ struct th_rewriter_cfg : public default_rewriter_cfg {
|
|||
return false; // more than one missing term
|
||||
new_t2 = arg;
|
||||
}
|
||||
for (unsigned i = 0; i < num1; i++) {
|
||||
for (unsigned i = 0; i < num1; ++i) {
|
||||
expr * arg = ms1[i];
|
||||
if (visited2.is_marked(arg))
|
||||
continue;
|
||||
|
|
@ -490,7 +490,7 @@ struct th_rewriter_cfg : public default_rewriter_cfg {
|
|||
new_t2 = m_a_util.mk_numeral(rational::zero(), is_int);
|
||||
// mk common part
|
||||
ptr_buffer<expr> args;
|
||||
for (unsigned i = 0; i < num1; i++) {
|
||||
for (unsigned i = 0; i < num1; ++i) {
|
||||
expr * arg = ms1[i];
|
||||
if (arg == new_t1.get())
|
||||
continue;
|
||||
|
|
@ -639,7 +639,7 @@ struct th_rewriter_cfg : public default_rewriter_cfg {
|
|||
if (st != BR_DONE && st != BR_FAILED) {
|
||||
CTRACE(th_rewriter_step, st != BR_FAILED,
|
||||
tout << f->get_name() << "\n";
|
||||
for (unsigned i = 0; i < num; i++) tout << mk_ismt2_pp(args[i], m()) << "\n";
|
||||
for (unsigned i = 0; i < num; ++i) tout << mk_ismt2_pp(args[i], m()) << "\n";
|
||||
tout << "---------->\n" << mk_ismt2_pp(result, m()) << "\n";);
|
||||
return st;
|
||||
}
|
||||
|
|
@ -661,7 +661,7 @@ struct th_rewriter_cfg : public default_rewriter_cfg {
|
|||
|
||||
CTRACE(th_rewriter_step, st != BR_FAILED,
|
||||
tout << f->get_name() << "\n";
|
||||
for (unsigned i = 0; i < num; i++) tout << mk_ismt2_pp(args[i], m()) << "\n";
|
||||
for (unsigned i = 0; i < num; ++i) tout << mk_ismt2_pp(args[i], m()) << "\n";
|
||||
tout << "---------->\n" << mk_ismt2_pp(result, m()) << "\n";);
|
||||
return st;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ expr_ref var_subst::operator()(expr * n, unsigned num_args, expr * const * args)
|
|||
//There is no need to print the bindings here?
|
||||
SCTRACE(bindings, is_trace_enabled(TraceTag::coming_from_quant),
|
||||
tout << "(ground)\n";
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
for (unsigned i = 0; i < num_args; ++i) {
|
||||
if (args[i]) {
|
||||
tout << i << ": " << mk_ismt2_pp(args[i], result.m()) << ";\n";
|
||||
}
|
||||
|
|
@ -80,7 +80,7 @@ expr_ref var_subst::operator()(expr * n, unsigned num_args, expr * const * args)
|
|||
SASSERT(is_well_sorted(m, result));
|
||||
TRACE(var_subst_bug,
|
||||
tout << "m_std_order: " << m_std_order << "\n" << mk_ismt2_pp(n, m) << "\nusing\n";
|
||||
for (unsigned i = 0; i < num_args; i++) tout << mk_ismt2_pp(args[i], m) << "\n";
|
||||
for (unsigned i = 0; i < num_args; ++i) tout << mk_ismt2_pp(args[i], m) << "\n";
|
||||
tout << "\n------>\n";
|
||||
tout << result << "\n";);
|
||||
return result;
|
||||
|
|
@ -114,10 +114,10 @@ expr_ref unused_vars_eliminator::operator()(quantifier* q) {
|
|||
m_used.set_num_decls(num_decls);
|
||||
m_used.process(q->get_expr());
|
||||
unsigned num_patterns = q->get_num_patterns();
|
||||
for (unsigned i = 0; i < num_patterns; i++)
|
||||
for (unsigned i = 0; i < num_patterns; ++i)
|
||||
m_used.process(q->get_pattern(i));
|
||||
unsigned num_no_patterns = q->get_num_no_patterns();
|
||||
for (unsigned i = 0; i < num_no_patterns; i++)
|
||||
for (unsigned i = 0; i < num_no_patterns; ++i)
|
||||
m_used.process(q->get_no_pattern(i));
|
||||
|
||||
|
||||
|
|
@ -154,7 +154,7 @@ expr_ref unused_vars_eliminator::operator()(quantifier* q) {
|
|||
}
|
||||
// (VAR 0) is in the first position of var_mapping.
|
||||
|
||||
for (unsigned i = num_decls; i < sz; i++) {
|
||||
for (unsigned i = num_decls; i < sz; ++i) {
|
||||
sort * s = m_used.contains(i);
|
||||
if (s)
|
||||
var_mapping.push_back(m.mk_var(i - num_removed, s));
|
||||
|
|
@ -180,10 +180,10 @@ expr_ref unused_vars_eliminator::operator()(quantifier* q) {
|
|||
expr_ref_buffer new_patterns(m);
|
||||
expr_ref_buffer new_no_patterns(m);
|
||||
|
||||
for (unsigned i = 0; i < num_patterns; i++) {
|
||||
for (unsigned i = 0; i < num_patterns; ++i) {
|
||||
new_patterns.push_back(m_subst(q->get_pattern(i), var_mapping.size(), var_mapping.data()));
|
||||
}
|
||||
for (unsigned i = 0; i < num_no_patterns; i++) {
|
||||
for (unsigned i = 0; i < num_no_patterns; ++i) {
|
||||
new_no_patterns.push_back(m_subst(q->get_no_pattern(i), var_mapping.size(), var_mapping.data()));
|
||||
}
|
||||
|
||||
|
|
@ -220,7 +220,7 @@ expr_ref instantiate(ast_manager & m, quantifier * q, expr * const * exprs) {
|
|||
shift(new_expr, q->get_num_decls(), result);
|
||||
SASSERT(is_well_sorted(m, result));
|
||||
TRACE(instantiate_bug, tout << mk_ismt2_pp(q, m) << "\nusing\n";
|
||||
for (unsigned i = 0; i < q->get_num_decls(); i++) tout << mk_ismt2_pp(exprs[i], m) << "\n";
|
||||
for (unsigned i = 0; i < q->get_num_decls(); ++i) tout << mk_ismt2_pp(exprs[i], m) << "\n";
|
||||
tout << "\n----->\n" << mk_ismt2_pp(result, m) << "\n";);
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue