(** Conversions to/from 32-bit integers can be implemented by going through 64-bit integers. *)

Remark ZofB_range_widen:
  forall (f: float) n min1 max1 min2 max2,
  ZofB_range _ _ f min1 max1 = Some n ->
  min2 <= min1 -> max1 <= max2 ->
  ZofB_range _ _ f min2 max2 = Some n.

(* Specifications: *)
Theorem to_int_to_long: forall f n, to_int f = Some n -> to_long f = Some (Int64.repr (Int.signed n)).
Theorem to_intu_to_longu: forall f n, to_intu f = Some n -> to_longu f = Some (Int64.repr (Int.unsigned n)).
Theorem to_intu_to_long: forall f n, to_intu f = Some n -> to_long f = Some (Int64.repr (Int.unsigned n)).
Theorem of_int_of_long: forall n, of_int n = of_long (Int64.repr (Int.signed n)).
Theorem of_intu_of_longu: forall n, of_intu n = of_longu (Int64.repr (Int.unsigned n)).
Theorem of_intu_of_long: forall n, of_intu n = of_long (Int64.repr (Int.unsigned n)).
Theorem to_int_to_long: forall f n, to_int f = Some n -> to_long f = Some (Int64.repr (Int.signed n)).
Theorem to_intu_to_longu: forall f n, to_intu f = Some n -> to_longu f = Some (Int64.repr (Int.unsigned n)).
Theorem to_intu_to_long: forall f n, to_intu f = Some n -> to_long f = Some (Int64.repr (Int.unsigned n)).
Theorem of_int_of_long: forall n, of_int n = of_long (Int64.repr (Int.signed n)).
Theorem of_intu_of_longu: forall n, of_intu n = of_longu (Int64.repr (Int.unsigned n)).
Theorem of_intu_of_long: forall n, of_intu n = of_long (Int64.repr (Int.unsigned n)).