mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 04:03:39 +00:00
fix initialization of mod terms
This commit is contained in:
parent
fd5f5feb40
commit
632e2b56e4
|
@ -504,8 +504,8 @@ namespace sls {
|
||||||
add_update(mk_term(e), delta_out);
|
add_update(mk_term(e), delta_out);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!is_uninterp(vi.m_expr) && m_allow_recursive_delta)
|
IF_VERBOSE(3, if (!is_uninterp(vi.m_expr) && m_allow_recursive_delta)
|
||||||
verbose_stream() << mk_bounded_pp(vi.m_expr, m) << " += " << delta_out << "\n";
|
verbose_stream() << mk_bounded_pp(vi.m_expr, m) << " += " << delta_out << "\n");
|
||||||
m_updates.push_back({ v, delta_out, 0 });
|
m_updates.push_back({ v, delta_out, 0 });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1027,7 +1027,7 @@ namespace sls {
|
||||||
num_t val;
|
num_t val;
|
||||||
switch (k) {
|
switch (k) {
|
||||||
case arith_op_kind::OP_MOD:
|
case arith_op_kind::OP_MOD:
|
||||||
val = value(vy) == 0 ? num_t(0) : mod(value(v), value(vy));
|
val = value(vy) == 0 ? num_t(0) : mod(value(vx), value(vy));
|
||||||
break;
|
break;
|
||||||
case arith_op_kind::OP_REM:
|
case arith_op_kind::OP_REM:
|
||||||
if (value(vy) == 0)
|
if (value(vy) == 0)
|
||||||
|
@ -1063,7 +1063,7 @@ namespace sls {
|
||||||
m_vars[v].m_op = k;
|
m_vars[v].m_op = k;
|
||||||
m_vars[v].set_value(val);
|
m_vars[v].set_value(val);
|
||||||
m_vars[vx].m_ops.push_back(v);
|
m_vars[vx].m_ops.push_back(v);
|
||||||
TRACE("arith", display(tout << "initialize op ", v) << " " << value(vx) << " " << value(vy) << "\n");
|
TRACE("arith", display(tout << "initialize op ", v) << " " << value(vx) << " op " << value(vy) << "\n");
|
||||||
if (vy != vx)
|
if (vy != vx)
|
||||||
m_vars[vy].m_ops.push_back(v);
|
m_vars[vy].m_ops.push_back(v);
|
||||||
return v;
|
return v;
|
||||||
|
@ -1374,7 +1374,7 @@ namespace sls {
|
||||||
if (!vi.is_arith_op())
|
if (!vi.is_arith_op())
|
||||||
return false;
|
return false;
|
||||||
flet<bool> _tabu(m_use_tabu, false);
|
flet<bool> _tabu(m_use_tabu, false);
|
||||||
TRACE("sls", tout << "repair def " << mk_bounded_pp(vi.m_expr, m) << "\n");
|
TRACE("sls_verbose", tout << "repair def " << mk_bounded_pp(vi.m_expr, m) << "\n");
|
||||||
switch (vi.m_op) {
|
switch (vi.m_op) {
|
||||||
case arith_op_kind::LAST_ARITH_OP:
|
case arith_op_kind::LAST_ARITH_OP:
|
||||||
break;
|
break;
|
||||||
|
@ -2524,7 +2524,7 @@ namespace sls {
|
||||||
if (!vi.is_arith_op())
|
if (!vi.is_arith_op())
|
||||||
return true;
|
return true;
|
||||||
IF_VERBOSE(10, verbose_stream() << vi.m_op << " repair def " << mk_bounded_pp(vi.m_expr, m) << "\n");
|
IF_VERBOSE(10, verbose_stream() << vi.m_op << " repair def " << mk_bounded_pp(vi.m_expr, m) << "\n");
|
||||||
TRACE("sls", tout << "repair def " << mk_bounded_pp(vi.m_expr, m) << "\n");
|
TRACE("sls_verbose", tout << "repair def " << mk_bounded_pp(vi.m_expr, m) << "\n");
|
||||||
switch (vi.m_op) {
|
switch (vi.m_op) {
|
||||||
case arith_op_kind::LAST_ARITH_OP:
|
case arith_op_kind::LAST_ARITH_OP:
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue