Definition Bconv (conv_nan: bool -> nan_pl prec1 -> bool * nan_pl prec2) (md: mode) (f: binary_float1) : binary_float2 :=
  match f with
    | B754_nan _ _ s pl => let '(s, pl) := conv_nan s pl in B754_nan _ _ s pl
    | B754_infinity _ _ s => B754_infinity _ _ s
    | B754_zero _ _ s => B754_zero _ _ s
    | B754_finite _ _ s m e _ => binary_normalize _ _ _ Hmax2 md (cond_Zopp s (Zpos m)) e s
  end.

Theorem Bconv_widen_exact: (prec2 >= prec1)%Z -> (emax2 >= emax1)%Z -> forall conv_nan m f, is_finite _ _ f = true -> B2R _ _ (Bconv conv_nan m f) = B2R _ _ f /\ is_finite _ _ (Bconv conv_nan m f) = true /\ Bsign _ _ (Bconv conv_nan m f) = Bsign _ _ f.