Notation bpow e := (bpow beta e).Class Prec_gt_0 :=
  prec_gt_0 : (0 < prec)%Z.Class Prec_gt_0 :=
  prec_gt_0 : (0 < prec)%Z.(* unbounded floating-point format *)
Definition FLX_format (x : R) :=
  exists f : float beta,
  x = F2R f /\ (Zabs (Fnum f) < Zpower beta prec)%Z.Definition FLX_exp (e : Z) := (e - prec)%Z.(** Properties of the FLX format *)

Global Instance FLX_exp_valid : Valid_exp FLX_exp.

(* Specifications: *)
Theorem FIX_format_FLX : forall x e, (bpow (e - 1) <= Rabs x <= bpow e)%R -> FLX_format x -> FIX_format beta (e - prec) x.
Theorem FLX_format_generic : forall x, generic_format beta FLX_exp x -> FLX_format x.
Theorem generic_format_FLX : forall x, FLX_format x -> generic_format beta FLX_exp x.
Theorem FLX_format_satisfies_any : satisfies_any FLX_format.
Theorem FLX_format_FIX : forall x e, (bpow (e - 1) <= Rabs x <= bpow e)%R -> FIX_format beta (e - prec) x -> FLX_format x.
Theorem FIX_format_FLX : forall x e, (bpow (e - 1) <= Rabs x <= bpow e)%R -> FLX_format x -> FIX_format beta (e - prec) x.
Theorem FLX_format_generic : forall x, generic_format beta FLX_exp x -> FLX_format x.
Theorem generic_format_FLX : forall x, FLX_format x -> generic_format beta FLX_exp x.
Theorem FLX_format_satisfies_any : satisfies_any FLX_format.
Theorem FLX_format_FIX : forall x e, (bpow (e - 1) <= Rabs x <= bpow e)%R -> FIX_format beta (e - prec) x -> FLX_format x.