@@ -253,18 +253,6 @@ namespace smt {
253
253
return true ;
254
254
}
255
255
256
- void theory_fpa::mk_bv_nan (sort * s, expr_ref & result) {
257
- SASSERT (m_fpa_util.is_float (s));
258
- unsigned sbits = m_fpa_util.get_sbits (s);
259
- unsigned ebits = m_fpa_util.get_ebits (s);
260
- expr_ref exp (m), sgn (m), sig (m);
261
- exp = m_bv_util.mk_numeral (m_fpa_util.fm ().m_powers2 .m1 (ebits), ebits);
262
- sgn = m_bv_util.mk_numeral (0 , 1 );
263
- sig = m_bv_util.mk_numeral (1 , sbits - 1 );
264
- expr * args[3 ] = {sgn, exp , sig};
265
- result = m_bv_util.mk_concat (3 , args);
266
- }
267
-
268
256
bool theory_fpa::internalize_term (app * term) {
269
257
TRACE (" t_fpa_internalize" , tout << " internalizing term: " << mk_ismt2_pp (term, m) << " \n " ;);
270
258
SASSERT (term->get_family_id () == get_family_id ());
@@ -298,22 +286,6 @@ namespace smt {
298
286
default : /* ignore */ ;
299
287
}
300
288
301
- expr * owner = e->get_expr ();
302
- sort * s = owner->get_sort ();
303
- if (m_fpa_util.is_float (s))
304
- {
305
- TRACE (" t_fpa" , tout << " extra nan constraint for: " << mk_ismt2_pp (owner, m) << " \n " ;);
306
- expr_ref wrapped (m), is_nan (m), bv_nan (m);
307
- app_ref impl (m);
308
- wrapped = m_converter.wrap (owner);
309
- is_nan = m_fpa_util.mk_is_nan (owner);
310
- mk_bv_nan (s, bv_nan);
311
- impl = m.mk_or (m.mk_and (is_nan, m.mk_eq (wrapped, bv_nan)),
312
- m.mk_and (m.mk_not (is_nan), m.mk_not (m.mk_eq (wrapped, bv_nan))));
313
- assert_cnstr (impl);
314
- assert_cnstr (mk_side_conditions ());
315
- }
316
-
317
289
if (!ctx.relevancy ())
318
290
relevant_eh (term);
319
291
}
0 commit comments