@@ -123,38 +123,37 @@ namespace sls {
123
123
// distance to true
124
124
template <typename num_t >
125
125
num_t arith_base<num_t >::dtt(bool sign, num_t const & args, ineq const & ineq) const {
126
- num_t zero{ 0 };
127
126
switch (ineq.m_op ) {
128
127
case ineq_kind::LE:
129
128
if (sign) {
130
129
if (args + ineq.m_coeff <= 0 )
131
130
return -ineq.m_coeff - args + 1 ;
132
- return zero ;
131
+ return num_t ( 0 ) ;
133
132
}
134
133
if (args + ineq.m_coeff <= 0 )
135
- return zero ;
134
+ return num_t ( 0 ) ;
136
135
return args + ineq.m_coeff ;
137
136
case ineq_kind::EQ:
138
137
if (sign) {
139
138
if (args + ineq.m_coeff == 0 )
140
139
return num_t (1 );
141
- return zero ;
140
+ return num_t ( 0 ) ;
142
141
}
143
142
if (args + ineq.m_coeff == 0 )
144
- return zero ;
143
+ return num_t ( 0 ) ;
145
144
return num_t (1 );
146
145
case ineq_kind::LT:
147
146
if (sign) {
148
147
if (args + ineq.m_coeff < 0 )
149
148
return -ineq.m_coeff - args;
150
- return zero ;
149
+ return num_t ( 0 ) ;
151
150
}
152
151
if (args + ineq.m_coeff < 0 )
153
- return zero ;
152
+ return num_t ( 0 ) ;
154
153
return args + ineq.m_coeff + 1 ;
155
154
default :
156
155
UNREACHABLE ();
157
- return zero ;
156
+ return num_t ( 0 ) ;
158
157
}
159
158
}
160
159
@@ -863,36 +862,36 @@ namespace sls {
863
862
template <typename num_t >
864
863
typename arith_base<num_t >::var_t arith_base<num_t >::mk_op(arith_op_kind k, expr* e, expr* x, expr* y) {
865
864
auto v = mk_var (e);
866
- auto w = mk_term (x);
865
+ auto vx = mk_term (x);
866
+ auto vy = mk_term (y);
867
867
unsigned idx = m_ops.size ();
868
868
num_t val;
869
869
switch (k) {
870
870
case arith_op_kind::OP_MOD:
871
- val = value (v ) == 0 ? num_t (0 ) : mod (value (w ), value (v ));
871
+ val = value (vy ) == 0 ? num_t (0 ) : mod (value (v ), value (vy ));
872
872
break ;
873
873
case arith_op_kind::OP_REM:
874
- if (value (v ) == 0 )
874
+ if (value (vy ) == 0 )
875
875
val = 0 ;
876
876
else {
877
- val = value (w );
878
- val %= value (v );
877
+ val = value (vx );
878
+ val %= value (vy );
879
879
}
880
880
break ;
881
881
case arith_op_kind::OP_IDIV:
882
- val = value (v ) == 0 ? num_t (0 ): div (value (w ), value (v ));
882
+ val = value (vy ) == 0 ? num_t (0 ): div (value (vx ), value (vy ));
883
883
break ;
884
884
case arith_op_kind::OP_DIV:
885
- val = value (v ) == 0 ? num_t (0 ) : value (w ) / value (v );
885
+ val = value (vy ) == 0 ? num_t (0 ) : value (vx ) / value (vy );
886
886
break ;
887
887
case arith_op_kind::OP_ABS:
888
- val = abs (value (w ));
888
+ val = abs (value (vx ));
889
889
break ;
890
890
default :
891
891
NOT_IMPLEMENTED_YET ();
892
892
break ;
893
893
}
894
- verbose_stream () << " mk-op " << mk_bounded_pp (e, m) << " \n " ;
895
- m_ops.push_back ({v, k, v, w});
894
+ m_ops.push_back ({v, k, vx, vy});
896
895
m_vars[v].m_def_idx = idx;
897
896
m_vars[v].m_op = k;
898
897
m_vars[v].set_value (val);
@@ -1606,7 +1605,7 @@ namespace sls {
1606
1605
bool arith_base<num_t >::repair_idiv(op_def const & od) {
1607
1606
auto v1 = value (od.m_arg1 );
1608
1607
auto v2 = value (od.m_arg2 );
1609
- IF_VERBOSE (0 , verbose_stream () << " todo repair div" );
1608
+ IF_VERBOSE (0 , verbose_stream () << " TODO repair div" );
1610
1609
// bail
1611
1610
return update (od.m_var , v2 == 0 ? num_t (0 ) : div (v1, v2));
1612
1611
}
@@ -1615,7 +1614,7 @@ namespace sls {
1615
1614
bool arith_base<num_t >::repair_div(op_def const & od) {
1616
1615
auto v1 = value (od.m_arg1 );
1617
1616
auto v2 = value (od.m_arg2 );
1618
- IF_VERBOSE (0 , verbose_stream () << " todo repair /" );
1617
+ IF_VERBOSE (0 , verbose_stream () << " TODO repair /" );
1619
1618
// bail
1620
1619
return update (od.m_var , v2 == 0 ? num_t (0 ) : v1 / v2);
1621
1620
}
@@ -2112,6 +2111,7 @@ namespace sls {
2112
2111
auto const & vi = m_vars[v];
2113
2112
if (vi.m_def_idx == UINT_MAX)
2114
2113
return true ;
2114
+ verbose_stream () << " repair def " << mk_bounded_pp (vi.m_expr , m) << " \n " ;
2115
2115
TRACE (" sls" , tout << " repair def " << mk_bounded_pp (vi.m_expr , m) << " \n " );
2116
2116
switch (vi.m_op ) {
2117
2117
case arith_op_kind::LAST_ARITH_OP:
0 commit comments