@@ -85,6 +85,7 @@ smt2_convt::smt2_convt(
85
85
break ;
86
86
87
87
case solvert::CPROVER_SMT2:
88
+ use_FPA_theory = true ;
88
89
use_array_of_bool = true ;
89
90
use_as_const = true ;
90
91
use_check_sat_assuming = true ;
@@ -406,23 +407,23 @@ constant_exprt smt2_convt::parse_literal(
406
407
{
407
408
std::size_t e = unsafe_string2size_t (src.get_sub ()[2 ].id_string ());
408
409
std::size_t s = unsafe_string2size_t (src.get_sub ()[3 ].id_string ());
409
- return ieee_floatt::plus_infinity (ieee_float_spect (s, e)).to_expr ();
410
+ return ieee_floatt::plus_infinity (ieee_float_spect (s - 1 , e)).to_expr ();
410
411
}
411
412
else if (src.get_sub ().size ()==4 &&
412
413
src.get_sub ()[0 ].id ()==" _" &&
413
414
src.get_sub ()[1 ].id ()==" -oo" ) // (_ -oo e s)
414
415
{
415
416
std::size_t e = unsafe_string2size_t (src.get_sub ()[2 ].id_string ());
416
417
std::size_t s = unsafe_string2size_t (src.get_sub ()[3 ].id_string ());
417
- return ieee_floatt::minus_infinity (ieee_float_spect (s, e)).to_expr ();
418
+ return ieee_floatt::minus_infinity (ieee_float_spect (s - 1 , e)).to_expr ();
418
419
}
419
420
else if (src.get_sub ().size ()==4 &&
420
421
src.get_sub ()[0 ].id ()==" _" &&
421
422
src.get_sub ()[1 ].id ()==" NaN" ) // (_ NaN e s)
422
423
{
423
424
std::size_t e = unsafe_string2size_t (src.get_sub ()[2 ].id_string ());
424
425
std::size_t s = unsafe_string2size_t (src.get_sub ()[3 ].id_string ());
425
- return ieee_floatt::NaN (ieee_float_spect (s, e)).to_expr ();
426
+ return ieee_floatt::NaN (ieee_float_spect (s - 1 , e)).to_expr ();
426
427
}
427
428
428
429
if (type.id ()==ID_signedbv ||
0 commit comments