mirror of
https://github.com/Z3Prover/z3
synced 2025-07-19 10:52:02 +00:00
fixing conca
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
39eaf62040
commit
27e3d28cfc
2 changed files with 9 additions and 8 deletions
|
@ -362,9 +362,9 @@ namespace sls {
|
||||||
}
|
}
|
||||||
case OP_CONCAT: {
|
case OP_CONCAT: {
|
||||||
unsigned bw = 0;
|
unsigned bw = 0;
|
||||||
for (unsigned i = e->get_num_args(); i-- > 0; ) {
|
for (unsigned i = e->get_num_args(); i-- > 0;) {
|
||||||
auto const& a = wval(e->get_arg(i));
|
auto const& a = wval(e->get_arg(i));
|
||||||
for (unsigned j = 0; false && j < a.bw; ++j)
|
for (unsigned j = 0; j < a.bw; ++j)
|
||||||
val.eval.set(j + bw, a.get_bit(j));
|
val.eval.set(j + bw, a.get_bit(j));
|
||||||
bw += a.bw;
|
bw += a.bw;
|
||||||
}
|
}
|
||||||
|
@ -656,7 +656,7 @@ namespace sls {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool bv_eval::repair_down(app* e, unsigned i) {
|
bool bv_eval::repair_down(app* e, unsigned i) {
|
||||||
expr* arg = e->get_arg(i);
|
expr* arg = e->get_arg(i);
|
||||||
if (m.is_value(arg))
|
if (m.is_value(arg))
|
||||||
return false;
|
return false;
|
||||||
|
@ -1838,6 +1838,7 @@ namespace sls {
|
||||||
auto& ve = assign_value(e);
|
auto& ve = assign_value(e);
|
||||||
for (unsigned j = e->get_num_args() - 1; j > idx; --j)
|
for (unsigned j = e->get_num_args() - 1; j > idx; --j)
|
||||||
bw += bv.get_bv_size(e->get_arg(j));
|
bw += bv.get_bv_size(e->get_arg(j));
|
||||||
|
//verbose_stream() << m_bounded_pp(e, m) << " " << idx << " " << bw << "\n";
|
||||||
auto& a = wval(e, idx);
|
auto& a = wval(e, idx);
|
||||||
for (unsigned i = 0; i < a.bw; ++i)
|
for (unsigned i = 0; i < a.bw; ++i)
|
||||||
m_tmp.set(i, ve.get(i + bw));
|
m_tmp.set(i, ve.get(i + bw));
|
||||||
|
|
|
@ -28,11 +28,11 @@ namespace sls {
|
||||||
class bv_eval;
|
class bv_eval;
|
||||||
|
|
||||||
class bv_fixed {
|
class bv_fixed {
|
||||||
bv_eval& ev;
|
bv_eval& ev;
|
||||||
bv_terms& terms;
|
bv_terms& terms;
|
||||||
ast_manager& m;
|
ast_manager& m;
|
||||||
bv_util& bv;
|
bv_util& bv;
|
||||||
sls::context& ctx;
|
sls::context& ctx;
|
||||||
|
|
||||||
bool init_range(app* e, bool sign);
|
bool init_range(app* e, bool sign);
|
||||||
void propagate_range_up(expr* e);
|
void propagate_range_up(expr* e);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue