(** unbounded floating-point format with normal mantissas *)
Definition FLXN_format (x : R) :=
  exists f : float beta,
  x = F2R f /\ (x <> R0 ->
  Zpower beta (prec - 1) <= Zabs (Fnum f) < Zpower beta prec)%Z.

(* Specifications: *)
Theorem generic_format_FLXN : forall x, FLXN_format x -> generic_format beta FLX_exp x.
Theorem FLXN_format_generic : forall x, generic_format beta FLX_exp x -> FLXN_format x.
Theorem FLXN_format_satisfies_any : satisfies_any FLXN_format.
Theorem ulp_FLX_0: (ulp beta FLX_exp 0 = 0)%R.
Theorem ulp_FLX_le: forall x, (ulp beta FLX_exp x <= Rabs x * bpow (1-prec))%R.
Theorem ulp_FLX_ge: forall x, (Rabs x * bpow (-prec) <= ulp beta FLX_exp x)%R.
Theorem generic_format_FLXN : forall x, FLXN_format x -> generic_format beta FLX_exp x.
Theorem FLXN_format_generic : forall x, generic_format beta FLX_exp x -> FLXN_format x.
Theorem FLXN_format_satisfies_any : satisfies_any FLXN_format.
Theorem ulp_FLX_0: (ulp beta FLX_exp 0 = 0)%R.
Theorem ulp_FLX_le: forall x, (ulp beta FLX_exp x <= Rabs x * bpow (1-prec))%R.
Theorem ulp_FLX_ge: forall x, (Rabs x * bpow (-prec) <= ulp beta FLX_exp x)%R.